# 微信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 小程序集成部分源码示例

源码下载 点击这里

上次更新: 11/25/2020, 2:11:59 PM