移動微信支付報錯總結(jsapi)


pc的demo很多,不記。

移動端做支付的時候要先配置可測試域名和授權域名,一個在公眾平台里的微信支付里配置

注意,獲取open的Id的方法需要寫到這個配置好的域名下。否則會說域名未授權。

還有一個是在微信支付里配置的授權域名,在最下面有個網頁授權,里面配置你的測試域名,然后需要下載一個文件,建議放到域名根目錄下就可以。

想把官方的SDK下載一份,appid什么的配置好。

然后就可以生成訂單測試了,這才是坑的開始。

首先是獲取openid,我猜他的機制是通過你發出請求,然后他請求微信支付的開放平台,然后給你返回openid,這時候你攜帶的參數就顯得尤為重要,如果你鏈接用/來鏈接參數和值的話他可能把你的參數當成路徑,報一個域名未注冊的錯誤,當支付的時候依舊試圖調起微信,然后不會成功,安卓系統不會報錯,ios會在調起之后報錯(不知道是不是我手機的原因)。

報錯1 域名未注冊,仔細檢查他報錯的域名和你的配置域名是否一樣,判斷是參數格式的原因還是你獲取openid的方法不在你注冊域名下的原因。(可以參考 example文件夾里面的WxPay.JsApiPay.php 找到他拼裝你鏈接的那行代碼.打印下看看[我忘了幾行了])

報錯2 缺少參數, timeStamp,還在WxPay.JsApiPay.php類里找到GetJsApiParameters,timeStamp應該是字符串類型,你看他現在是不是整型,是的話加引號就解決了.

報錯3 redirect_url參數錯誤:請仔細檢查微信支付->賬戶中心->審核配置->網頁授權,保證你的測試網頁已經設置.

報錯 4 什么都不報....壓根兒就沒試圖調起支付,應該是你做的統一下單沒有成功,導致沒有生成訂單無法支付,然后WxPay.JsApiPay.php會報錯不會返回結果.只有一種情況就是有參數沒有傳過去(價格,訂單編號,名稱,openid...),一個個的打印,總會解決.還有請查看是否生成必須的兩個參數:jsApiParameters,editAddress;

報錯 5 調起后沒有彈出支付,報什么訂單失效之類的,然后然后就是試圖調起但是沒報錯沒彈出輸入密碼框,這個錯誤很常見,也最不好找...就是獲取到的jsApiParameters,editAddress這兩個參數應該是對象json格式的,如果報上述錯誤,十有八九是因為你返回的是字符串,千萬記得要轉成json對象

 

備注:倘若想要讓生成訂單和支付在同一個頁面完成的話,不要試圖用ajax生成訂單后獲取openid,那樣是不會給你返回任何東西的,要在當前頁面的方法里就獲取openid,然后傳到本頁面,然后ajax生成訂單后把openid和訂單信息傳到后台,調用微信接口統一下單,返回兩個必要參數(jsApiParameters,editAddress)后進行支付.

 

做一個心中有料的人.<shiyan_stz@163.com>

 


免責聲明!

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



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