调用微信支付流程总结
(wx.requestPayment(OBJECT))
官方文档:
https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_4&index=3
开发步骤:
1、调用登录接口获取用户openid
小程序发送wx.login请求,获取微信返回code, 将code传至开发者后台服务器,后台向
https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
该地址发送请求,换取会话密钥session_key及用户唯一标识openid。
2、开发者调用支付统一下单API生成预交易单
接口地址:
https://api.mch.weixin.qq.com/pay/unifiedorder
请求参数(只列出了一些必要参数,完整参数参见官方文档):
字段名 | 变量名 | 必填 | 类型 | 示例值 |
---|---|---|---|---|
小程序ID | appid | 是 | String(32) | wxd678efh567hg6787(需申请) |
商户号 | mch_id | 是 | String(32) | 1230000109(需申请) |
随机字符串 | nonce_str | 是 | String(32) | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS |
签名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 |
签名类型 | sign_type | 否 | String(32) | MD5 |
商品描述 | body | 是 | String(128) | 腾讯充值中心-QQ会员充值 |
商户订单号 | out_trade_no | 是 | String(32) | 20150806125346 |
标价金额 | total_fee | 是 | Int | 88 |
终端IP | spbill_create_ip | 是 | String(16) | 123.12.12.123(可以写为127.0.0.1) |
通知地址 | notify_url | 是 | String(256) | http://www.weixin.qq.com/wxpay/pay.php |
交易类型 | trade_type | 是 | String(16) | JSAPI |
用户标识 | openid | 否 | String(128) | oUpF8uMuAJO_M2pxb1Q9zNjWeS6o |
xm示例:
<xml>
<appid>wx2421b1c4370ec43b</appid>
<attach>支付测试</attach>
<body>JSAPI支付测试</body>
<mch_id>10000100</mch_id>
<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",