商品下单
商品下单。支持在线支付、纯钱包支付和混合支付,也可通过 productCode=WALLET_RECHARGE 创建钱包充值订单。
接口地址:
text
/papi/order/create请求方式:
text
POST请求数据类型:
text
application/jsonHeader 参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| X-Access-Key | string | 是 | API 访问密钥 ID,鉴权方式见 接口规则 |
| X-Signature | string | 是 | 签名值,Base64 编码的 HMAC-SHA256 计算结果 |
| X-Timestamp | string | 是 | 毫秒级 Unix 时间戳(13 位) |
| X-Nonce | string | 是 | 随机字符串,10~32 位小写字母+数字 |
Body 参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| productCode | string | 是 | 商品 code;钱包充值固定为 WALLET_RECHARGE |
| packageCode | string | 是 | 套餐 Code;钱包充值订单无需传入 |
| skuCode | string | 是 | Sku Code;钱包充值订单无需传入 |
| quantity | integer | 否 | 购买数量,默认 1;钱包充值订单无需传入 |
| amount | integer | 否 | 充值金额,单位为美分(如 1000 表示 10 美元),不能传小数;仅钱包充值订单使用 |
| currency | string | 否 | 币种代码,仅支持 USD;仅钱包充值订单使用 |
| payCode | string | 是 | 支付方式编码;纯钱包支付传 WALLET,钱包充值订单不得传 WALLET |
| providerCode | string | 是 | 服务商编码;钱包支付传 INTERNAL |
| walletPayAmount | long | 否 | 混合支付时钱包支付金额,单位为美分;须大于 0 且小于订单实付总额 |
| autoRenew | integer | 否 | 自动续费设置:0 关闭、1 开启,默认 0 |
| modelSid | string | 否 | 机型 sid,购买高端真机(customizeType=2)订单时必传 |
| payParams | object | 否 | 支付参数 |
| ├─ key | object | 否 | key |
请求示例:
json
{
"productCode": "CLOUD_PHONE",
"packageCode": "s2e9pd6r6x",
"skuCode": "gy5zp58kt3",
"quantity": 1,
"payCode": "wxpayUs",
"providerCode": "Wallyt412",
"modelSid": "string",
"payParams": {
"key": {}
}
}响应参数:
| 参数 | 类型 | 说明 |
|---|---|---|
| code | integer | 错误码,参见 错误码说明 |
| data | object | 返回数据 |
| ├─ orderNo | string | 订单编号 |
| ├─ qrcodeUrl | string | 二维码 URL |
| ├─ payUrl | string | 支付链接 |
| ├─ payParams | object | 支付参数(用于各种支付方式的特定参数,如APP调起支付参数等) |
| ├─├─ key | object | key |
| ├─ payAmount | integer | 支付金额(美分) |
| ├─ payAmountYuan | number | 支付金额(美元) |
| ├─ walletPayAmount | long | 钱包支付金额(美分) |
| ├─ onlinePayAmount | long | 在线支付金额(美分) |
| ├─ walletBalance | string | 钱包支付后的余额(美分),未使用钱包支付时可为空 |
| ├─ currency | string | 支付币种(USD) |
| ├─ expireTime | integer | 订单过期时间(时间戳) |
| ├─ payMethod | string | 支付方式 |
| ├─ payIcon | string | 支付方式图标 |
| ├─ payType | integer | 支付类型 |
| ├─ payScene | integer | 支付方式 |
| ├─ transactionId | string | 交易 ID |
| ├─ productName | string | 商品名称 |
| ├─ description | string | 订单描述 |
| msg | string | 错误提示 |
响应示例:
json
{
"code": 0,
"data": {
"orderNo": "",
"qrcodeUrl": "",
"payUrl": "",
"payParams": {
"": {}
},
"payAmount": 0,
"payAmountYuan": 0.0,
"walletPayAmount": 0,
"onlinePayAmount": 0,
"walletBalance": "0",
"currency": "",
"expireTime": 0,
"payMethod": "",
"payIcon": "",
"payType": 0,
"payScene": 0,
"transactionId": "",
"productName": "",
"description": ""
},
"msg": ""
}说明:
- 钱包充值下单:
productCode固定为WALLET_RECHARGE(内部商品类型为 7),无需套餐、SKU 和数量,amount传美分整数金额(如1000表示 10 美元,不能传小数),币种固定为 USD;payCode不得为WALLET。充值到账状态通过查询充值状态确认。 - 纯钱包支付:
payCode=WALLET、providerCode=INTERNAL;未传walletPayAmount时使用订单全额支付。 - 混合支付:
payCode传实际在线支付方式,并传walletPayAmount(美分);须大于 0 且小于后端计算的订单实付总额,在线支付金额由后端计算。下单前建议先通过商品价格计算取得实际价格。 - 高端真机下单:购买高端真机(customizeType=2)的订单必须传入
modelSid(机型 sid)。 - 请求失败或超时时先查询原订单和流水,不要以签名中的
X-Nonce作为业务幂等号。
钱包支付规则
纯钱包支付使用 payCode=WALLET、providerCode=INTERNAL;混合支付使用实际在线渠道并传 JSON 整数 walletPayAmount(美分),须大于 0 且小于后台计算的实付总额,不提交 onlinePayAmount。充值订单不能使用钱包或混合支付。支付超时或结果待确认时,先查询原订单和流水;取消或改用钱包支付前,须可靠确认已有在线付款已关闭。符合取消条件时,钱包扣款按原流水返还。
充值下单:productCode=WALLET_RECHARGE,amount 为 JSON 正整数(如 1000),默认 USD;无需 SKU、套餐、数量、productType 或业务 requestId,providerCode 不得为 INTERNAL。响应 VO 忽略 payNo,不可依赖其返回。仅购买高端真机必须传 modelSid,从获取品牌机型接口取得所选机型 SID;钱包、在线及混合支付均适用,不可用机型名称或已有云机 SID 代替。
