退货
退货
如果您希望在支付成功或预授权完成后将资金退还给消费者,则需要调用 POST Refund
接口。
INFO
EVO Cloud 支持全额退款和多次部分退款,但是退款总金额不能超过原支付/预授权完成金额,最长退款期限为 365 天。
主要流程如下:
当您发起退款时,会用到您在调用
POST Payment
接口时上送的merchantTransInfo.merchantTransID
。您需要在POST Refund
请求的 URL 中添加此参数。以便 EVO Cloud 找到原始的支付交易,并发起退款。CAUTION
如果您需要对预授权完成发起退款,在
POST Refund
请求的 URL 中添加的应该是POST Capture
接口中上送的merchantTransInfo.merchantTransID
。
退货请求报文样例
js
curl 'https://hkg-online-uat.everonet.com/g2/v0/payment/acq/10130014/evo.offline.refund/T20240306135818963' \
-H 'Authorization: 52eea64676405d1b1ee60901b08c33beca76df99e1535d435094678728fc00ca' \
-H 'DateTime: 20240306140243+0800' \
-H 'SignType: SHA256' \
-H 'Content-Type: application/json' \
-H 'MsgID: M20240306140243804' \
-d '{
"merchantTransInfo": {
"merchantTransID": "T20240306140243804",
"merchantTransTime": "2024-03-06T14:02:43+08:00"
},
"paymentMethod": {
"type": "card",
"card": {
"posEntryMode":"manual",
"pinFlag":false,
"termReadability":"5",
"cardInfo": {
"cardNumber": "4761739999000213"
}
}
},
"transAmount": {
"currency": "HKD",
"value": "1.00"
}
}'
- 检查 EVO Cloud 应答中的
refund.status
字段内容。如果字段的值为Success
则表示退款成功,否则就需要查看result.code
以及result.message
来查看交易失败原因。 - 如果您没有收到来自 EVO Cloud 的应答报文,则需要您调用
GET Refund
来查询交易结果。当收到查询应答时,您同样也需要通过refund.status
字段内容来判断交易结果,判断方式与第 2 步一致。如果交易失败,您需要通过refund.failureCode
以及refund.failureReason
来查看交易失败原因。 - 如果您在
POST Refund
请求中上送了webhook
,您也可以通过异步通知来获取交易结果。同样也需要通过refund.status
字段内容来判断交易结果,判断方式与第 2 步一致。