# 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