Onerway
支付场景

退款

申请退款、处理退款结果与审核拒绝通知,并在需要时查询结果或取消尚未获批的退款申请。

支付成功后,由商户服务端通过 API 申请退款。无论原支付通过收银台、Web SDK 还是 API 直连创建,均使用申请或取消退款。

申请前确认

是否支持退款、部分退款及多次退款,以及申请退款的时限,均取决于支付方式。大多数支付方式支持部分退款及多次退款;累计退款金额不得超过原支付金额,退款金额使用原支付交易的币种。

保存原支付的 Onerway transactionId,并确认原交易已支付成功。调用接口前,完成接入准备与请求签名。

申请退款并处理结果

提交退款申请

调用申请或取消退款,设置 refundType=0,将原支付交易号放入 originTransactionId,通过 refundAmount 指定本次退款金额。完整字段要求与请求示例见接口参考。

可通过 merchantTxnId 提供本次退款的商户交易号,用于跟踪和对账;不传时由 Onerway 自动生成。重复提交会被拒绝。

保存退款交易号

respCode=20000 仅表示退款申请已受理,不代表退款成功。保存响应 data 返回的新退款交易号,并将其关联到原支付和商户退款记录,供接收通知、查询或取消时使用。

处理退款通知

退款通知发送到原支付请求中的 notifyUrl。服务端需要处理两类通知:

  • 退款结果通知:txnType=REFUND,使用退款的 transactionId 与 status 更新对应退款记录。
  • 退款审核拒绝通知:notifyType=REFUND_AUDIT,仅在 Onerway 审核拒绝退款申请时发送。

按 Webhook 通知完成验签、应答与幂等处理。收到成功(S)或失败(F)通知后即可更新退款记录,无需再查询确认。

按需查询退款

等待 Webhook 通知退款结果即可,无需持续轮询。需要核对退款进度或对账时,可调用查询退款记录:查询单笔退款时使用退款交易号 transactionId;查询原支付关联的退款时使用原支付交易号 originTransactionId。

查询结果与通知不一致时,参见查询结果与通知不一致时如何处理。

大部分退款即时到账;非即时到账的退款最长需要 25 天。

取消退款申请

取消须在 Onerway 审核通过前发起。审核通过后,Onerway 将退款请求提交给支付渠道或发卡机构;退款仍在处理中不代表仍可取消。

调用申请或取消退款,设置 refundType=1,并将要取消的退款交易号放入 originTransactionId。其他必填字段与完整示例见接口参考。

取消成功不发送通知,请处理同步响应:成功响应中的 data 等于本次请求的 originTransactionId。需要核对记录时,可按该退款交易号查询。

申请退款时,originTransactionId 指原支付交易号;取消退款申请时,同一字段指退款交易号。两次操作使用的交易号不同。