雖然他的解決方案已經說明了多種可能原因,但是我們也很難定位到**。下面說下自己遇到的問題以及排查步驟,以便後面再遇到快速解決。
public void onresp(baseresp resp) {
logutil.d("onpayfinish, errcode = " + resp.errcode);
if (resp.gettype() == constantsapi.command_pay_by_wx) {
// resp.errcode== 0 :表示支付成功
// resp.errcode== -1 :表示支付失敗
// resp.errcode== -2 :表示取消支付
這個方法中判斷返回碼,再決定下一步的操作。
2、返回碼一直是-1,但就是不知道哪錯了,可以先看下應用簽名是否正確(應用簽名會用到兩個,乙個是自己本地run跑起來的應用,通過簽名工具獲取的簽名,這個簽名主要用於自己除錯的時候;乙個是大正式簽名包後,裝上應用通過簽名工具獲取的簽名,這個簽名是上線的時候用到的。)
點進修改去修改應用簽名
這個應用簽名要跟手機安裝的簽名工具拿到的簽名一致(這裡手動輸入進來),可以儲存到文字中備用。
3、應用簽名沒有問題了,仍然返回-1的話,就需要去驗證下後台返回的預支付訂單資訊以及sign是否匹配了。比如說返回的預支付訂單資訊是如下json
如果一致,證明後台生成的簽名是ok的,如果不一致,那就是後台生成簽名是的規則有問題,找後台協調解決。
4、如果還是不幸sign一致,返回結果仍然是-1,那就需要檢查**了,我是這樣一步步檢查的
5、如果還是-1,那簡直就是要撞牆了(我遇到的就是還是-1),這時候我就去找到ios同事,看他們是否可以支付成功,如果他們能成功的話,就再按上面步驟仔細走一遍,如果他們也不成功並且上面步驟走過了一遍沒問題,那麼百分之**十是後台配置問題了。
ios排查問題很簡單,不像android,他們沒有應用簽名這一說,他們只需要把demo中的預支付訂單資訊,配到自己工程中執行,可以調起支付就是**ok,後台問題。
然後後台、移動端一起聯調排除問題。
ps:我遇到的就是後台配置出了問題,很難找到問題點,然後ios和android都不能調起,但ios可以執行demo,所以定位到後台,果然他們的簽名規則跟官方的規則有出入,最後解決搞定。
iOS 之 微信支付
systemconfiguration.framework libz.tbd libsqlite3.0.tbd libc tbd coretelephony.framework 這個庫官方文件沒說,這就是乙個坑,沒它還不能行 wxapi payreq req payreq alloc init re...
微信支付之jsapi
首先,開始之前先先介紹下上面的js介面安全網域名稱和網頁授權網域名稱這兩個東西,因為我的專案涉及到好幾個二級網域名稱,所以這裡踩了挺多坑的。js介面安全網域名稱應該指的是只有在這個網域名稱下你才可以呼叫jsapi,其他網域名稱下是沒用的,function jsapicall else functio...
react之微信支付
1,第一步需要對單頁面中的用到支付頁面進行config初始化配置,方法如下 wxconfig then res wxconfig 方法呼叫後台的介面,獲取配置需要的引數,這一步看是很簡單,但請求引數url是個坑,ios和安卓有很大的差別,解決辦法如下 支付時config需要的url export f...