Skip to content

商品下单 ​

商品下单。支持在线支付、纯钱包支付和混合支付,也可通过 productCode=WALLET_RECHARGE 创建钱包充值订单。

接口地址:

text
/papi/order/create

请求方式:

text
POST

请求数据类型:

text
application/json

Header 参数:

参数类型必填说明
X-Access-Keystring是API 访问密钥 ID,鉴权方式见 接口规则
X-Signaturestring是签名值,Base64 编码的 HMAC-SHA256 计算结果
X-Timestampstring是毫秒级 Unix 时间戳(13 位)
X-Noncestring是随机字符串,10~32 位小写字母+数字

Body 参数:

参数类型必填说明
productCodestring是商品 code;钱包充值固定为 WALLET_RECHARGE
packageCodestring是套餐 Code;钱包充值订单无需传入
skuCodestring是Sku Code;钱包充值订单无需传入
quantityinteger否购买数量,默认 1;钱包充值订单无需传入
amountinteger否充值金额,单位为美分(如 1000 表示 10 美元),不能传小数;仅钱包充值订单使用
currencystring否币种代码,仅支持 USD;仅钱包充值订单使用
payCodestring是支付方式编码;纯钱包支付传 WALLET,钱包充值订单不得传 WALLET
providerCodestring是服务商编码;钱包支付传 INTERNAL
walletPayAmountlong否混合支付时钱包支付金额,单位为美分;须大于 0 且小于订单实付总额
autoRenewinteger否自动续费设置:0 关闭、1 开启,默认 0
modelSidstring否机型 sid,购买高端真机(customizeType=2)订单时必传
payParamsobject否支付参数
├─ keyobject否key

请求示例:

json
{
  "productCode": "CLOUD_PHONE",
  "packageCode": "s2e9pd6r6x",
  "skuCode": "gy5zp58kt3",
  "quantity": 1,
  "payCode": "wxpayUs",
  "providerCode": "Wallyt412",
  "modelSid": "string",
  "payParams": {
    "key": {}
  }
}

响应参数:

参数类型说明
codeinteger错误码,参见 错误码说明
dataobject返回数据
├─ orderNostring订单编号
├─ qrcodeUrlstring二维码 URL
├─ payUrlstring支付链接
├─ payParamsobject支付参数(用于各种支付方式的特定参数,如APP调起支付参数等)
├─├─ keyobjectkey
├─ payAmountinteger支付金额(美分)
├─ payAmountYuannumber支付金额(美元)
├─ walletPayAmountlong钱包支付金额(美分)
├─ onlinePayAmountlong在线支付金额(美分)
├─ walletBalancestring钱包支付后的余额(美分),未使用钱包支付时可为空
├─ currencystring支付币种(USD)
├─ expireTimeinteger订单过期时间(时间戳)
├─ payMethodstring支付方式
├─ payIconstring支付方式图标
├─ payTypeinteger支付类型
├─ paySceneinteger支付方式
├─ transactionIdstring交易 ID
├─ productNamestring商品名称
├─ descriptionstring订单描述
msgstring错误提示

响应示例:

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 代替。

OpenAPI Docs