取消交易

下单后您可以在限定的窗口期内使用 取消支付 接口主动关闭某笔交易,支持取消的窗口期以合约规定为准。

取消交易的关键业务信息如下:

  • 在支付成功之前发起取消的交易,买家将无法继续支付。
  • 买家支付成功后发起取消的交易,资金会原路退回买家账户。
  • 是否允许部分取消:不允许。取消会对整个订单进行取消。
  • 取消窗口期:不同支付方式的窗口期有差异。具体请查看以下表格:

支付方式

取消窗口期

泰国网上银行

下单至支付成功前可以取消交易。支付成功后无法取消交易。

其他支付方式

下单时间至东八区 T+1 日的 00:15 之前可以取消交易。

取消交易步骤

在以下情况下,您可以调用 取消支付 接口发起单笔交易的取消:

  • 您需要关闭某笔订单时,Antom 侧的交易状态仍为处理中
  • 其他需要取消交易的场景

步骤 1:发起取消请求

调用 取消支付 接口发起单笔交易的撤销,需要传入以下 2 种 ID 中的一个:

参数

是否必需

描述

paymentId

下单时由 Antom 端返回的唯一交易 ID。

paymentRequestId

下单时由商户分配的唯一请求 ID。

以下是调用 取消支付 接口的示例代码:

通过 paymentRequestId 发起取消请求:

copy
public static void payCancel() {
    AlipayPayCancelRequest alipayPayCancelRequest = new AlipayPayCancelRequest();

    // 替换为您的 paymentRequestId
    alipayPayCancelRequest.setPaymentRequestId("yourPaymentRequestId");

    AlipayPayCancelResponse alipayPayCancelResponse = null;
    try {
        alipayPayCancelResponse = CLIENT.execute(alipayPayCancelRequest);
    } catch (AlipayApiException e) {
        String errorMsg = e.getMessage();
        // 处理错误情况
    }
}

以下是请求报文的代码示例:

copy
{
  "paymentRequestId": "paymentRequestIdXXXX"
}

步骤 2:获取取消结果

您调用 取消支付 接口后,Antom 会返回取消响应:

copy
{
  "cancelTime": "2019-06-12T19:07:11+08:00",
  "paymentId": "2019061218401080010018882020035XXXX",
  "paymentRequestId": "paymentRequestIdXXXX",
  "result": {
    "resultCode": "SUCCESS",
    "resultMessage": "Success",
    "resultStatus": "S"
  }
}

下表展示了取消支付响应中 result.resultStatus 可能返回的值,请您根据指引进行处理:

result.resultStatus

信息

后续操作

S

取消成功。cancelTime 字段表示取消成功的时间。

无需进一步操作。

F

取消失败。

建议参阅结果码以进行 取消支付 接口的故障排除。

U

取消结果未知。

建议保持原请求不变重新调用接口以解决问题。如果问题未解决,请联系 Antom 技术支持。

注意

  • 如果您未收到响应报文,可能是网络超时所致。建议保持原请求不变重新调用接口以解决问题。如果问题未解决,请联系 Antom 技术支持。
  • 已发生过退款的交易(包括全额退款和部分退款)不支持取消, 取消已退款的交易将返回错误码 PROCESS_FAIL
  • 交易取消后,即使收到支付成功的异步通知,您系统中的交易状态仍应保持为 CANCELLED