1. 程式人生 > >微信支付-支付驗證簽名失敗,跳轉無響應等

微信支付-支付驗證簽名失敗,跳轉無響應等

微信支付比起支付寶支付感覺要麻煩很多,或者微信內部實現更嚴謹吧 ,下面來說說微信支付過程中遇到的一些問題:

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支付!