# 微信JSAPI支付集成(微信小程序)
此文档适用于在微信小程序发起支付。特别注意,小程序要接入海外支付,必须主体是海外公司,例如公司收加币,就需要主体是加拿大公司。 中国境内公司申请的小程序无法接入海外支付。
# 请求URL
服务地址: https://api.iotpaycloud.com/v1/create_order
请求方式:
- POST
- Content-Type: application/x-www-form-urlencoded
# 参数说明
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
商户ID | mchId | 是 | String(30) | 20001222 | 支付中心分配的商户号 |
商户订单号 | mchOrderNo | 是 | String(30) | 20160427210604000490 | 商户生成的订单号,请保证唯一性 |
渠道ID | channelId | 是 | String(24) | WX_JSAPI | 小程序接口 |
币种 | currency | 是 | String(3) | CAD | 三位货币代码,加币:CAD |
支付金额 | amount | 是 | int | 100 | 支付金额,单位分 |
客户端IP | clientIp | 是 | String(32) | 210.73.10.148 | 客户端IP地址 |
设备 | device | 否 | String(64) | WEB | 终端设备号(门店号或收银设备ID),注意:PC网页或公众号内支付请传"WEB |
支付结果回调URL | notifyUrl | 是 | String(200) | http://xxx.com/notify.php | 支付结果回调URL |
商品主题 | subject | 是 | String(64) | 测试商品 | 商品主题 |
商品描述信息 | body | 是 | String(255) | xxpay测试商品描述 | 商品描述信息 |
扩展参数1 | param1 | 否 | String(64) | 支付中心回调时会原样返回 | |
扩展参数2 | param2 | 否 | String(64) | 支付中心回调时会原样返回 | |
附加参数 | extra | 是 | String(512) | {"openId":"o2RvowBf7sOVJf8kJksUEMceaDqo", "type":"minipay","appId":"xxxxxxxxx"} | |
子账号 | jobNo | 是 | String(50) | 商户登录名 | |
附言 | remarks | 否 | String(200) | 商户的附言 | |
签名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 签名值,详见签名算法 |
当小程序后端接收到返回值后,将返回值传回小程序前端并调用wx.requestPayment
,将以下参数填入进行发起支付:
wx.requestPayment({
appId: res.data.payParams.appId,
timeStamp: res.data.payParams.timeStamp,
nonceStr: res.data.payParams.nonceStr,
package: res.data.payParams.package,
signType: res.data.payParams.signType,
paySign: res.data.payParams.paySign,
success(res) {
console.log(res);
wx.navigateTo({
url: '',
})
},
fail(res) {
console.log(res);
wx.navigateTo({
url: '',
})
}
})
支付完成后,商家后台系统仍需根据notify判断是否支付成功或失败
# 返回结果
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
返回状态码 | retCode | 是 | String(16) | SUCCESS | SUCCESS/FAIL此字段是通信标识,非交易标识,交易是否成功需要查看resCode来判断 |
返回信息 | retMsg | 否 | String(128) | 签名失败 | 返回信息,如非空,为错误原因 签名失败 参数格式校验错误 |
# 以下字段在retCode和resCode都为SUCCESS的时候有返回
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
支付订单号 | payOrderId | 是 | String | 支付订单号 | |
支付参数 | payParams | 是 | Array | 小程序调用支付需要的参数 | |
签名 | sign | 是 | String | 签名值 |
# 返回错误
更多返回错误代码请看这里
# JSAPI 小程序集成部分源码示例
源码下载 点击这里