Skip to content

Order Payment ​

Order payment.

Interface Address:

text
/papi/order/orderPay

Request Method:

text
POST

Content-Type:

text
application/json

Header Parameters:

ParameterTypeRequiredDescription
X-Access-KeystringYesAPI access key ID. See API Rules for authentication
X-SignaturestringYesSignature value, Base64-encoded HMAC-SHA256 result
X-TimestampstringYesMillisecond-level Unix timestamp (13 digits)
X-NoncestringYesRandom string, 10~32 lowercase letters + digits

Body Parameters:

ParameterTypeRequiredDescription
orderNostringYesOrder number
payCodestringYesPayment method; WALLET for wallet payment
providerCodestringYesProvider code; INTERNAL for wallet payment
quantityintegerNoPurchase quantity, default 1
payParamsobjectNoPayment parameters
├─ keyobjectNokey

Request Example:

json
{
  "orderNo": "string",
  "payCode": "wxpayUs",
  "providerCode": "Wallyt412",
  "quantity": 1,
  "payParams": {
    "key": {}
  }
}

Response Parameters:

ParameterTypeDescription
codeintegerError code. See Error Codes
dataobjectResponse data
├─ orderNostringOrder number
├─ qrcodeUrlstringQR code URL
├─ payUrlstringPayment URL
├─ payParamsobjectPayment parameters (specific parameters for various payment methods, such as APP payment parameters)
├─├─ keyobjectkey
├─ payAmountintegerPayment amount (US cents)
├─ payAmountYuannumberPayment amount (USD)
├─ walletPayAmountlongWallet payment amount (US cents)
├─ onlinePayAmountlongOnline payment amount (US cents)
├─ walletBalancestringWallet balance after wallet payment (US cents), may be empty when the wallet is not used
├─ currencystringCurrency (USD)
├─ expireTimeintegerOrder expiration time (timestamp)
├─ payMethodstringPayment method
├─ payIconstringPayment method icon
├─ payTypeintegerPayment type
├─ paySceneintegerPayment scene
├─ transactionIdstringTransaction ID
├─ productNamestringProduct name
├─ descriptionstringOrder description
msgstringError message

Response Example:

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": ""
}

Notes:

  • Pay an existing order with the wallet: pass payCode=WALLET and providerCode=INTERNAL; only applicable to unfinished orders that comply with wallet payment rules.
  • Wallet payment cannot be used for wallet recharge orders, and an existing mixed-payment order cannot be converted directly into pure wallet payment.
  • If an online payment already exists for the order and may still be collectable, reliably confirm it has been closed before proceeding.

Wallet payment rules ​

Wallet payment uses payCode=WALLET and providerCode=INTERNAL. Mixed payment uses the actual online channel plus an integer walletPayAmount in USD cents, greater than zero and below the calculated payable total; do not submit onlinePayAmount. Recharge orders cannot use wallet or mixed payment. On timeout or uncertain payment status, query the original order and transactions before retrying. Cancellation or switching to wallet payment requires reliable confirmation that an existing online payment is closed. Wallet deductions are returned against the original transaction when cancellation is permitted.

OpenAPI Docs