微信小程序支付流程(注意事项),小程序支付回调微信小程序支付流程(注意事项),小程序支付回调
支付步骤逻辑:
1. 小程序发起请求预支付
2. 服务端调用接口发起预支付信息
3. 微信小程序调起支付完成支付
1. 小程序发起请求预支付
(此图片来源于网络,如有侵权,请联系删除! )
2. 服务端调用接口发起预支付信息
服务端接收到请求后,调用微信的api接口,调用成功会得到一个prepay_id 这个就是相当于小程序的预支付id 过程中会生成签名,按照官方文档的实
例参数生成即可,如果非必填可选择不填,然后向 api 发送一个xml
参数讲解官方文档地址:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_1
eg:
1. <xml>
2. <appid>wx2421b1c4370ec43b</appid>
3. <attach>支付测试</attach>
4. <body>JSAPI支付测试</body>
5. <mch_id>10000100</mch_id>
6. <detail><![CDATA[{ "goods_detail":[ { "goods_id":"iphone6s_16G", "wxpay_goods_id":"1001", "goods_name":"iPhone6s 16G", "quantity":1,
"price":528800, "goods_category":"123456", "body":"苹果手机" }, { "goods_id":"iphone6s_32G", "wxpay_goods_id":"1002",
"goods_name":"iPhone6s 32G", "quantity":1, "price":608800, "goods_category":"123789", "body":"苹果手机" } ] }]]></detail>
7. <nonce_str>1add1a30ac87aa2db72f57a2375d8fec</nonce_str>
8. <notify_url>[url]http://wxpay.wxutil.com/pub_v2/pay/notify.v2.php</notify_url>[/url]
9. <openid>oUpF8uMuAJO_M2pxb1Q9zNjWeS6o</openid>
10. <out_trade_no>1415659990</out_trade_no>
11. <spbill_create_ip>14.23.150.211</spbill_create_ip>
12. <total_fee>1</total_fee>
13. <trade_type>JSAPI</trade_type>
14. <sign>0CB01533B8C1EF103065174F50BCA001</sign>
15. </xml>
需要注意sign 生成方式和公众号生成方式一致,下面是PHP生成签名方法, 可根据不同的框架修改,记得修改 key
1. /**
2. * 生成签名
3. * @return 签名,本函数不覆盖sign成员变量,如要设置签名需要调用SetSign方法赋值
4. */
5. public function MakeSign()
6. {
7. //签名步骤一:按字典序排序参数
8. ksort($this->_prepay);
9. $string = $this->ToUrlParams();
10. //签名步骤二:在string后加入KEY
11. $string = $string . "&key=".WxPayConfig::KEY;
12. //签名步骤三:MD5加密
13. $string = md5($string);
14. //签名步骤四:所有字符转为大写
15. $result = strtoupper($string);
16. return $result;
17. }
18.