开发指引

更新时间:2024.11.26

1、整体业务开发流程概览

若存在退款需求,服务商需先调用查询订单状态接口以确认订单支付状态为已支付成功,随后调用申请退款API创建退款单后,可通过查询单笔退款信息退款回调通知以确认最终的退款结果。若退款状态为退款异常,则需调用发起异常退款API进行退款操作。

2、详细步骤说明

2.1、查询订单状态

服务商在退款之前调用微信支付订单号查询订单API商户订单号查询订单API,确认订单支付状态,支付成功才可进行退款。

2.2、申请退款

服务商调用申请退款API创建退款单,退款单受理成功后,微信会从交易收款商户(子商户,也叫特约商户)的基本账户内扣除需退款的资金,退款资金会进入到微信侧退款的中间账户,然后再退回给用户。

注意:

  • 对于合单支付的订单,无法通过合单支付总单号combine_out_trade_no退款,只能根据单个子单进行退款。

  • 若支付订单为分账订单,存在分账给其他商户号成功情况,退款不会自动回退分账金额,退款出资为子商户基本账户可用余额。

申请退款接口需要注意的参数:

普通支付订单退款或合单支付订单退款时,需选择填写 transaction_idout_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接口处理异常退款。

注意:

退款有一定延时,零钱支付的订单退款一般5分钟内到账,银行卡支付的订单退款一般1-3个工作日到账,具体以查询退款接口返回状态为准。

2.4、发起异常退款

提交退款申请后,若查询退款确认状态为退款异常,退款资金会停留在退款的中间账户内,服务商可调用发起异常退款API接口发起异常退款,使退款资金从退款中间账户退到用户的银行卡,或退回交易收款商户(子商户)基本账户的结算银行账户。

注意:

退款至用户时,仅支持以下银行的借记卡:招行、交通银行、农行、建行、工商、中行、平安、浦发、中信、光大、民生、兴业、广发、邮储、宁波银行。

发起异常退款关键参数:

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