7.3.1 Create a scan-code payment order with a limited amount of digital currency
#Brief description: Digital currency recharge business interface, users can recharge USDT (Tether) to their digital wallet account (market exchange rate) by scanning the QR code
- Request method: POST
- Request interface: https://gateway-domain/wallet-trade-merchant/v1/receive/blockchain/fixed/create
- Request media type (JSON data format)Content-Type: application/json
Request parameters
| Parameter name | Type | Required | Parameter meaning | Parameter description |
|---|---|---|---|---|
key | string | Yes | Merchant key | apiKey |
localOrderId | string | Yes | Merchant platform local order number | Merchant platform generates unique order number locally |
localUserId | string | No | Merchant platform local user ID | Merchant platform local user ID |
notifyUrl | string | No | Callback address | After the order is placed successfully, the merchant's address will be notified by API callback (for callback details, please refer to Document 3) |
successRedirectUrl | string | No | Jump address | Automatically jump to address after success |
currency | string | Yes | Currency | Pricing currency (wallet currency) |
userCurrency | string | Yes | Currency | The currency that the user needs to pay (the wallet supports digital currencies) |
amount | number | Yes | Amount | Order pricing amount |
isBlockchain | boolean | No | Whether to return blockchain information (default false) | When true, the callback request will carry the transaction information on the order chain |
networkLimits | array | No | Mainnet | Designated payment mainnet, such as TRON, BSC, POLYGON, ETHEREUM |
expireSecond | Long | No | Expiration timestamp (seconds) | |
sign | string | Yes | Signature | See Signature Algorithm for details |
Request json sample
{
"key": "dNNTJZpgFVWlYrVv",
"localOrderId": "CONAN-TES1225662",
"userCurrency": "USDT",
"currency": "CNY",
"amount": 10,
"networkLimits": ["TRON", "BSC"],
"sign": "8b949190830deb3acf5fd356f2424c72"
}
Response json example
{
"code": 0,
"success": true,
"message": null,
"data": {
"orderId": 474103463461061,
"localUserId": null,
"localOrderId": "CONAN-TES1225662",
"orderType": "PAYMENT",
"orderBizType": "PAYMENT_FIXED_DIGITAL_SCAN",
"paymentUrl": "https://dxpay.dxstudio.org/fixed-amount-pay/S8hQJJWtWW2GZqLXZc9Nm8Xf32tVDoL44jYqJ59mcrMLy1Zr3RKAu4NVmLzg",
"publicKey": "S8hQJJWtWW2GZqLXZc9Nm8Xf32tVDoL44jYqJ59mcrMLy1Zr3RKAu4NVmLzg",
"currency": "CNY",
"userCurrency": "USDT",
"amount": "10",
"userReceivableAmount": "1.49",
"rate": "6.69220484",
"rateExpression": "1USDT≈6.6922CNY"
}
}
The returned paymentUrl pops up the payment page, as shown below:
/7.3 数字币限定金额扫码支付/usdt.jpg)
Response data parameter description
| Parameter name | Type | Parameter meaning | Parameter description |
|---|---|---|---|
orderId | string | Order ID | |
localUserId | string | Merchant local user ID | |
localOrderId | string | Merchant local order number | |
orderType | enum | Order Type | PAYMENT:支付订单 | WITHDRAW:提款订单 |
orderBizType | enum | Order business type | orderBizType type description is as follows |
paymentUrl | string | Payment address | |
publicKey | string | Key | Public Access Key |
currency | string | Order currency | |
userCurrency | string | User payment currency | |
amount | string | Order amount | |
userReceivableAmount | string | Amount payable by the user | |
rate | string | Exchange rate | |
rateExpression | string | Order exchange rate expression |
orderBizType type description:
- PAYMENT_WALLET_SCAN MINPAY wallet scan code payment
- PAYMENT_TRANSFER digital currency binding address direct deposit
- PAYMENT_ANY_DIGITAL_SCAN Scan the QR code to pay any amount of digital currency
- WITHDRAW_WALLET withdraw money to MINPAY wallet
- WITHDRAW_ANY_DIGITAL_WALLET Withdraw digital currency to any wallet
- PAYMENT_FIXED_DIGITAL_SCAN digital currency limited amount scan code payment
- BATCH_PAY batch payment
Callback returns json data
By default, all callback parameters participate in signature verification. For details of callback parameters, please see callback ]
Callback data
{
"amount": 11,
"bizType": "PAYMENT_FIXED_DIGITAL_SCAN",
"blockchain": {
"network": "TRON",
"receiverAddress": "TA1jptT16DssYWVGdVyFWxonku6hWK7En3",
"senderAddress": "TPutFhYUQnrRxHSmKVwjp55vgk9QY6r5nS",
"txId": "24d0d0e5d417bd2195c45d64724760ae47fc3b359ee31c5fedf25b40f3584b36"
},
"currency": "CNY",
"key": "h3cS7dBltRU4W1wD",
"localOrderId": "2820",
"merchantActualAmount": 8.86,
"merchantCurrency": "CNY",
"merchantId": 303122065665,
"merchantPaidAmount": 10.98,
"merchantUserId": "97",
"notifyTime": 1731572168370,
"orderCreateTime": 1731572133082,
"orderId": "273124814912907",
"sign": "699806308a9e055114c378671b0d2a15",
"status": "SUCCESS",
"type": "PAYMENT",
"userAmount": 1.55,
"userCurrency": "USDT",
"userReceivableAmount": 1.55
}
When you receive the callback notification, please directly return the string success after the processing is completed, indicating that the message has been successfully received and processed. After the system receives the success response, it will no longer send the callback repeatedly. If the expected response is not received (success is not returned or an exception is returned), the system will resend the callback notification according to the stepped retry mechanism, retrying up to 14 times. The current retry intervals are: 15s, 15s, 30s,180s, 600s, 1200s, 1800s, 1800s, 1800s,3600s,10800s,10800s,21600s, 21600s