跳转到内容

关单 ​

关单 ​

如果您不确定原授权交易是否完成,您可以通过调用 POST CancelOrRefund 接口将资金退还给消费者。

大圈 ​

小圈 ​

主要流程如下:

  1. 当您发起关单时,会用到您在调用 POST Payment 接口时上送的 merchantTransInfo.merchantTransID。 您需要在 POST CancelOrRefund 请求的 URL 中添加此参数。以便 EVO Payment 找到原始的预授权交易,并发起撤销。

  2. 检查 EVO Payment 应答中的 cancelOrRefund 字段的值

    1. 如果 cancelOrRefund 为 Cancel 则需要检查 cancel.status 字段内容。如果字段的值为 Success 则表示关单成功,否则就需要查看 result.code 以及 result.message 来查看交易失败原因。
    2. 如果 cancelOrRefund 为 Refund 则需要检查 refund.status 字段内容。如果字段的值为 Success 则表示关单成功,否则就需要查看 result.code 以及 result.message 来查看交易失败原因。
  3. 如果您没有收到来自 EVO Payment 的应答报文,则需要您调用 GET CancelOrRefund 来查询交易结果。当收到查询应答时,您同样也需要先判断 cancelOrRefund 字段内容,然后再根据对应的 xxx.status 来判断交易结果,判断方式与第 2 步一致。

  4. 如果您在 POST CancelOrRefund 请求中上送了 webhook 并且交易的 xxx.status 为 Success,您也可以通过异步通知来获取交易结果。同样也需要通过 xxx.status 字段内容来判断交易结果,判断方式与第 2 步一致。

    TIP

    CancelOrRefund 接口异步通知的 eventCode 为 Cancel 或 Refund,取决于原授权交易是否完成。