回调
签约状态回调
回调方式
POST https://商户回调URL
- 签约与用户发起解约都会有回调
回调示例
{
"iotpayContractId": "CWJ202508182305444",
"mchContractId": "b208c6dd-4f4e-4745-b17c-8d8a348f7064",
"status": "2",
"signedAt": "1755558434000",
"cancelledAt": "0",
"contractId": "2025081907667718",
"openId": "osirq1BQeEVY",
"sign": "B6A8F46537B4B5C888A95"
}
回调参数
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
Iotpay合约号 | iotpayContractId | 是 | String | 10000701 | 支付中心分配的商户号 |
商户合约号 | mchContractId | 是 | String | 2177aac8-1c3e-4291-97e0-f63f69b34cb6 | 商户生成的订单号,请保证唯一性 |
签约状态 | status | 是 | String | 只有2视为已签约 | 签约状态: 1:等待签约, 2:签约成功 9: 已解约 |
签约时间 | signedAt | 是 | String | 1755558434000 | 签约时间,毫秒时间戳 |
取消时间 | cancelledAt | 是 | String | 0 | 取消时间,毫秒时间戳 |
合约ID | contractId | 否 | String | 202508190766771823708667160266 | 合约ID |
openId | openId | 否 | String | osirq1BQeEV3- | 用户的openId |
签名 | sign | 是 | String | B6A8F46537B4B5C888A9 | 签名值,详见签名算法 |
支付回调
回调方式
POST https://商户回调URL
以下字段在retCode
和resCode
都为SUCCESS
的时候有返回
字段名 | 变量名 | 类型 | 示例值 | 描述 |
---|---|---|---|---|
支付订单号 | payOrderId | String(30) | P20160427210604000490 | 支付中心生成的订单号 |
商户ID | mchId | String(30) | 20001222 | 支付中心分配的商户号 |
商户订单号 | mchOrderNo | String(30) | 20160427210604000490 | 商户生成的订单号 |
渠道ID | channelId | String(24) | WX_JSAPI | 见支付渠道参数 |
币种 | currency | String(3) | CAD | 三位货币代码,加币:CAD |
支付金额 | amount | int | 100 | 支付金额,单位分 |
状态 | status | int | 2 | 支付状态, 2 or 3代表成功 |
客户端IP | clientIp | String(32) | 210.73.10.148 | 客户端IP地址 |
设备 | device | String(64) | WEB | 终端设备号(门店号或收银设备ID),注意:PC网页或公众号内支付请传”WEB |
商品主题 | subject | String(64) | 测试商品 | 商品主题 |
商品描述信息 | body | String(256) | 测试商品描述 | 商品描述信息 |
渠道订单号 | channelOrderNo | String(64) | wx2016081611532915ae15b00b0167893571 | 三方支付渠道订单号 |
扩展参数1 | param1 | String(64) | 支付中心回调时会原样返回(若为微信公众号内部支付,会被替换为"mchOrderId") | |
扩展参数2 | param2 | String(64) | 支付中心回调时会原样返回 | |
支付成功时间 | paySuccTime | long | 精确到毫秒 | |
通知类型 | backType | int | 1 | 通知类型,1-前台通知,2-后台通知 |
签名 | sign | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 签名值,详见签名算法 |
是否签约 | autodebit | String(1) | 1 | 是否签约,1-签约,0-非签约 |
商户合约号 | mchContractId | String(128) | b53554e6-edd5-472b-b534-fe137fbbb382 | 商户生成的合约号,请保证唯一性 |
Iotpay合约号 | iotpayContractId | String(128) | CWJ20250819011704375030054146 | 支付中心分配的合约号 |
货币金额 | currencyAmount | String(10) | 77 | 货币金额,单位分。只有currency于商户签约结算货币不同时返回 |
返回结果
业务系统处理后同步返回给支付中心,返回字符串success
则表示成功,返回非success
则表示处理失败,支付中心会再次通知业务系统。*(通知次数最多4次)
主动轮询订单状态
对于没有后台的商家,例如从pos机软件来集成,无法提供notifyUrl来接收订单状态,可以采用主动轮询的方式来查询订单交易是否成功。
查看订单查询接口这里
双保险获取订单状态
强烈建议商家选择同时使用notifyUrl和轮询机制(30分钟)来确保能够获取订单交易状态