相关接口
支付宝
- 申请退款:https://docs.open.alipay.com/api_1/alipay.trade.refund
- 查询退款:https://docs.open.alipay.com/api_1/alipay.trade.fastpay.refund.query
- 异步通知:https://docs.open.alipay.com/203/105286
微信:
- 申请退款:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_4
- 查询退款:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_5
- 退款异步通知:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_16&index=10
交易状态
0未支付,1已关闭,2支付失败,3支付成功,4转入退款
微信:SUCCESS—支付成功REFUND—转入退款NOTPAY—未支付CLOSED—已关闭REVOKED—已撤销(付款码支付)USERPAYING--用户支付中(付款码支付)PAYERROR--支付失败(其他原因,如银行返回失败)
支付宝:交易状态:WAIT_BUYER_PAY(交易创建,等待买家付款)、TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、TRADE_SUCCESS(交易支付成功)、TRADE_FINISHED(交易结束,不可退款)
退款状态
0待确认,1已确认,2未提交,3已提交,4退款成功,5退款异常,6退款关闭
微信:
SUCCESS—退款成功 REFUNDCLOSE—退款关闭。 PROCESSING—退款处理中 CHANGE—退款异常,退款到银行发现用户的卡作废或者冻结了,导致原路退款银行卡失败,可前往商户平台(pay.weixin.qq.com)-交易中心,手动处理此笔退款。
支付宝: 交易状态为TRADE_CLOSED,receipt_amount为0为退款
退款条件
微信:
- 交易时间超过一年的订单无法提交退款
- 微信支付退款支持单笔交易分多次退款,多次退款需要提交原支付订单的商户订单号和设置不同的退款单号。申请退款总金额不能超过订单金额。一笔退款失败后重新提交,请不要更换退款单号,请使用原商户退款单号
- 请求频率限制:150qps,即每秒钟正常的申请退款请求次数不超过150次,错误或无效请求频率限制:6qps,即每秒钟异常或错误的退款申请请求不超过6次
- 每个支付订单的部分退款次数不能超过50次
支付宝:
- 交易超过约定时间(签约时设置的可退款时间)的订单无法进行退款
- 支付宝退款支持单笔交易分多次退款,多次退款需要提交原支付订单的商户订单号和设置不同的退款单号。一笔退款失败后重新提交,要采用原来的退款单号。
- 总退款金额不能超过用户实际支付金额
退款状态查询
微信
result.get("refund_count");//当前返回退款笔数
result.get("transaction_id");//微信订单号
result.get("out_trade_no");//商户系统内部订单号
result.get("total_fee");//订单总金额,单位为分
result.get("refund_id_0");//微信退款单号
result.get("out_refund_no_0");//商户退款单号
//$n为下标,从0开始编号。
result.get("refund_channel_0");//退款渠道,ORIGINAL—原路退款 BALANCE—退回到余额 OTHER_BALANCE—原账户异常退到其他余额账户 OTHER_BANKCARD—原银行卡异常退到其他银行卡
result.get("refund_status_0");//退款状态:SUCCESS—退款成功REFUNDCLOSE—退款关闭。PROCESSING—退款处理中CHANGE—退款异常,退款到银行发现用户的卡作废或者冻结了,导致原路退款银行卡失败,可前往商户平台(pay.weixin.qq.com)-交易中心,手动处理此笔退款。
result.get("refund_success_time_0");//退款成功时间,2016-07-25 15:26:26
result.get("refund_recv_accout_0");//退款入账账户(string 64)
result.get("refund_account_0");//退款资金来源,REFUND_SOURCE_RECHARGE_FUNDS---可用余额退款/基本账户REFUND_SOURCE_UNSETTLED_FUNDS---未结算资金退款
result.get("refund_fee_0");//退款总金额,单位为分,可以做部分退款
支付宝:
查询支付宝退款记录
* 1、该接口的返回码10000,仅代表本次查询操作成功,不代表退款成功。
* 2、如果该接口返回了查询数据,则代表退款成功,如果没有查询到则代表未退款成功,可以调用退款接口进行重试。重试时请务必保证退款请求号一致。
Comments