微信JSAPI支付集成(微信小程序)

此文档适用于在微信小程序发起支付。特别注意,小程序要接入海外支付,必须主体是海外公司,例如公司收加币,就需要主体是加拿大公司。 中国境内公司申请的小程序无法接入海外支付。

API 请求

端点

https://api.iotpaycloud.com/v1/create_order

方法

POST

头部

Content-Type: application/x-www-form-urlencoded

参数说明

字段名变量名必填类型示例值描述
商户IDmchIdString(30)20001222支付中心分配的商户号
商户订单号mchOrderNoString(30)20160427210604000490商户生成的订单号,请保证唯一性
渠道IDchannelIdString(24)WX_JSAPI小程序接口
币种currencyString(3)CAD三位货币代码,加币:CAD
支付金额amountint100支付金额,单位分
客户端IPclientIpString(32)210.73.10.148客户端IP地址
设备deviceString(64)WEB终端设备号(门店号或收银设备ID),注意:PC网页或公众号内支付请传"WEB
支付结果回调URLnotifyUrlString(200)http://xxx.com/notify.php支付结果回调URL
商品主题subjectString(64)测试商品商品主题
商品描述信息bodyString(255)xxpay测试商品描述商品描述信息
扩展参数1param1String(64)支付中心回调时会原样返回
扩展参数2param2String(64)支付中心回调时会原样返回
附加参数extraString(512){"openId":"o2RvowBf7sOVJf8kJksUEMceaDqo", "type":"minipay","appId":"xxxxxxxxx"}
子账号jobNoString(50)商户登录名
附言remarksString(200)商户的附言
签名signString(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判断是否支付成功或失败

返回结果

字段名变量名必填类型示例值描述
返回状态码retCodeString(16)SUCCESSSUCCESS/FAIL此字段是通信标识,非交易标识,交易是否成功需要查看resCode来判断
返回信息retMsgString(128)签名失败返回信息,如非空,为错误原因 签名失败 参数格式校验错误

以下字段在retCode和resCode都为SUCCESS的时候有返回

字段名变量名必填类型示例值描述
支付订单号payOrderIdString支付订单号
支付参数payParamsArray小程序调用支付需要的参数
签名signString签名值

返回错误

更多返回错误代码请看这里

JSAPI 小程序集成部分源码示例

源码下载 点击这里在新窗口打开

上次更新: