统一下单
商户业务系统通过统一下单接口发起支付收款订单,支付网关会根据商户配置的支付通道路由支付通道完成支付下单。支付网关根据不同的支付方式返回对应的支付参数,业务系统使用支付参数发起收款。
接口说明
适用对象:普通商户 特约商户
请求URL:https://pay.tengjukeji.com/api/pay/unifiedOrder
请求方式:POST
请求类型:application/json 或 application/x-www-form-urlencoded
请求参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户号 | mchNo | 是 | String(64) | M1621873433953 | 商户号 |
| 应用ID | appId | 是 | String(64) | 60cc09bce4b0f1c0b83761c9 | 应用ID |
| 商户订单号 | mchOrderNo | 是 | String(64) | 20160427210604000490 | 商户生成的订单号 |
| 支付方式 | wayCode | 是 | String(20) | WX_LITE | 支付方式,如微信小程序WX_LITE |
| 支付金额 | amount | 是 | int | 100 | 支付金额,单位分 |
| 货币代码 | currency | 是 | String(3) | cny | 三位货币代码,人民币:cny |
| 客户端IP | clientIp | 否 | String(128) | 210.73.10.148 | 客户端IPV4地址 |
| 商品标题 | subject | 是 | String(128) | 商品标题测试 | 商品标题 |
| 商品描述 | body | 是 | String(256) | 商品描述测试 | 商品描述 |
| 门店编号 | storeId | 否 | int | 10010 | 商户的门店ID |
| 码牌ID | qrcId | 否 | long | 10010432445333 | 商户的码牌ID |
| 终端设备信息 | deviceInfo | 否 | String(256) | {“deviceType”:“auto_pos”,“deviceNo” :“abcde12345”} | 智能POS、收银插件下单必填,json格式字符串,详见终端设备信息说明 |
| 异步通知地址 | notifyUrl | 否 | String(256) | https://pay.tengjukeji.com/notify.htm | 支付结果异步回调URL,只有传了该值才会发起回调 |
| 跳转通知地址 | returnUrl | 否 | String(256) | https://pay.tengjukeji.com/return.htm | 支付结果同步跳转通知URL |
| 失效时间 | expiredTime | 否 | int | 3600 | 订单失效时间,单位秒,默认2小时.订单在(创建时间+失效时间)后失效 |
| 渠道参数 | channelExtra | 否 | String(512) | {“auth_code”:”13920933111042”} | 特定渠道发起的额外参数,json格式字符串.详见渠道参数说明 |
| 分账模式 | divisionMode | 否 | int | 0 | 分账模式: 0-该笔订单不允许分账[默认], 1-支付成功按配置自动完成分账支付完成自动分账【需包含自动分账接收方,否则自动更新为0(V3.0.0新增)】 , 2-商户手动分账(解冻商户金额) |
| 扩展参数 | extParam | 否 | String(512) | 134586944573118714 | 商户扩展参数,回调时会原样返回 |
| 请求时间 | reqTime | 是 | long | 1622016572190 | 请求接口时间,13位时间戳 |
| 接口版本 | version | 是 | String(3) | 1.0 | 接口版本号,固定:1.0 |
| 签名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 签名值,详见签名算法 |
| 签名类型 | signType | 是 | String(32) | MD5 | 签名类型,目前只支持MD5或RSA2方式 |
请求示例数据
{"mchNo":"M1736343150","appId":"677e7e6ee4b05b10a3008d86","wayCode":"WX_JSAPI","mchOrderNo":"P1767599781229583","amount":100,"currency":"cny","clientIp":"1.182.4.123","expiredTime":3600,"divisionMode":0,"reqTime":1767599781000,"version":"1.0","signType":"MD5","subject":"初一学杂费","body":"初一学杂费","extParam":"feeType","channelExtra":{"openid":"用户的微信openid或支付宝userid","subAppId":"小程序appid"},"notifyUrl":"回调地址","sign":"66A5767CAEE9A2AA8CB5E3E53FF00CCC"}
加密后的示例数据
{"mchNo":"M1736343150","encryptOpenApiData":"MDEyMzQ1Njc4OXlpeXVhbs3fCP1OTRJO1eS5FCleyBh0LEbWfWmyn5YHy1AF6lB9o9J0BTbjhJqYKGRvBE6E36iIFneMFxDW9XBEZpH0Jit8vHW1VfgBv7ukxV289Z29z3mzleE75ws+KPRQVUnM2Pmk+MmGFdkPccxXYFpEGQEpHg6cO2aYaS9Btv63zcR9MzJLIhHd4w6fxLzIJvT\/FA252V4hBnZ1dpODVixB\/RS1asgXHbS02inUh522\/u531YfLI8TBxJ8EDWFm5P37d+efMiTPkeQQxeyo1qiRkLlOaA8APl+69kfdJOe6ST7Jbkdoa24bajD1vMxh9FU+9N3DdRhNLljhZ289RmioUK+LKFrTeiPdXE3YbTad840IwBptyyAOoalSidcXFxh8NOUMUWAaD44EqPyULEo+eL8Tf+bNfI78ZbS4GET8+A7QzA0xKG06B60bISPNpbDkAKCXE7ewb\/lUhRPt7h7DzR8wPvN8y9bi9nd2FSVjPi7ZBDIghJg7yCvcbCx65dPEfd8T\/Q4Y2Ev\/a8FBLrTp43ymKaVehoN4ps50CYYcqPlx8K8E1960UIE1exR9S+4Lg2o65kwdO4X+Zd4BmKMQpyltniQCR\/4ADME2uB7H9++Rhtu5I5UYJ7w7n6G0k2HUnDQj+WjIl21lVKK4DZEQnKaV3kbX5TGZ7Bs28UIEdWI+VG5VVjzlsWBQw9cdsckRMojKUByoD0ZUfeyNK4Iym1V7WwhRhzbhY3RpU+OqqucW5DW2w1K6dtYaFycl2eDxGw=="}
终端设备信息说明
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 设备类型 | deviceType | 是 | String(20) | auto_pos | 智能POS:auto_pos,收银插件:cash_plugin |
| 设备号 | deviceNo | 是 | String(128) | abcde12345 | 设备号必填。设备类型为收银插件时传激活码;其他传设备号 |
| 设备厂商 | provider | 否 | String(20) | abc | 除智能POS外的其他设备类型,设备厂商必填 |
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 返回状态 | code | 是 | int | 0 | 0-处理成功,其他-处理有误,详见错误码 |
| 返回信息 | msg | 否 | String(128) | 签名失败 | 具体错误原因,例如:签名失败、参数格式校验错误 |
| 签名信息 | sign | 否 | String(32) | CCD9083A6DAD9A2DA9F668C3D4517A84 | 对data内数据签名,如data为空则不返回 |
| 返回数据 | data | 否 | String | {} | 返回下单数据,json格式数据 |
解密encryptData后的 data数据格式
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 支付订单号 | payOrderId | 是 | String(30) | U12021022311124442600 | 返回支付系统订单号 |
| 商户订单号 | mchOrderNo | 是 | String(30) | 20160427210604000490 | 返回商户传入的订单号 |
| 订单状态 | orderState | 是 | int | 2 | 支付订单状态 0-订单生成 1-支付中 2-支付成功 3-支付失败 4-已撤销 5-已退款 6-订单关闭 |
| 支付数据类型 | payDataType | 是 | String | payUrl | 支付参数类型 payUrl-跳转链接的方式 form-表单方式 wxapp-微信支付参数(微信公众号,小程序,app支付时) aliapp-支付宝app支付参数 ysfapp-云闪付app支付参数 codeUrl-二维码地址 codeImgUrl-二维码图片地址 none-空支付参数 |
| 支付数据 | payData | 否 | String | http://pay.tengjukeji.com/pay.html | 发起支付用到的支付参数,如微信公众号和小程序发起支付使用的参数等 |
| 订单信息数据 | payOrderInfo | 否 | String | {} | 订单信息, 当直接支付成功时会返回此数据 |
| 渠道错误码 | errCode | 否 | String | ACQ.PAYMENT_AUTH_CODE_INVALID | 上游渠道返回的错误码 |
| 渠道错误描述 | errMsg | 否 | String | Business Failed 失败 | 上游渠道返回的错误描述 |
返回示例数据加密的
{"code":0,"encryptData":"MDEyMzQ1Njc4OXlpeXVhboKxxkEtL3+19YKaQgas4KDX7P6b2Om\/mV4DhEQqVLNrev9eH9g7b1voGYKv5aS2ICXkbSGMfZyAeRdL+rQw+Rce0i0gFXJWrXl72wdZufqFhgGQ5bRhSuN6dNVqJf\/wRi4I6YZQ9u3W3cFN8a+phKv75+NNAJw8CPY8O9tWVpai20Cb\/h1YlrScrqNWR1xkMtoFhXaWiSvk3ofRl\/pXRQDVnVqPXSVtW41G7YRsCoDa61def8\/Uvjdx4Z63KgBuJldPTEFuP8pCx1m8XYQSqeo+XHsz+ESEr8Vy18LNkXtA0GI1yHpfFcQLk9PEO22jcMWZPPTQkTgovJQZjohBgaN1oFBMZB+gji87oQu71BxS9CCY+6MAqzKXJlZ4zq0EzRNJ9J9o1z9LRLo2MwBy2t2KTuQZ1lsonSuOb95QMqyUEkc+62MDKpKCEK1BHHaUhgTeQK2vGSjsR8x8DPwhl24b78KXJAl+TywtAkDNTaOy0Ssk5HGuhXnP0SGa83RrH3ixdzGyF+r3PvPm66wSfFb5tJa1IRnuGdfeAZMOLzLTH50noDZ1e+mBHO7I64eUXonbRqRA+ONlI4QLPqjX\/Ax049ChC0VyUsYXYCrMDwsZrO9wp9lBg1tVnNGgAmrqwq8r8ip543pfDvIb3YPQ6RnGXXE9ciTQExCAU7rmCd3U26aEzxRSurHwmBE4VJZmUUbeKikjQD8YWXf1dmbLntINzdyVstepOJCmsKr7tO7t0L7WHEpRJMLJo0TTThIb4oMvRNtsW6AXeoxVawfJxSYYWjszotXp+JxuhnqpVPOPvOljM9EFvKoRblQTatOCM6\/Y7HUkWYTKKrDi9qjidrnvk4MMat6oD8U+pyEMexn\/4ngL0eMIH9TPxVnSYhsKaIwc+un4JE9QgJH7fGx8ZFU=","msg":"SUCCESS","sign":"A01228B9855D11F280081E1670C8EBB1"}
返回示例数据解密后的数据
{"code":0,"msg":"SUCCESS","sign":"A01228B9855D11F280081E1670C8EBB1","data":{"payOrderId":"P2008085145877413889","mchOrderNo":"P1767599781229583","payData":"{\"appId\":\"wx952a3e36a8d0ac59\",\"timeStamp\":\"1767599782\",\"nonceStr\":\"9a52cb78016046dc908dbe0b63afa5dd\",\"package\":\"prepay_id=wx05155622603813b1133ded177663e20001\",\"signType\":\"RSA\",\"paySign\":\"x41rh1r+WfWG+L7NK+wmyC8p7e+v42TB1KXI0XsV5TUiMH6vHQc7y3x4TSxrNnVNl4PHH4a92S\/woNCEaKMyhzsq3782wq1FlmMQE\/gRbrvDrXI4vNeetavCmp7\/OoJ034nI9dqYkD4qKROokE9Sp9\/FHHsAjj8DB4v+NvPhn2wmQNLtnkkZfdMzup3phXXYqES\/vwMK6XSXuozpAuhus+aw1Y6tzG0mDeGDqXW9TFIb7RgEwceWH5j5IgWvGJi8ZVoE99rC3Tht1ko+HYs\/LefXvAYC+ZlB8fucrAbSj0NIdCDWxOMaghLnQp6\/hOmooX+Y3CTH++VFqvky7v+eVw==\"}","payDataType":"wxapp","orderState":1}}
返回示例数据二
{"code":9999,"msg":"商户(M1761720556)无此接口[API_PAY_ORDER]权限!"}
支付方式
| WayCode | 支付方式 |
|---|---|
| WEB_CASHIER | WEB收银台 |
| QR_CASHIER | 聚合扫码(用户扫商家) |
| AUTO_BAR | 聚合条码(商家扫用户) |
| ALI_BAR | 支付宝条码 |
| ALI_JSAPI | 支付宝生活号 |
| ALI_LITE | 支付宝小程序 |
| ALI_APP | 支付宝APP |
| ALI_WAP | 支付宝WAP |
| ALI_PC | 支付宝PC网站 |
| ALI_QR | 支付宝二维码 |
| WX_BAR | 微信条码 |
| WX_JSAPI | 微信公众号 |
| WX_LITE | 微信小程序 |
| WX_APP | 微信APP |
| WX_H5 | 微信H5 |
| WX_NATIVE | 微信扫码 |
| YSF_BAR | 云闪付条码 |
| YSF_JSAPI | 云闪付jsapi |
| AUTO_POS | 智能POS |
| DCEP_BAR | 数字人民币条码 |
| DCEP_QR | 数字人民币二维码 |
channelExtra参数说明
当 wayCode=AUTO_BAR 或 wayCode=ALI_BAR 或 wayCode=WX_BAR 或 wayCode=YSF_BAR 时,channelExtra必须传auth_code,为用户的付款码值,channelExtra示例数据如:
{"authCode": "13920933111042"}
当 wayCode=ALI_JSAPI或 wayCode=ALI_LITE 时,channelExtra必须传buyerUserId,为支付宝用户ID,channelExtra示例数据如:
{"buyerUserId": "2088702585070844"}
当 wayCode=WX_JSAPI 或 wayCode=WX_LITE 时,channelExtra必须传openid,为微信OpenId, channelExtra示例数据如:
{"openid": "o6BcIwvSiRpfS8e_UyfQNrYuk2LI"}
注意: 若当前为特约商户,并且商户使用的自己的公众号或者小程序获取到的openId时:
需要:
- 商户自己的公众号或者小程序的AppId需要在服务商里进行关联, 请联系运营平台进行配置;
channelExtra参数中添加 subAppId 参数,该参数为商户的公众号或小程序的AppId,示例:
{ "openid": "o6BcIwvSiRpfS8e_UyfQNrYuk2LI", "subAppId":"wx08b5a41f7a27abf1" }
当 wayCode=ALI_QR 或 wayCode=WX_NATIVE 时,channelExtra可以传payDataType设置返回支付数据支付类型。此时payDataType可以为:codeUrl-二维码地址,codeImgUrl-二维码图片地址,不传payDataType默认返回codeUrl类型, channelExtra示例数据如:
{"payDataType": "codeImgUrl"}
当 wayCode=QR_CASHIER 时,channelExtra可以传payDataType和entryPageType。
entryPageType指定聚合码扫码时进入H5或小程序页面,默认为H5页面。h5-h5页面,lite-小程序页面。
payDataType设置返回支付数据支付类型,此时payDataType可以为:codeUrl-二维码地址,codeImgUrl-二维码图片地址,不传payDataType默认返回codeUrl类型, channelExtra示例数据如:
{"entryPageType": "lite", "payDataType": "codeImgUrl"}
当 wayCode=ALI_WAP 时,channelExtra可以传payDataType设置返回支付数据支付类型。此时payDataType可以为:form-返回自动跳转的支付表单,codeImgUrl-返回一个二维码图片URL,payUrl-返回支付链接,不传payDataType默认返回payUrl类型, channelExtra示例数据如:
{"payDataType": "form"}
当 wayCode=ALI_PC 时,channelExtra可以传payDataType设置返回支付数据支付类型。此时payDataType可以为:form-返回自动跳转的支付表单,payUrl-返回支付链接,不传payDataType默认返回payUrl类型, channelExtra示例数据如:
{"payDataType": "form"}
查询订单
商户通过该接口查询订单,支付网关会返回订单最新的数据
接口说明
适用对象:普通商户 特约商户
请求URL:https://pay.tengjukeji.com/api/pay/query
请求方式:POST
请求类型:application/json 或 application/x-www-form-urlencoded
请求参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户号 | mchNo | 是 | String(64) | M1621873433953 | 商户号 |
| 应用ID | appId | 是 | String(64) | 60cc09bce4b0f1c0b83761c9 | 应用ID |
| 支付订单号 | payOrderId | 是 | String(30) | P20160427210604000490 | 支付中心生成的订单号,与mchOrderNo二者传一即可 |
| 商户订单号 | mchOrderNo | 是 | String(64) | 20160427210604000490 | 商户生成的订单号,与payOrderId二者传一即可 |
| 请求时间 | reqTime | 是 | long | 1622016572190 | 请求接口时间,13位时间戳 |
| 接口版本 | version | 是 | String(3) | 1.0 | 接口版本号,固定:1.0 |
| 签名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 签名值,详见签名算法 |
| 签名类型 | signType | 是 | String(32) | MD5 | 签名类型,目前只支持MD5或RSA2方式 |
请求示例数据
{"payOrderId": "P202106181104177050002","appId": "60cc09bce4b0f1c0b83761c9","sign": "46940C58B2F3AE426B77A297ABF4D31E","signType": "MD5","reqTime": "1624006009","mchNo": "M1623984572","version": "1.0"}
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 支付订单号 | payOrderId | 是 | String(30) | P12021022311124442600 | 返回支付系统订单号 |
| 商户号 | mchNo | 是 | String(30) | M1621873433953 | 商户号 |
| 应用ID | appId | 是 | String(24) | 60cc09bce4b0f1c0b83761c9 | 应用ID |
| 商户订单号 | mchOrderNo | 是 | String(30) | 20160427210604000490 | 返回商户传入的订单号 |
| 支付接口 | ifCode | 是 | String(30) | wxpay | 支付接口编码 |
| 支付方式 | wayCode | 是 | String(30) | WX_LITE | 支付方式,如微信小程序WX_LITE |
| 支付金额 | amount | 是 | int | 100 | 支付金额,单位分 |
| 货币代码 | currency | 是 | String(3) | cny | 三位货币代码,人民币:cny |
| 订单状态 | state | 是 | int | 2 | 支付订单状态 0-订单生成 1-支付中 2-支付成功 3-支付失败 4-已撤销 5-已退款 6-订单关闭 |
| 客户端IP | clientIp | 否 | String(32) | 210.73.10.148 | 客户端IPV4地址 |
| 商品标题 | subject | 是 | String(128) | 商品标题测试 | 商品标题 |
| 商品描述 | body | 是 | String(256) | 商品描述测试 | 商品描述 |
| 渠道订单号 | channelOrderNo | 否 | String | 20160427210604000490 | 对应渠道的订单号 |
| 渠道错误码 | errCode | 否 | String | 1002 | 渠道下单返回错误码 |
| 渠道错误描述 | errMsg | 否 | String | 134586944573118714 | 渠道下单返回错误描述 |
| 扩展参数 | extParam | 否 | String(512) | 134586944573118714 | 商户扩展参数,回调时会原样返回 |
| 创建时间 | createdAt | 是 | long | 1622016572190 | 订单创建时间,13位时间戳 |
| 成功时间 | successTime | 否 | long | 1622016572190 | 订单支付成功时间,13位时间戳 |
返回示例数据
{"code": 0,"data": {"amount": 58,"appId": "60cc09bce4b0f1c0b83761c9","body": "商品描述","channelOrderNo": "2021061822001423031419593035","clientIp": "192.166.1.132","createdAt": 1623985457705,"currency": "cny","extParam": "","ifCode": "alipay","mchNo": "M1623984572","mchOrderNo": "mho1623985457320","payOrderId": "P202106181104177050002","state": 2,"subject": "商品标题","successTime": 1623985459000,"wayCode": "ALI_BAR"},"msg": "SUCCESS","sign": "9548145EA12D0CD8C1628BCF44E19E0D"}
关闭订单
商户通过该接口关闭订单,支付网关会对订单完成关闭处理。
接口说明
适用对象:普通商户 特约商户
请求URL:https://pay.tengjukeji.com/api/pay/close
请求方式:POST
请求类型:application/json 或 application/x-www-form-urlencoded
请求参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户号 | mchNo | 是 | String(64) | M1621873433953 | 商户号 |
| 应用ID | appId | 是 | String(64) | 60cc09bce4b0f1c0b83761c9 | 应用ID |
| 支付订单号 | payOrderId | 是 | String(30) | P20160427210604000490 | 支付中心生成的订单号,与mchOrderNo二者传一即可 |
| 商户订单号 | mchOrderNo | 是 | String(64) | 20160427210604000490 | 商户生成的订单号,与payOrderId二者传一即可 |
| 请求时间 | reqTime | 是 | long | 1622016572190 | 请求接口时间,13位时间戳 |
| 接口版本 | version | 是 | String(3) | 1.0 | 接口版本号,固定:1.0 |
| 签名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 签名值,详见签名算法 |
| 签名类型 | signType | 是 | String(32) | MD5 | 签名类型,目前只支持MD5或RSA2方式 |
请求示例数据
{"payOrderId": "P202106181104177050002","appId": "60cc09bce4b0f1c0b83761c9","sign": "46940C58B2F3AE426B77A297ABF4D31E","signType": "MD5","reqTime": "1624006009","mchNo": "M1623984572","version": "1.0"}
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 渠道错误码 | errCode | 否 | String | 1002 | 渠道关单返回错误码 |
| 渠道错误描述 | errMsg | 否 | String | 关闭异常 | 渠道关单返回错误描述 |
返回示例数据
{"code": 0,"data": {"errCode": '',"errMsg": ''},"msg": "SUCCESS","sign": "9548145EA12D0CD8C1628BCF44E19E0D"}
条码换取openId
商户通过该接口上送刷卡条码值, 换取到微信openId。
接口说明
适用对象:普通商户 特约商户
请求URL:https://pay.tengjukeji.com/api/pay/queryOpenIdByBarcode
请求方式:POST
请求类型:application/json 或 application/x-www-form-urlencoded
请求参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户号 | mchNo | 是 | String(64) | M1621873433953 | 商户号 |
| 应用ID | appId | 是 | String(64) | 60cc09bce4b0f1c0b83761c9 | 应用ID |
| 条码数据 | barCode | 是 | String(60) | 20160427210604000490 | 条码值 |
| subAppId | subAppId | 否 | String(30) | 20160427210604000490 | 若传入则透传到三方支付 |
| 请求时间 | reqTime | 是 | long | 1622016572190 | 请求接口时间,13位时间戳 |
| 接口版本 | version | 是 | String(3) | 1.0 | 接口版本号,固定:1.0 |
| 签名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 签名值,详见签名算法 |
| 签名类型 | signType | 是 | String(32) | MD5 | 签名类型,目前只支持MD5或RSA2方式 |
请求示例数据
{"barCode": "202106181104177050002","sign": "46940C58B2F3AE426B77A297ABF4D31E","signType": "MD5","reqTime": "1624006009","mchNo": "M1623984572","version": "1.0"}
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| openId | openId | 否 | String | 1002 | openId |
| subOpenId | subOpenId | 否 | String | 1002 | subOpenId |
返回示例数据
{"code": 0,"data": {"openId": '',"subOpenId": ''},"msg": "SUCCESS","sign": "9548145EA12D0CD8C1628BCF44E19E0D"}
支付通知
当订单支付成功时,支付网关会向商户系统发起回调通知。如果商户系统没有正确返回,支付网关会延迟再次通知。
接口说明
适用对象:普通商户 特约商户
请求URL:该链接是通过统一下单接口提交的参数notifyUrl设置,如果无法访问链接,商户系统将无法接收到支付中心的通知。
请求方式:POST
请求类型:application/x-www-form-urlencoded
通知参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 支付订单号 | payOrderId | 是 | String(30) | P12021022311124442600 | 返回支付系统订单号 |
| 商户号 | mchNo | 是 | String(30) | M1621873433953 | 商户号 |
| 应用ID | appId | 是 | String(24) | 60cc09bce4b0f1c0b83761c9 | 应用ID |
| 商户订单号 | mchOrderNo | 是 | String(30) | 20160427210604000490 | 返回商户传入的订单号 |
| 支付接口 | ifCode | 是 | String(30) | wxpay | 支付接口编码 |
| 支付方式 | wayCode | 是 | String(30) | WX_LITE | 支付方式,微信小程序WX_LITE |
| 支付金额 | amount | 是 | int | 100 | 支付金额,单位分 |
| 货币代码 | currency | 是 | String(3) | cny | 三位货币代码,人民币:cny |
| 订单状态 | state | 是 | int | 2 | 支付订单状态 0-订单生成 1-支付中 2-支付成功 3-支付失败 4-已撤销 5-已退款 6-订单关闭 |
| 客户端IP | clientIp | 否 | String(32) | 210.73.10.148 | 客户端IPV4地址 |
| 商品标题 | subject | 是 | String(128) | 商品标题测试 | 商品标题 |
| 商品描述 | body | 是 | String(256) | 商品描述测试 | 商品描述 |
| 渠道订单号 | channelOrderNo | 否 | String | 20160427210604000490 | 对应渠道的订单号 |
| 渠道错误码 | errCode | 否 | String | 1002 | 渠道下单返回错误码 |
| 渠道错误描述 | errMsg | 否 | String | 134586944573118714 | 渠道下单返回错误描述 |
| 扩展参数 | extParam | 否 | String(512) | 134586944573118714 | 商户扩展参数 |
| 支付成功时间 | successTime | 否 | long | 1622016572190 | 订单支付成功时间,13位时间戳 |
| 创建时间 | createdAt | 是 | long | 1622016572190 | 订单创建时间,13位时间戳 |
| 通知请求时间 | reqTime | 是 | String(30) | 1622016572190 | 通知请求时间,,13位时间戳 |
| 签名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 签名值,详见签名算法 |
以下扩展参数如需同步传递需在商户后台配置
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户门店ID | storeId | 否 | int | 商户门店ID | |
| 经度 | lng | 否 | String | 商户门店ID | |
| 纬度 | lat | 否 | String | 商户门店ID | |
| 码牌ID | qrcId | 否 | int | 商户门店ID | |
| 支付方式代码分类 | wayCodeType | 否 | String | 商户门店ID | |
| 商户手续费费率 | mchFeeRate | 否 | String | 商户门店ID | |
| 商户手续费 | mchFeeAmount | 否 | int | 商户手续费,单位分 | |
| 渠道用户标识 | channelUser | 否 | String | 渠道用户标识,如微信openId,支付宝账号 | |
| 订单分账模式 | divisionMode | 否 | int | 订单分账模式:0-该笔订单不允许分账, 1-支付成功按配置自动完成分账, 2-商户手动分账(解冻商户金额) | |
| 买家备注 | buyerRemark | 否 | String | 买家备注 | |
| 卖家备注 | sellerRemark | 否 | String | 卖家备注 | |
| 订单失效时间 | expiredTime | 否 | long | 订单失效时间 | |
| 支付凭证交易单号 | platformOrderNo | 否 | String | 支付凭证交易单号 | |
| 支付凭证商户单号 | platformMchOrderNo | 否 | String | 支付凭证商户单号 |
> 返回结果
业务系统处理后同步返回给支付中心,返回字符串 success 则表示成功,返回非success则表示处理失败,支付中心会再次通知业务系统。(通知频率为0/30/60/90/120/150,单位:秒)
注意:返回的字符串不区分大小写,字符串前后不能有空格和换行符。
通知示例数据
{"amount": 5,"body": "商品描述","clientIp": "192.166.1.132","createdAt": "1622016572190","currency": "cny","extParam": "","ifCode": "wxpay","mchNo": "M1621873433953","appId": "60cc09bce4b0f1c0b83761c9","mchOrderNo": "mho1621934803068","payOrderId": "20210525172643357010","state": 3,"subject": "商品标题","wayCode": "WX_BAR","sign": "C380BEC2BFD727A4B6845133519F3AD6"}
获取渠道用户ID
商户通过该接口获取渠道的用户ID,如微信的openID,支付宝的userId。该接口通过跳转获取到用户ID后,会跳转到商户上传的redirectUrl地址,并传递用户ID参数
接口说明
适用对象:普通商户 特约商户
请求URL:https://pay.tengjukeji.com/api/channelUserId/jump
请求方式:GET
请求类型:application/json 或 application/x-www-form-urlencoded
请求参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户号 | mchNo | 是 | String(30) | M1621873433953 | 商户号 |
| 应用ID | appId | 是 | String(24) | 60cc09bce4b0f1c0b83761c9 | 应用ID |
| 支付接口 | ifCode | 是 | String(30) | AUTO | 目前只支持传 AUTO |
| 跳转地址 | redirectUrl | 是 | String | https://pay.tengjukeji.com | 获取到用户ID后,会携带用户ID参数跳转到该地址 |
| 请求时间 | reqTime | 是 | long | 1622016572190 | 请求接口时间,13位时间戳 |
| 接口版本 | version | 是 | String(3) | 1.0 | 接口版本号,固定:1.0 |
| 签名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 签名值,详见签名算法 |
| 签名类型 | signType | 是 | String(32) | MD5 | 签名类型,目前只支持MD5或RSA2方式 |
请求示例数据
{"mchNo": "M1621873433953","appId": "60cc09bce4b0f1c0b83761c9","ifCode": "wxpay","redirectUrl": "https://pay.tengjukeji.com","sign": "A5C93D50743126ED91AA6ED96CDEEEF8","signType": "MD5","reqTime": "1622011236571","version": "1.0"}
当获取到渠道用户ID后,会301重定向到跳转地址,传递参数如下
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 渠道用户ID | channelUserId | 是 | String | o6BcIwvSiRpfS8e_UyfQNrYuk2LI | 渠道用户ID,微信openId或支付宝userId |
完整跳转URL示例
https://pay.tengjukeji.com/toU?channelUserId=o6BcIwvSiRpfS8e_UyfQNrYuk2LI
返回码
| code | 描述 |
|---|---|
| 0 | 成功 |
| 9999 | 异常,具体错误详见msg字段 |
