Checkout Create(收银台下单)
面向商户侧的收银台下单接口,用于创建订单并获取收银台链接与 JWT token。
当前收银台仅支持 INTERNATIONAL_CARD(国际信用卡) 支付方式。
1. 接口信息
| 项目 | 说明 |
|---|---|
| HTTP Method | POST |
| URL | /payIn/orders/create |
| Content-Type | application/json |
| 认证 | 商户签名(X-Merchant-Id / X-Timestamp / X-Nonce / X-Sign) |
签名规则与公共响应结构参考 签名与验签。
2. 请求参数
2.1 顶层字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
merchantOrderNo | String | 是 | 商户订单号(幂等) |
amount | Decimal | 是 | 订单金额(>= 0.01) |
currency | String | 是 | 币种(如 USD) |
methodCode | String | 否 | 支付方式编码(仅支持 INTERNATIONAL_CARD,默认该值) |
productName | String | 否 | 商品名称 |
productDesc | String | 否 | 商品描述 |
billingAddress | Object | 否 | 账单地址 |
shippingAddress | Object | 否 | 邮寄地址 |
remark | String | 否 | 备注 |
returnUrl | String | 否 | 同步回跳 URL(优先级低于商户配置) |
extParams | Object | 否 | 扩展参数(JSON) |
lineItems | Array | 否 | 订单行项目(明细版) |
2.2 地址对象(billingAddress / shippingAddress)
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
country | String | 否 | 国家(ISO-3166-1 alpha-2) |
state | String | 否 | 省/州 |
city | String | 否 | 城市 |
postalCode | String | 否 | 邮编 |
addressLine1 | String | 否 | 街道地址 1 |
addressLine2 | String | 否 | 街道地址 2 |
name | String | 否 | 收件人/持卡人姓名 |
2.4 lineItems(订单行项目)
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
name | String | 否 | 商品名称 |
quantity | Integer | 否 | 数量 |
sku | String | 否 | SKU |
unitPrice | Long | 否 | 单价(最小单位) |
totalAmount | Long | 否 | 总金额(最小单位) |
taxAmount | Long | 否 | 税额(最小单位) |
taxPercentage | Long | 否 | 税率(百分比 * 100) |
3. 响应参数
统一返回 SingleResponse:
json
{
"success": true,
"data": {
"payNo": "P202412220002",
"cashierUrl": "https://cashier.example.com/pay?token=xxx",
"token": "eyJhbGciOi..."
},
"errCode": null,
"errMsg": null
}data 字段
| 字段 | 类型 | 说明 |
|---|---|---|
payNo | String | 平台订单号 |
cashierUrl | String | 收银台 URL(含 token) |
token | String | 收银台 JWT(前端使用) |
4. 请求示例
json
{
"merchantOrderNo": "M202412220001",
"amount": "100.00",
"currency": "USD",
"methodCode": "INTERNATIONAL_CARD",
"productName": "T-shirt",
"billingAddress": {
"country": "US",
"state": "CA",
"city": "San Francisco",
"postalCode": "94102",
"addressLine1": "123 Test Street"
}
}5. 说明
merchantOrderNo为幂等键,重复创建会返回已存在订单的payNo与新的cashierUrl/token。- 商户应将用户跳转到
cashierUrl完成支付流程。 - 目前收银台仅支持
INTERNATIONAL_CARD,卡信息由收银台前端加密提交。