退款(通用)

概述

在支付完成后,若买家向您提交退款,您可以通过 退款 接口或者 商家后台 发起退款。

退款的关键业务信息如下:

  • 退款期限: 交易完成后的 12 月内。
  • 是否退手续费: 依照双方合约。
  • 是否允许部分退款: 允许。
  • 是否允许多次退款: 允许。
  • 退款的执行汇率: 若跨币种结算,则依照发起退款请求后的隔日支付宝汇率进行结算。但若以结算币种标价则不涉及汇率换算。

通过退款接口退款

步骤一:发起退款

您可以通过 退款 接口发起退款。支付宝在收到退款请求后会做以下校验:

校验项

说明

对应错误码

退款的币种

退款请求中的币种需要与发起交易时的一致。

CURRENCY_NOT_SUPPORT

退款金额

退款申请的金额需要大于最小退款金额(通常与最小支付金额一致),且小于交易剩余可退金额。

REFUND_AMOUNT_EXCEED

交易状态

仅当paymentStatusSUCCESS时允许退款。

ORDER_STATUS_INVALID

退款期限

在交易完成后的 12 个月内允许发起退款,超过则不允许发起退款。

REFUND_WINDOW_EXCEED

商家账户的待结算户余额

支付宝会从商家账户的剩余未结算资金中扣除款项以执行退款,若待结算资金不足则会导致退款失败。因此若您签订的合约为不退回交易手续费,在生产环境做测试时需要注意,首笔支付的全额退款会执行失败,建议生产环境测试时在账户中保留一定的余额。

MERCHANT_BALANCE_NOT_ENOUGH

支付宝退款接口的执行逻辑为同步退款,退款接口的返回即为该次退款的执行结果。若因网络原因未收到支付宝响应,您可以通过原请求重试的方式再次尝试获取退款执行结果。同一个refundRequestId只会对应一次退款动作,若refundRequestId不变,多次重复请求不会触发多次退款。

A+ 钱包退款

对于 A+ 钱包,支付宝退款接口的执行逻辑为同步退款,退款接口的返回即为该次退款的执行结果。若因网络原因未收到响应,您可以通过原请求重试的方式再次尝试获取退款执行结果。同一个 refundRequestId 只会对应一次退款动作,若 refundRequestId 不变,多次重复请求不会触发多次退款。

其它支付方式退款

对于其它支付方式,支付宝退款接口将返回 REFUND_IN_PROCESS 错误码,同时该笔退款的状态会变为 PROCESSING,需要等待支付渠道方受理,之后该笔退款会变成 SUCCESS 或者 FAIL 状态。当状态从 PROCESSING 变为 SUCCESS,或者从 PROCESSING 变为FAIL 时,支付宝会通过 通知退款结果 接口向您发送异步通知。

步骤二:查询退款结果

在买家发起退款后,您可以通过 查询退款结果 接口查询该退款的执行状态。返回结果中的 refundStatus 字段代表该笔交易的执行状态,不同状态码及其解释如下表所示:

refundStatus

解释

SUCCESS

退款处理成功。

PROCESSING

退款处理中 (MERCHANT_BALANCE_NOT_ENOUGH 的情况也会卡在该状态)

FAIL

退款执行失败。

步骤三:查询订单的退款记录

您也可以通过 查询退款结果 接口感知该笔交易的退款记录。若一笔交易发生过退款,则返回内容中的 transactions 字段即表示该笔交易的退款情况。

通过商家后台退款

步骤一:登陆商家后台

后台地址:https://intl-sea.alipay.com/ilogin/account_login.htm

步骤二:执行退款

  1. 在左侧导航栏中单击 Transaction Settlement 进入 Transaction Statement 页面。
  2. Transaction Statement 页面中找到需要执行退款的交易,单击操作列的 Details 进入 Transaction Statement Detail 页面。
  3. Transaction Statement Detail 页面,单击右上角的 Refund 按钮,验证账户支付密码后完成退款。

【注意】首次通过后台执行退款时,点击 Change password 以设定支付密码。

image

image

image