近日,我研究了微信支付的API,我是用简化版的API,首先简述一下流程:
1、通过APP_ID,APP_SCRECT获取网页授权码code,
2、利用code获取用户openid/userinfo
3、第一次签名获取微信接口参数:双管齐下,APP_ID、APP_SCRECT->access_token->jsapi_ticket->签名->获取参数、
4、第二次签名获取预支付prepay_id:2步骤取得openid、APP_ID、APP_SCRECT、商户MCHID……->签名->转XML->获取prepay_id
5、第三次签名获取支付接口相应参数:相关参数url_require形式加商户KEY->签名
6、回调
我遇到问题点,主要看(Log::info())错误日志:
1、post数据为空 ,原因:路由配置错误;
2、签名错误 ,原因:未获取openid,签名参数中如果为空则不参加签名;
3、openid参数长度有误,原因:未获取openid;
4、invalid total_fee,原因:微信最小单位是1,即1分钱,不能少于1,而支付宝是0.01;
5、其次是公众号支付授权目录填写错误:正确为:
当然这是所有的支付流程,我们还需要去微信公众号后台去设置。支付授权目录
这里很重要我就是在这里折腾了很久。怎么设置呢,首先要看你支付的当前页面URL
比如是:
- http://www.fangbei.org/wxpay/js_api_call.php
复制代码
你就必须填写:
- http://www.fangbei.org/wxpay/
复制代码
假如是:
- http://www.fangbei.org/wxpay/order/id/56.html
复制代码
你就必须写:
- http://www.fangbei.org/wxpay/order/id/
复制代码
看出规律了吧,就是把最后一个反斜杠后面的内容去掉就OK了。如果还有什么问题可以留言问我。
微信支付开发若干问题总结,API搞死人(谢谢ζ???????http://www.thinkphp.cn/code/1620.html)