pc的demo不少,不記。php
移動端作支付的時候要先配置可測試域名和受權域名,一個在公衆平臺裏的微信支付裏配置ios
注意,獲取open的Id的方法須要寫到這個配置好的域名下。不然會說域名未受權。ajax
還有一個是在微信支付裏配置的受權域名,在最下面有個網頁受權,裏面配置你的測試域名,而後須要下載一個文件,建議放到域名根目錄下就能夠。json
想把官方的SDK下載一份,appid什麼的配置好。微信
而後就能夠生成訂單測試了,這纔是坑的開始。app
首先是獲取openid,我猜他的機制是經過你發出請求,而後他請求微信支付的開放平臺,而後給你返回openid,這時候你攜帶的參數就顯得尤其重要,若是你連接用/來連接參數和值的話他可能把你的參數當成路徑,報一個域名未註冊的錯誤,當支付的時候依舊試圖調起微信,而後不會成功,安卓系統不會報錯,ios會在調起以後報錯(不知道是否是我手機的緣由)。測試
報錯1 域名未註冊,仔細檢查他報錯的域名和你的配置域名是否同樣,判斷是參數格式的緣由仍是你獲取openid的方法不在你註冊域名下的緣由。(能夠參考 example文件夾裏面的WxPay.JsApiPay.php 找到他拼裝你連接的那行代碼.打印下看看[我忘了幾行了])微信支付
報錯2 缺乏參數, timeStamp,還在WxPay.JsApiPay.php類裏找到GetJsApiParameters,timeStamp應該是字符串類型,你看他如今是否是整型,是的話加引號就解決了.url
報錯3 redirect_url參數錯誤:請仔細檢查微信支付->帳戶中心->審覈配置->網頁受權,保證你的測試網頁已經設置.spa
報錯 4 什麼都不報....壓根兒就沒試圖調起支付,應該是你作的統一下單沒有成功,致使沒有生成訂單沒法支付,而後WxPay.JsApiPay.php會報錯不會返回結果.只有一種狀況就是有參數沒有傳過去(價格,訂單編號,名稱,openid...),一個個的打印,總會解決.還有請查看是否生成必須的兩個參數:jsApiParameters,editAddress;
報錯 5 調起後沒有彈出支付,報什麼訂單失效之類的,而後而後就是試圖調起可是沒報錯沒彈出輸入密碼框,這個錯誤很常見,也最很差找...就是獲取到的jsApiParameters,editAddress這兩個參數應該是對象json格式的,若是報上述錯誤,十有八九是由於你返回的是字符串,千萬記得要轉成json對象
備註:假若想要讓生成訂單和支付在同一個頁面完成的話,不要試圖用ajax生成訂單後獲取openid,那樣是不會給你返回任何東西的,要在當前頁面的方法裏就獲取openid,而後傳到本頁面,而後ajax生成訂單後把openid和訂單信息傳到後臺,調用微信接口統一下單,返回兩個必要參數(jsApiParameters,editAddress)後進行支付.
作一個心中有料的人.<shiyan_stz@163.com>