开发指引
更新时间:2024.11.261、整体业务开发流程概览
若存在退款需求,服务商需先调用查询订单状态接口以确认订单支付状态为已支付成功,随后调用申请退款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、发起异常退款
提交退款申请后,若查询退款确认状态为退款异常,退款资金会停留在退款的中间账户内,服务商可调用发起异常退款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