开发指引
更新时间:2024.11.251、整体业务开发流程概览
若存在退款需求,商户需先调用查询订单状态接口以确认订单支付状态为已支付成功,随后调用申请退款API创建退款单后,可通过查询单笔退款信息或退款回调通知以确认最终的退款结果。若退款状态为退款异常,则需调用发起异常退款API进行退款操作。
2、详细步骤说明
2.1、查询订单状态
商户在退款之前调用微信支付订单号查询订单API或商户订单号查询订单API,确认订单支付状态,支付成功才可进行退款。
2.2、申请退款
商户调用申请退款API创建退款单,退款单受理成功后,微信会从交易商户的基本账户内扣除需退款的资金,退款资金会进入到微信侧退款的中间账户,然后再退回给用户。
|
申请退款接口需要注意的参数:
普通支付订单退款或合单支付订单退款时,需选择填写 transaction_id
或out_trade_no
中的一个,普通支付订单退款按照API接口参数填写;合单支付订单退款需要特别注意以下参数字段:
transaction_id
:填写原合单支付订单的 sub_orders.transaction_id
【子单微信支付订单号】
out_trade_no
:填写原合单支付订单的 sub_orders.out_trade_no
【子单商户订单号】
2.3、确认退款结果
退款处理完成后,微信支付会将退款结果通知发送到申请退款时传递的【notify_url】地址,通知内容需要使用APIV3密钥进行加密解密,所以需要提前设置APIV3密钥,设置指引:APIv3密钥设置方法。
若未收到退款回调通知或商户希望主动获取退款状态时,可调用 查询单笔退款(按商户退款单号)查询退款单信息,推荐申请退款后间隔1分钟调用该接口轮询一次退款状态,若超过5分钟仍是退款处理中状态,建议开始逐步衰减轮询频率(比如之后间隔5分钟、10分钟、20分钟、30分钟……轮询一次)。
退款状态:
SUCCESS—退款成功
CLOSED—退款关闭:此状态表明您的退款请求已经关闭。原因是退款单已经处于“退款处理中”的状态超过7天,并且在这段时间内,出资账户的余额不足以完成退款操作。可充值后生成新的商户退款单号,重新调用退款申请API。
PROCESSING—退款处理中:可稍后再次调用查询单笔退款(按商户退款单号),确认最终退款结果。
ABNORMAL—退款异常:退款到银行发现用户的卡作废或者冻结了,导致原路退款银行卡失败,可前往商户平台-交易中心,手动处理此笔退款。或调用发起异常退款API接口处理异常退款。
|
2.4、发起异常退款
提交退款申请后,若查询退款确认状态为退款异常,退款资金会停留在退款的中间账户内,商户可调用此接口发起异常退款,使退款资金从退款中间账户退到用户的银行卡,或退回交易商户基本账户的结算银行账户。
|
发起异常退款关键参数:
type
:可选择退款到用户银行卡,或退回到交易商户银行账户内。
若选择退款给用户银行卡,需在对收款银行卡号bank_account
和收款用户姓名real_name
进行敏感信息加密。
3、退款单状态流转图
退款单状态流转说明
1、商户调用退款申请接口受理成功后,可以调用查询单笔退款(按商户退款单号)接口来确认退款单状态。
2、当退款单状态为退款处理中(status:PROCESSING)时,退款受理超过7天且账户资金不足时,退款单状态将流转为退款关闭(status:CLOSED)。
3、当退款单状态为退款处理中(status:PROCESSING)时,若因用户账户异常(例如银行卡作废或冻结)导致资金无法按原路退回,微信支付会优先尝试将退款金额转入用户的微信零钱。仅当用户的微信零钱账户也已注销时,退款单状态才会流转为退款异常(status:ABNORMAL)。
4、当退款成功时,退款单状态将从退款处理中(status:PROCESSING)流转为退款成功(status:SUCCESS)。
5、当退款单状态为退款异常(status:ABNORMAL)时,此时商户可以到【商户平台 —>交易中心】手动处理退款或调用发起异常退款接口处理异常退款,当退款成功后,退款单状态将流转为退款成功(status:SUCCESS)。
6、以下三个状态为终态
status:SUCCESS
status:CLOSED
status:ABNORMAL