PAYATHON 2026

支付宝小程序支付退款是否收取手续费?

支付阿杰

明确结论

通过支付宝小程序支付能力发起退款时,通常不会另外收取“退款手续费”。

不过,需要分清两件事:

  • 退款操作是否收费:一般不会单独收费。
  • 原支付交易产生的服务费是否退还:这取决于商户签约的支付产品、费率协议和支付宝当期计费规则,无法仅根据退款接口判断。

实际费用应以商户与支付宝签订的协议、支付宝商家平台账单以及退款后的结算明细为准。

如何确认实际费用

可以按以下步骤核对:

  1. 登录支付宝商家平台,查看小程序支付产品的签约信息和费率说明。
  2. 找一笔已经支付成功的测试订单,记录交易金额和服务费。
  3. 使用原支付订单号发起退款。
  4. 退款成功后,查看对应的资金账单和服务费明细。
  5. 核实原交易服务费是全额退还、按退款比例退还,还是不予退还。

如果合同和后台账单都没有明确说明,可以通过支付宝开放平台提交工单咨询,并提供应用 app_id、商户账号和相关交易号。

退款调用示例

支付宝小程序支付订单通常可以通过 alipay.trade.refund 接口发起退款。以下是 Java SDK 的示意代码:

AlipayClient alipayClient = new DefaultAlipayClient(
    gatewayUrl,
    appId,
    merchantPrivateKey,
    "json",
    "UTF-8",
    alipayPublicKey,
    "RSA2"
);

AlipayTradeRefundRequest request = new AlipayTradeRefundRequest();

AlipayTradeRefundModel model = new AlipayTradeRefundModel();
model.setOutTradeNo("ORDER_202609130001");
model.setRefundAmount("10.00");
model.setRefundReason("用户申请退款");
model.setOutRequestNo("REFUND_202609130001");

request.setBizModel(model);

AlipayTradeRefundResponse response = alipayClient.execute(request);

if (response.isSuccess()) {
    System.out.println("退款受理成功");
    System.out.println("trade_no: " + response.getTradeNo());
    System.out.println("refund_fee: " + response.getRefundFee());
} else {
    System.out.println("退款失败");
    System.out.println("code: " + response.getCode());
    System.out.println("sub_code: " + response.getSubCode());
    System.out.println("sub_msg: " + response.getSubMsg());
}

示例中的网关地址、密钥和应用配置需要替换成商户自己的实际配置。接口返回的 refund_fee 是退款金额,并非退款手续费。

注意事项

  • 退款金额不能超过订单当前的可退金额。
  • 同一订单需要多次部分退款时,每次退款都应设置唯一的 out_request_no。
  • 接口调用成功不代表资金已经处理完成,还需结合退款查询结果和资金账单进行核对。
  • 原订单发生部分退款时,服务费的处理方式可能与全额退款不同。
  • 优惠券、红包、营销补贴等金额的退回路径,可能不同于商户实收金额的退回路径。
  • 沙箱环境只能验证接口流程,不能完全反映正式环境中的计费和结算结果。
  • 如果商户合同、产品公告或后台费率说明与上述一般规则不一致,以商户当前生效的签约规则为准。

备注:内容仅供参考。