Order Payment
Order payment.
Interface Address:
/papi/order/orderPayRequest Method:
POSTContent-Type:
application/jsonHeader Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| X-Access-Key | string | Yes | API access key ID. See API Rules for authentication |
| X-Signature | string | Yes | Signature value, Base64-encoded HMAC-SHA256 result |
| X-Timestamp | string | Yes | Millisecond-level Unix timestamp (13 digits) |
| X-Nonce | string | Yes | Random string, 10~32 lowercase letters + digits |
Body Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| orderNo | string | Yes | Order number |
| payCode | string | Yes | Payment method; WALLET for wallet payment |
| providerCode | string | Yes | Provider code; INTERNAL for wallet payment |
| quantity | integer | No | Purchase quantity, default 1 |
| payParams | object | No | Payment parameters |
| ├─ key | object | No | key |
Request Example:
{
"orderNo": "string",
"payCode": "wxpayUs",
"providerCode": "Wallyt412",
"quantity": 1,
"payParams": {
"key": {}
}
}Response Parameters:
| Parameter | Type | Description |
|---|---|---|
| code | integer | Error code. See Error Codes |
| data | object | Response data |
| ├─ orderNo | string | Order number |
| ├─ qrcodeUrl | string | QR code URL |
| ├─ payUrl | string | Payment URL |
| ├─ payParams | object | Payment parameters (specific parameters for various payment methods, such as APP payment parameters) |
| ├─├─ key | object | key |
| ├─ payAmount | integer | Payment amount (US cents) |
| ├─ payAmountYuan | number | Payment amount (USD) |
| ├─ walletPayAmount | long | Wallet payment amount (US cents) |
| ├─ onlinePayAmount | long | Online payment amount (US cents) |
| ├─ walletBalance | string | Wallet balance after wallet payment (US cents), may be empty when the wallet is not used |
| ├─ currency | string | Currency (USD) |
| ├─ expireTime | integer | Order expiration time (timestamp) |
| ├─ payMethod | string | Payment method |
| ├─ payIcon | string | Payment method icon |
| ├─ payType | integer | Payment type |
| ├─ payScene | integer | Payment scene |
| ├─ transactionId | string | Transaction ID |
| ├─ productName | string | Product name |
| ├─ description | string | Order description |
| msg | string | Error message |
Response Example:
{
"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=WALLETandproviderCode=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.
