微信支付如果遇到跳轉只有一個確定的解決辦法


轉載自:http://www.cocoachina.com/bbs/read.php?tid-321546.html

今天在聯調微信支付,不得不說,和它比起來,阿里的支付sdk真的是太好用了。
果然和后端同學在聯調的時候發現跳轉后出現了這一畫面。



這種什么也沒有的界面真的是讓人抓狂了,點擊后返回的狀態竟然是-2,用戶取消。
原本以為是自己的問題,耐着性子配合了@狂龍天使 的demo來調試,最終總結如下:


首先確認 是傳遞接口的字段導致的問題。是傳遞接口的字段導致的問題。是傳遞接口的字段導致的問題


說幾個可能出現問題的點。
第一步獲取prepayId,這一步往往都不會有什么錯誤,根着官方文檔都不會出現什么問題,坑在第二步發送跳轉


1、注意一下 nonceStr 需要是第一步里生成的 nonceStr,而不是重新生成。



2、sign 需要重新針對5個字段進行簽名:partnerId prepayId package nonceStr timeStamp  不需要傳入appid或者openid
需要傳入appid

3、package = @"Sign=WXPay" 注意服務器傳來的"="會不會被轉義成 %3D


4、sign的確需要大寫,不像之前有些帖子說的要小寫。


基本我遇到的坑就是這些,歡迎大家討論。


@狂龍天使 的demo地址http://www.cocoachina.com/bbs/read.php?tid-309177-keyword-%CE%A2%D0%C5%D6%A7%B8%B6.html


內容更新:
by luohuasheng0225
我補充一坑:
1、如果你app同時使用了友盟分享(含微信分享)和微信支付。如果你沒有處理好這個兩個SDK register的順序,那就很不幸,也會出現這種情況。
(如何出現這種情況,請看我的測試步驟:1、殺掉微信進程、2、刪除自己開發的app、3、重新同步自己的app到設備,點擊微信支付)
兩者register的順序:如果是先調用微信registerApp、然后調用友盟的 [UMSocialWechatHandler setWXAppId:WXAppID appSecret:[NSString stringWithBundleNameForKey:@"WXAppSecret"] url:url] ,然后按照我測試的步驟,應該就會出現。
解決辦法:改變兩者的register步驟。先調用友盟,然后調用微信。 

內容更新:
by yutiandesan
補充一點,時間戳需要為10位,之前后台給的是13位,也是只有一個確定按鈕,並且ret=-2


免責聲明!

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



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