退款
您可以通过本文了解 Antom 的退款规则及如何对成功的交易发起退款。
退款规则
退款的相关规则如下:
- 手续费:退款是否退回支付手续费,以及退款是否额外收费,依照双方合约执行。
- 退款结算汇率:当结算币种和支付币种不一致时,退款结算汇率按照发起退款请求当日 Antom 汇率进行结算。
- 退款限制:不同的支付方式存在不同的限制差异,具体包括以下几种情况:
- 完全不支持退款
- 不支持部分退款
- 从支付成功的时间开始,在超出一定时间后不允许退款
以上具体信息详见 Refund capabilities of payment methods.
- 退款退票:指在极端情况下,由于用户在银行侧的账户状态不正常等原因,导致发生调用 退款 接口后返回退款成功,但是用户未能成功收到资金的情况。此时,Antom 会结算相应的资金,并通过结算账单的方式发送通知,需要您自行决定如何处理这一笔资金。
退款方法
在支付成功后,您可以通过以下两种方法发起退款:
- 调用接口:您可以通过调用 退款 接口对成功支付的交易发起退款。
- 使用Antom portal 发起退款:您可以通过 Antom Merchant Portal 进行退款,欲知如何发起退款并查看退款结果,可参见 通过门户交易中心退款。
退款流程
图1:退款流程图
【说明】
- 调用 退款 接口后,可能返回以下3种情况:
- 同步退款请求返回退款失败:如果请求参数错误,请根据返回的错误码信息尝试调整退款的参数并换号重试,其他情况可联系 Antom 技术支持寻求帮助。各错误码建议处理方式详见 Error codes.
- 同步退款请求返回退款受理成功:此时结果代码返回
REFUND_IN_PROCESS
,请使用 退款查询 接口获取最终的退款结果,或者等待退款结果通知。- 同步退款请求返回退款未知异常:此时一般为网络原因,可尝试不换号重试。
- 退款通知:如果退款成功则一定会发送退款通知。在退款失败的情况下,如果是退款请求非法导致受理异常,则不会有退款通知。
集成步骤
根据以下步骤开始集成:
- 发起退款请求
- 处理退款响应
Step 1:发起退款请求
使用 退款 接口发起退款时若不满足以下退款要求,将收到 Antom 返回的对应错误码:
错误码 | 说明 |
ORDER_STATUS_INVALID | 支付未成功。 |
REFUND_WINDOW_EXCEED | 退款日期超出了退款有效期。 |
PAYMENT_METHOD_NOT_SUPPORTED | 支付所使用的支付方式不支持退款。 |
PARTIAL_REFUND_NOT_SUPPORTED | 支付所使用的支付方式不支持部分退款。 |
MERCHANT_BALANCE_NOT_ENOUGH | 账户余额不足。 |
表1: 错误码
以下是退款请求的关键参数:
字段名 | 是否为必填? | 说明 |
refundRequestId | 是 | 在商家侧唯一的退款 ID。 |
paymentId | 是 | 该笔退款所对应的 Antom 分配的原始交易的 ID。 |
refundAmount | 是 | 退款金额。需要大于等于最小退款金额(通常为最小支付金额),且小于等于交易剩余可退金额。 退款金额的币种须和 支付 接口中的支付金额的币种(paymentAmount.currency)保持一致。 |
refundNotifyUrl | 否 | Antom 向您发送退款异步通知地址。 |
表2: 退款请求的关键参数
Step 2:处理退款响应
在您调用 退款 接口后,Antom 会返回该次退款的受理结果。响应中的 resultStatus 字段代表该笔交易的退款状态,resultStatus 的值解释如下:
S
:表示退款成功。F
:如果你已排除 Step 1 提到的错误码,返回F
一般是请求中存在非法参数。请参考 Error codes 做相应处理,或联系 Antom 技术支持排查问题。U
:可能存在以下两种情况:
REFUND_IN_PROCESS
:表示退款正在受理中,你可选择主动调用 退款查询 接口获取退款结果,或者等待退款结果通知。UNKNOWN_EXCEPTION
/REQUEST_TRAFFIC_EXCEED_LIMIT
:这种情况一般是 Antom 系统或者网络原因导致,你可以调用 退款 接口进行重试。
ORDER_IS_CLOSED
:通常在 退款查询 响应、重试 退款 调用、退款结果通知 请求中会返回此错误码信息。这种情况一般是某种原因导致这笔退款无法在 Antom 继续处理,此时可以尝试换号重试。