移动微信支付报错总结(jsapi)

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>

相关文章
相关标签/搜索