Asynchronous Notification and Synchronous Return
- The server returns after receiving the payment notification from the payment provider.
- Asynchronous notifications need to provide an interface URL for us to configure in the background, or upload the parameter notify_url when pre-ordering; synchronous returns need to upload the parameter return_url when pre-ordering.
Note: OCT currently only have synchronous notifications and no asynchronous notifications, online UnionPay only notifies once, please actively call to query the order status. - The request parameters for the asynchronous notification merchant interface and the synchronous return merchant page, where the Content-Type of the asynchronous notification merchant interface is application/json, and the Content-Type of the synchronous return merchant page is x-www-form-urlencode, POST submission method returns to the merchant for receiving and processing.
- After receiving the asynchronous notification, you must return the response parameters to inform that the notification has been successfully received and processed. If it is a synchronous return, the merchant does not need to return.
Info
Need to provide notify_url / return_url when placing an order
| Name | Type | Description | Requirement |
|---|---|---|---|
| notify_type | String(30) | Notification type Fixed: trade_status_sync | |
| user_confirm_key | String | User Key, provided by eftPay | |
| trade_no | String(64) | Payment provider's order number | |
| transaction_id | String(64) | Payment provider's order number | |
| out_trade_no | String(28) | Merchant order number | |
| eft_trade_no | String(28) | eftPay order number | |
| eftpay_trade_no | String(28) | eftPay order number | |
| total_fee | String(8) | Amount | |
| currency | String(5) | Currency type | |
| trade_status | String(32) | Trade status, see Appendix 2 | |
| gmt_payment | String | Transaction time, format: yyyy-MM-dd HH:mm:ss | |
| wallet | String(20) | Wallet type | |
| tid | String(20) | Merchant terminal number | |
| trade_type | String(10) | Trade typeSALE | |
| card_scheme | String(8) | Card type, Mpgs/AE transaction configuration return. Such as: VISA/MASTERCARD | |
| card_number | String(8) | Card number, Mpgs/AE transaction configuration return | |
| time | String | Time, format: yyyyMMddHHmmss | |
| sign | String(64) | Signature |
| Name | Type | Description | Required |
|---|---|---|---|
| return_status | String(3) | Return status code, represents . Note: This parameter cannot be used to determine the success of the transaction status. Other status codes refer to Appendix 3 | |
| return_char | String(100) | Return description, which may vary and cannot be used as a condition for judgment | |
| time | String | Time, format: yyyyMMddHHmmssReturns when return_status >= 00 | |
| sign | String(64) | Signature Returns when return_status >= 00 |
The following parameters must be returned after receiving the transaction asynchronous notification
| Name | Type | Description | Required |
|---|---|---|---|
| return_code | String(10) | Return code success/false | |
| time | String | Time, format: yyyyMMddHHmmss | |
| sign | String(64) | Signature |
{
"notify_type": "trade_status_sync",
"user_confirm_key": "12345678",
"trade_no": "2019082422001386450540290447",
"out_trade_no": "20190824021916",
"eft_trade_no": "08520005269190824021901723",
"total_fee": "0.02",
"currency": "HKD",
"trade_status": "TRADE_SUCCESS",
"sign": "d37d17a7243b2ae49a865275531a9a7c42f80623e673d0ccf5a79ef62bf14913",
"time": "20190824022030",
"gmt_payment": "2019-09-24 02:20:29",
"wallet": "ALIPAYCN",
"trade_type": "SALE"
}
{
"time": "20230609110646",
"sign": "2c418bfb1085b0cabbf2f5c6de71db0694a5a78b7271b05ca6d5a8b70227ebb2",
"return_code": "success"
}
