POST your notifyUrl
Content-Type: application/json
{
"encryptedData": "SFOs0qSAGLs6kHLfWi3nmhczH4T+zwv...",
"encryptedKey": "Vfn2M+u4uG7nWklk2UuZLEC9RL9YqU7s...",
"signType": "RSA256"
}// 1. RSA decrypt encryptedKey with OnlinePay Public Key → get AES key
// 2. AES decrypt encryptedData with AES key → get plaintext JSON below| Parameter | Type | Required | Description |
|---|---|---|---|
| tradeNo | string | Yes | The flow number generated after each order payment (unique marker) |
| merOrderNo | string | Yes | Corresponds to the [OrderNo] parameter of the order submission parameter |
| code | string | No | Payment result (0: payment successful 1: payment failed 2: pending 3: waiting for suppling information) |
| message | string | Yes | Description of Payment Result |
| cardNo | string | No | Masked card number |
| receiveAmount | string | No | Receive amount for payment (used for CryptoPay and SEPA) |
| txHash | string | No | Transaction hash (used for CryptoPay) |
| counterpartyAccountName | string | No | The account name of transferor (used for SEPA) |
| counterpartyAccountNum | string | No | The account number of transferor (used for SEPA) |
| signType | string | Yes | MD5 or RSA256 |
| sign | string | Yes | Signature value |
{
"tradeNo": "T202309011234567890",
"merOrderNo": "MER20230901001",
"code": "0",
"message": "success",
"cardNo": "411111****1111",
"signType": "RSA256",
"sign": "a3f8e2d1..."
}sign, signType, skip null/empty)key1=value1&key2=value2MD5(signString + md5Key).toUpperCase() == signRSA-SHA256-Verify(signString, sign, OnlinePay_PublicKey)Fields: tradeNo, merOrderNo, code, message, cardNo
Sign string: cardNo=411111****1111&code=0&merOrderNo=MER20230901001&message=success&tradeNo=T202309011234567890HTTP/1.1 200 OK
Content-Type: text/plain
success