微信支付-支付驗證簽名失敗,跳轉無響應等
阿新 • • 發佈:2019-01-27
微信支付比起支付寶支付感覺要麻煩很多,或者微信內部實現更嚴謹吧 ,下面來說說微信支付過程中遇到的一些問題:
1、執行[WXApi sendReq:req];
,執行這句程式碼就是跳轉微信,調起支付,但是發現並沒有跳轉微信,沒有任何反應,任何錯誤提示都沒有
解決方法: 檢視調起微信支付是所傳的引數是否有問題,引數如下(res.)
NSDictionary *orderInfo = responseObject[@"params"];//後臺傳給我們的引數
//建立支付物件
PayReq *req = [[PayReq alloc] init];
//由使用者微訊號和AppID組成的唯一標識,用於校驗微信使用者
// req.openID = orderInfo[@"appid"]; //就是自己的APPId,可以不用寫,文件中沒要求
// 商戶號,在註冊的時候給的
req.partnerId = orderInfo[@"partnerid"];
// 預支付訂單這個是後臺跟微信伺服器互動後,微信伺服器傳給你們伺服器的,你們伺服器再傳給你
req.prepayId = orderInfo[@"prepayid"];
// 根據財付通文件填寫的資料和簽名
//這個比較特殊,是固定的,只能是即req.package = Sign=WXPay
req.package = orderInfo[@"package"];
// 隨機編碼,為了防止重複的,在後臺生成
req.nonceStr = orderInfo[@"noncestr"];
// 這個是時間戳,也是在後臺生成的,為了驗證支付的
NSString * stamp = orderInfo[@"timestamp" ];
req.timeStamp = stamp.intValue;
// 這個簽名也是後臺做的
req.sign = orderInfo[@"sign"];
//傳送請求到微信,等待微信返回onResp
[WXApi sendReq:req];
req 的各個引數是否都有設定,設定的是否有值(與後臺給的引數是否對應),設定了並且有值,那就問後臺那邊的的引數值(不是引數名)在他那邊整個過程中是否一致
2、跳轉微信後提示“支付驗證簽名失敗”
如果簽名以及其他所有引數都是後臺傳過來的,那一般都是後臺的問題
解決方法:
1)後臺那邊的引數名的大小寫以及給你的引數名的大小寫,目前貌似都是小寫的
2)後臺的兩次簽名是否正確
注意:時間戳應該是10位的,如果是13位的,必須先除以1000後才可以使用
下面是一篇評論不錯的相關文章(可以給你後臺看看哦)
微信支付 一步一個坑的APP支付!