# 收银台订单创建
商户业务系统通过收银台下单接口发起支付收款订单,支付网关会根据商户配置的支付通道显示支付通道,用户通过收银台完成支付下单。支付网关根据不同的支付方式返回对应的支付参数。
# 下单接口
接口
请求API: /api/pay/checkoutOrder
请求方式: POST
请求类型:application/json 或 application/x-www-form-urlencoded
注意
参数中: "currency{货币代码}-country{国家}" 为配对值,国家对应的当地货币
# 请求参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户号 | mchNo | 是 | String(30) | M1621873433953 | 商户号 |
| 应用ID | appId | 是 | String(24) | 60cc09bce4b0f1c0b83761c9 | 应用ID |
| 商户订单号 | mchOrderNo | 是 | String(30) | 20160427210604000490 | 商户生成的订单号 |
| 支付方式列表 | checkoutCodes | 否 | String(256) | KAKAO_PAY,NAVER_PAY,TOSS | 为空显示已经开通的所有支付, 支付方式,详见: 商户中心->应用管理->支付配置 |
| 支付排序方式 | checkoutSortAuto | 否 | boolean | true | 是否自动排序, 默认:true, true :按照系统默认排序, false:按照checkoutCodes顺序排序 |
| 支付金额 | amount | 是 | int | 100 | 支付金额,单位分 |
| 国家 | country | 是 | String(2) | KR | 国家二字码 *特殊二字码:EU-欧元区 |
| 货币代码 | currency | 是 | String(3) | KRW | 三位货币代码 |
| 客户端IP | clientIp | 是 | String(32) | 210.73.10.148 | 客户端IP地址 |
| 商品标题 | subject | 是 | String(64) | 商品标题测试 | 商品标题 |
| 商品描述 | body | 是 | String(256) | 商品描述测试 | 商品描述 |
| 用户Id | mchUserId | 否 | String(256) | user1008 | *建议入参,信用卡支付如提供用户Id,可保存卡号提高成功率 |
| 用户邮箱 | 否 | String(256) | abc@gmail.com | 用户邮箱 | |
| 异步通知地址 | notifyUrl | 否 | String(128) | https://merchant.com/testNotify/p01 | 支付结果异步回调URL,只有传了该值才会发起回调 |
| 跳转通知地址 | returnUrl | 否 | String(128) | https://merchant.com/testReturn/p01 | 支付结果同步跳转通知URL |
| 扩展参数 | extParam | 否 | String(512) | 134586944573118714 | 商户扩展参数,回调时会原样返回 |
| widget参数 | widget | 否 | boolean | false | 是否返回小部件参数 true-返回widgetToken false-不返回(默认) |
| 自定义文本 | customContent | 否 | String(256) | 首充翻倍 | 收银台自定义文本(支持HTML) |
| 请求时间 | reqTime | 是 | long | 1622016572190 | 请求接口时间,13位时间戳 |
| 接口版本 | version | 是 | String(3) | 1.0 | 接口版本号,固定:1.0 |
| 签名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 签名值,详见签名算法 |
| 签名类型 | signType | 是 | String(32) | MD5 | 签名类型,目前只支持MD5方式 |
# 请求示例数据
{
"amount": 8,
"extParam": "",
"mchOrderNo": "mho1624005107281",
"subject": "商品标题",
"sign": "84F606FA25A6EC4783BECC08D4FDC681",
"reqTime": "1622016572190",
"body": "商品描述",
"version": "1.0",
"appId": "60cc09bce4b0f1c0b83761c9",
"clientIp": "192.166.1.132",
"notifyUrl": "https://merchant.com/testNotify/p01",
"signType": "MD5",
"currency": "KRW",
"country": "KR",
"returnUrl": "",
"mchNo": "M1623984572",
"widget": false
}
# 返回参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 返回状态 | code | 是 | int | 0 | 0-处理成功,其他-处理有误,详见错误码 |
| 返回信息 | msg | 否 | String(128) | 签名失败 | 具体错误原因,例如:签名失败、参数格式校验错误 |
| 签名信息 | sign | 否 | String(32) | CCD9083A6DAD9A2DA9F668C3D4517A84 | 对data内数据签名,如data为空则不返回 |
| 返回数据 | data | 否 | String(512) | {} | 返回下单数据,json格式数据 |
# data数据格式
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 支付订单号 | payOrderId | 是 | String(30) | U12021022311124442600 | 返回支付系统订单号 |
| 商户订单号 | mchOrderNo | 是 | String(30) | 20160427210604000490 | 返回商户传入的订单号 |
| 订单状态 | orderState | 是 | int | 2 | 支付订单状态 0-订单生成 1-支付中 2-支付成功 3-支付失败 4-已撤销 6-订单关闭 |
| 支付数据类型 | payDataType | 是 | String | payUrl | 支付参数类型 payUrl-跳转链接的方式 |
| 支付数据 | payData | 否 | String | http://pay.enjoy.link/pay.html | 发起支付用到的支付参数 |
| 渠道错误码 | errCode | 否 | String | PAYMENT_AUTH_CODE_INVALID | 上游渠道返回的错误码 |
| 渠道错误描述 | errMsg | 否 | String | Business Failed 失败 | 上游渠道返回的错误描述 |
| 小部件Token | widgetToken | 否 | String | abc123token | 小部件初始化Token,当请求参数widget=true时返回 用于前端token组件初始化 |
# 返回示例数据
{
"code": 0,
"data": {
"errCode": "PAYMENT_AUTH_CODE_INVALID",
"errMsg": "Business Failed【支付失败,请联系管理员处理。[JSON_PARSER_FAIL]】",
"mchOrderNo": "mho1624005752661",
"orderState": 3,
"payOrderId": "P202106181642329900002",
"widgetToken": ""
},
"msg": "SUCCESS",
"sign": "F4DA202C516D1F33A12F1E547C5004FD"
}