客服端與服務端APP支付寶支付接口聯調的那些坑

<div class="show-content-free"> <p>根據支付寶官方提供的文檔的建議:</p><p><b>TIPS:這一步應在商戶服務端完成,商戶服務端直接將組裝和簽名後的請求串orderString傳給客戶端,客戶端直接傳給SDK發起請求。文檔和Demo是爲了示例效果在客戶端實現。</b><br></p><p>商品的訂單信息和簽名應該放在服務端進行,將最好生成的orderString發送給客戶端,客戶端直接換起支付,處理好回調就ok。思路很簡單,但實現卻要下番功夫。</p><p>坑一:</p><p>若是以PHP爲服務後臺爲例,官網是沒有提供集成好的PHP運行DEMO,咱們的處理方式是參展APPDemo裏的思路,和官方文檔的流程介紹,本身寫一套方法。</p><p>坑二:</p><p>在整合商品信息biz_content的時候要主要幾個字段:</p><p>1)method = 「alipay.trade.app.pay"; &nbsp;&nbsp;</p><p>注意:官方提供的PHP有給APP整合信息方法,但裏面使用的是「alipay.trade.wap.pay",這個字端不適用於APP支付,這點要注意。</p><p>2)timestamp 的格式&nbsp;</p><p>注意:這裏格式是年月日...到秒,並非時間戳。</p><p>3)total_amount 的位數</p><p>注意:這裏商品單價是精確到小數點後2位的,例如:7.00 和微信不一樣。</p><p>4)charset = utf-8&nbsp;</p><p>注意:這裏「utf-8」要小寫,不是大寫。</p><p>坑三:</p><p>瘋狂的報錯</p><p>當接口寫好後,服務端和終端進行聯調,這裏就比較蛋疼了。首先,過程很繁瑣,不能本地模擬測試,只能由終端發起,查看返回的錯誤信息去尋找問題,很很差肯定錯誤的位置。</p><p>下面是咱們在開發中遇到錯誤代碼以及解決方法,但願給你些有用的建議。</p><p>1)支付寶客戶端返回6001錯誤信息或顯示交易訂單處理失敗,請稍後再試。(ALI64)</p><p>緣由:沒有在合做夥伴身份中設置公鑰。(注:接入支付寶須要在服務端設置應用私鑰和支付寶公鑰,在支付寶管理後臺設置應用公鑰和合做夥伴公鑰,應用公鑰與私鑰即爲本身經過openssl生成的公鑰與私鑰;支付寶公鑰可經過支付寶管理後臺獲得,是固定值;合做夥伴公鑰即爲應用公鑰)<br></p><p>2)支付繁忙ALI59</p><p>緣由:主要狀況爲 &nbsp;amount等參數中&nbsp; 有特殊字符 致使, 在此處打個斷點 po 一下相應的參數就行了</p><p>3)「暫時沒法獲取訂單信息,請稍後再試」<br></p><p>緣由:簽名錯誤。沒有嚴格按照文檔裏的簽名方式,&amp;sign=AD3,前面要用「&amp;」和加密(encode)後的字符相連,而且後面不能帶雙引號「」。<br></p><p>4)支付寶調起出現 ALI40247 解決方案</p><p>緣由:這裏卡的實現最長。也找了不少文檔。總結了一下錯誤的緣由有幾下幾點:</p><p>A.沒有APP支付權限致使</p><p>檢查您使用的這個appid是否簽約過APP支付這個接口的權限。若是沒有簽約看上面的《如何簽約APP支付接口》。這裏比較隱蔽。大多數覺得申請經過就表明有了支付能力,其實還需再作一步簽約。</p><p>B.請求支付編碼問題和沒有作url encode</p><p>編碼:就是請求了utf-8 可是用了gbk的編碼</p><p>encode:app支付接口(接口名稱:alipay.trade.app.pay)對請求字符串的全部一級value(biz_content做爲一個value)進行encode。</p><p>C.管理中心》個人應用》狀態》(注意:)已上線才能夠使用不然也會報這個錯誤</p><p>D.詳細可參見地址https://openclub.alipay.com/read.php?tid=250&amp;fid=2 官方提供的解決方案。</p><p>最後,但願大家一切順利~</p><p>完。</p> </div>php

相關文章
相關標籤/搜索