撤销
撤销
当您需要对一笔交易发起撤销时,您可以通过调用 POST Cancel
接口将其撤销。
Note
以下交易类型均支持发起撤销:
消费、预授权 以及 预授权完成
主要流程如下:
当您发起消费撤销或预授权撤销时,会用到您在调用
POST Payment
接口时上送的merchantTransInfo.merchantTransID
。 您需要在POST Cancel
请求的 URL 中添加此参数。以便 EVO Cloud 找到原始的预授权交易,并发起撤销。CAUTION
如果您需要对预授权完成发起撤销,在
POST Cancel
请求的 URL 中添加的应该是POST Capture
接口中上送的merchantTransInfo.merchantTransID
。
撤销请求报文样例
js
curl 'https://hkg-online-uat.everonet.com/g2/v0/payment/acq/10130014/evo.offline.cancel/T20240306135818963' \
-H 'Authorization: 6323ebe1e60fe42edd39d8d0425e8876fd6c9981536ced4cb9a3b4ef8a178f9b' \
-H 'DateTime: 20240306140712+0800' \
-H 'SignType: SHA256' \
-H 'Content-Type: application/json' \
-H 'MsgID: M20240306140712147' \
-d '{
"merchantTransInfo": {
"merchantTransID": "T20240306140712147",
"merchantTransTime": "2024-03-06T14:07:12+08:00"
},
"paymentMethod": {
"type": "card",
"card": {
"posEntryMode": "magnetic",
"pinFlag":false,
"termReadability":"6",
"icCardCondCode":"0",
"noSecretNoSignFlag":"0",
"cardInfo": {
"cardNumber": "4761340000000043",
"expiryDate": "4912",
"track2": "6250940500000006=49121219668000356771"
}
}
}
}'
- 检查 EVO Cloud 应答中的
cancel.status
字段内容。如果字段的值为Success
则表示退款成功,否则就需要查看result.code
以及result.message
来查看交易失败原因。 - 如果您没有收到来自 EVO Cloud 的应答报文,则需要您调用
GET Cancel
来查询交易结果。当收到查询应答时,您同样也需要通过cancel.status
字段内容来判断交易结果,判断方式与第 2 步一致。如果交易失败,您需要通过cancel.failureCode
以及cancel.failureReason
来查看交易失败原因。 - 如果您在
POST Cancel
请求中上送了webhook
,您也可以通过异步通知来获取交易结果。同样也需要通过cancel.status
字段内容来判断交易结果,判断方式与第 2 步一致。