POST your notifyUrl
Content-Type: application/json
{
"encryptedData": "U2FsdGVkX1+def456...=",
"encryptedKey": "xHJK9sVtBqz+mNprY1...=",
"signType": "MD5"
}// 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 |
|---|---|---|---|
| state | String | Yes | Refund status: 0-Success, 1-Failed |
| tradeNo | String | Yes | Platform transaction number |
| merOrderNo | String | Yes | Merchant order number |
| refundNo | String | Yes | Refund order number |
| message | String | No | Refund result description |
| refundAmount | String | Yes | Refund amount |
| refundCurrency | String | Yes | Refund currency |
| signType | String | Yes | MD5 or RSA256 |
| sign | String | Yes | Signature value |
{
"state": "0",
"tradeNo": "T202309011234567890",
"merOrderNo": "MER20230901001",
"refundNo": "R202309011234567890",
"message": "Refund successful",
"refundAmount": "100.00",
"refundCurrency": "USD",
"signType": "MD5",
"sign": "abc123def456..."
}sign, signType, skip null/empty)key1=value1&key2=value2MD5(signString + md5Key).toUpperCase() == signRSA-SHA256-Verify(signString, sign, OnlinePay_PublicKey)Fields: state, tradeNo, merOrderNo, refundNo, message, refundAmount, refundCurrency
Sign string: merOrderNo=MER20230901001&message=Refund successful&refundAmount=100.00&refundCurrency=USD&refundNo=R202309011234567890&state=0&tradeNo=T202309011234567890HTTP/1.1 200 OK
Content-Type: text/plain
success