Order Accumulation Mode - Payment Callback
When the payment for an accumulated order is successful but the order amount is not met, the merchant will be notified.
Brief Description
- After the payment for an accumulated order is completed but the order amount is not met, the payment result and user information will be sent to the merchant in JSON format. The merchant must receive and process the information and return a response according to the document specifications.
- The same notification may be sent to the merchant multiple times. Merchants must be able to properly handle duplicate notifications.
- During backend notification interaction, if the merchant's HTTP response is not equal to 200 and the response content contains "success," the notification will be considered failed and resent. Multiple notifications will be sent in total. The notification frequency is every 2 minutes for orders within 10 minutes, every 10 minutes for orders within 1 hour, and every hour for orders within 12 hours.
- The merchant system must perform signature verification on the payment result notification content and verify that the returned order amount is consistent with the merchant's order amount to prevent data leaks and "false notifications" that may result in financial losses.
- When receiving a notification and processing it, first check the status of the corresponding business data to determine whether the notification has been processed. If not, then process it. If it has been processed, directly return a success result. Before checking and processing the business data status, use data locks for concurrency control to avoid data corruption caused by function reentrancy.
- If all field values โโare null or "", they are not included in the signature.
Callback Parameters:
Parameter Name | Signature Verification | Type | Length | Description |
---|---|---|---|---|
allPayCryptoVolume | Y | string | 16 | Total amount of all payment cryptocurrencies |
hash | Y | string | 256 | Transaction hash value |
merchantOrderNo | Y | string | 64 | Merchant order number |
orderCryptoVolume | Y | string | 16 | Total amount of order cryptocurrencies |
orderNo | Y | string | 64 | Order number |
payCryptoCurrency | Y | string | 32 | Payment cryptocurrency |
payCryptoNetwork | Y | string | 32 | Payment cryptocurrency network |
payCryptoVolume | Y | string | 16 | Amount of cryptocurrency paid |
payNo | Y | string | 64 | Payment order number |
payTime | Y | string | 64 | Payment time (UTC+8, format yyyy-MM-dd HH:mm:ss) |
remainingCryptoVolume | Y | string | 16 | Remaining amount of cryptocurrency to be paid |
status | Y | string | 32 | Order status |
sign | N | string | 256 | Signature |
Callback Status
status | Explanation |
---|---|
PROCESSING | Waiting for payment of remaining cryptocurrency |
Callback Parameter Example
{
"allPayCryptoVolume": "0.6",
"hash": "0x756c76d32weweb16b7a2cb0f1weweeba836",
"merchantOrderNo": "54674542ewwe786",
"orderCryptoVolume": "1",
"orderNo": "we",
"payCryptoCurrency": "USDT",
"payCryptoNetwork": "BSC",
"payCryptoVolume": "0.2",
"payNo": "300317wee55we99924731312",
"payTime": "2025-08-14 16:29:56",
"remainingCryptoVolume": "0.4",
"sign": "247342F9678BA59ECdsdsds4D5",
"status": "PROCESSING"
}
Updated 1 day ago