# Wechat mini program
This document is for wechat mini program integration. Note: the mini program must be owned by overseas company.
# Request URL
Endpoint: https://api.iotpaycloud.com/v1/create_order
Request method:
- POST
- Content-Type: application/x-www-form-urlencoded
# parameters
| name | required | type | sample | description |
|---|---|---|---|---|
| mchId | y | String(30) | 10000701 | merchant id assigned by IOTPay |
| mchOrderNo | y | String(30) | 20160427210604000490 | order number in merchant system,need to be unique |
| channelId | y | String(24) | WX_JSAPI | channel id |
| currency | y | String(3) | CAD | 3 letters representation for currency |
| amount | y | int | 100 | payment amount,in cents,eg. $28.56 is 2856 |
| clientIp | y | String(32) | 210.73.10.148 | Client IP |
| device | n | String(64) | WEB | device identifier |
| notifyUrl | y | String(200) | http://xxx.com/notify.php | IOTPay will notify this url when payment success |
| subject | y | String(64) | product id or title | product id or title |
| body | y | String(255) | product description | product description |
| param1 | n | String(64) | IOTPay will send back the original value | |
| param2 | n | String(64) | IOTPay will send back the original value | |
| extra | y | String(512) | {"openId":"o2RvowBf7sOVJf8kJksUEMceaDqo", "type":"minipay","appId":"xxxxxxxxx"} | |
| jobNo | y | String(50) | merchant login name | |
| remarks | n | String(200) | remarks | |
| sign | y | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | signature |
When merchant get the response from IOTPay API, pass the returned parameters to mini program.
Mini program will call wx.requestPayment with these parameters.
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: '',
})
}
})
After payment,merchant backend server still need notifyUrl to judge whether the transaction is successful
# return fields
| field | require | type | sample | description |
|---|---|---|---|---|
| retCode | y | String(16) | SUCCESS | SUCCESS/FAIL this field indicate communication result,not transaction. need to check resCode to see whether transaction succeed |
| retMsg | n | String(128) | signature error | error message |
# the following fields will return when retCode and resCode are both SUCCESS
| name | required | type | sample | description |
|---|---|---|---|---|
| payOrderId | y | String | payment order id | |
| payParams | y | Array | the parameters for mini program to call wx.requestPayment | |
| sign | y | String | signature |
# error code
# sample code
sample code download