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)後進行支付.
做一個心中有料的人.<[email protected]>