支付寶 app支付異常摘記 -- ALI40247


一. 支付

1. 系統繁忙,請稍后重試。(ALI40247): 簽名錯誤。

我的問題來源(兩個問題):
① 簽名串sign=簽名串,這個簽名串是不帶雙引號的,我不小心兩頭有雙引號;
② 簽名流程是:
  △ 1. 請求參數按照key=value&key=value方式拼接的未簽名原始字符串;
  △ 2. 再對原始字符串進行簽名,參考 簽名規則;
  △ 3. 最后對請求字符串的所有一級value(biz_content作為一個value)進行encode,編碼格式按請求串中的charset為准,沒傳charset按UTF-8處理,獲得最終的請求字符串;
  簽名之后給value進行URL編碼之前,是不需要進行任何編碼的,我不小心在這之前給簽名穿進行了URL編碼,最后相當於簽名串URL編碼了兩次;

  注意:biz_content中的json串不需要進行排序;

2. app調起支付,輸入密碼之后,提示:暫時無法獲取訂單信息,請稍后重試。

查找資料應該是簽名過了,需要換換更高版本的SDK。
http://www.cocoachina.com/bbs/read.php?tid-1692932.html
支付寶升級過sdk,換上最新的sdk,sdk調用也需要更改下,以android為例:
// 構造PayTask 對象
PayTask alipay = new PayTask(PayDemoActivity.this);
// 調用支付接口,獲取支付結果
String result = alipay.pay(payInfo, true);

更新為

PayTask alipay = new PayTask(PayDemoActivity.this);
Map<String, String> result = alipay.payV2(orderInfo, true);
1
2
  到這里,我的問題還是沒有解決,依舊是 暫時無法獲取訂單信息,請稍后重試,后來檢查配置的時候,發現原來是配置錯了,兩個支付寶商戶號,A簽約的是移動支付的,B簽約的是app支付的,一直報錯是配了移動支付的A配置,到這里猜測下錯誤信息的意思,錯誤信息中的訂單信息可能是商戶與支付寶的簽約訂單,而非商戶自己的訂單,而A配置是沒有簽約app支付的,是沒有權限使用支付2.0的接口;

3. app調起支付,輸入密碼之后,提示:系統太忙了,請稍后重來(T8912)。

問題:支付寶訂單超時關閉了,超過了支付寶發起支付時候的超時時間。

二. app支付成功之后異步回調驗簽

1. 簽名錯誤:

  我驗簽失敗是因為把支付寶的公鑰弄錯了,應該下圖指的位置的公鑰(開放平台密鑰)。
(圖片所在網頁地址,https://openhome.alipay.com/platform/keyManage.htm)

 

順便說明下:移動支付和app支付異步回調的驗簽規則一模一樣,兩者通用,但是,兩者的公鑰是不同的,簽約app支付的商戶也可以用移動支付付款,但是移動支付驗簽的密鑰是從下圖指定的地方獲取(合作伙伴密鑰)。

 

到這里,我已經懵圈了。

  還有移動支付和app支付的異步通知的數據,同一意思的字段兩個的key不一樣,比如:訂單金額,移動支付里面是‘total_fee’表示,app支付是‘total_amount’表示,其他的字段也有不一樣的,這里不一一舉例。


三. 退款

  退款的簽名算法與支付的是一樣的。

1. 撤銷或退款金額與訂單金額不一致

{
"code":"40004",
"msg":"Business Failed",
"sub_code":"ACQ.REFUND_AMT_NOT_EQUAL_TOTAL",
"sub_msg":"撤銷或退款金額與訂單金額不一致",
"out_trade_no":"2016101413332343230",
"refund_fee":"0.00",
"send_back_fee":"0.00"
}

  退款的請求參數中,有個參數:out_request_no,標識一次退款請求,參數要求是,如果不填寫該參數,表示是交易全額退款,如果同一筆交易多次退款需要保證唯一,如需部分退款,則此參數必傳。
  我的問題是忘記填寫該參數了,然后又是部分退款,相當於全額退款,那么退款金額與訂單金額不一致了,然后同一筆交易多次退款需要保證唯一的問題,一筆交易分多次退款,每次的退款號要唯一。
————————————————
版權聲明:本文為CSDN博主「金一白」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/luojinbai/article/details/52753660


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM