申请退款(单品优惠)
当交易发生之后一段时间内,由于买家或者卖家的原因需要退款时,卖家可以通过退款接口将支付款退还给买家,微信支付将在收到退款请求并且验证成功之后,按照退款规则将支付款按原路退到买家账号上。 官方文档
js
wxpay.v2.secapi.pay.refundv2.post({
detail,
appid,
sub_appid,
mch_id,
sub_mch_id,
nonce_str,
sign_type,
transaction_id,
out_trade_no,
out_refund_no,
total_fee,
refund_fee,
refund_fee_type,
refund_desc,
refund_account,
notify_url,
}, { security })
.then(
({
data: {
return_code,
return_msg,
result_code,
err_code,
err_code_des,
appid,
mch_id,
sub_appid,
sub_mch_id,
nonce_str,
sign,
transaction_id,
out_trade_no,
out_refund_no,
refund_id,
refund_fee,
settlement_refund_fee,
total_fee,
settlement_total_fee,
fee_type,
cash_fee,
cash_fee_type,
cash_refund_fee,
coupon_type_$n,
coupon_refund_fee,
coupon_refund_fee_$n,
coupon_refund_count,
coupon_refund_id_$n,
promotion_detail,
},
}) => return_code === 'SUCCESS' && result_code === 'SUCCESS'
)
注意:
- wxpay 构造实例化时,需要显式初始化 secret、 merchant.key 以及 merchant.cert 字段,此HTTPS请求为私有TLS加密协议,需要双向证书;
- 请求第二型参 security 需要显式传 true,即告诉SDK此请求需要使用商户私钥及证书进行通信;
- 交易时间超过一年的订单无法提交退款;
- 微信支付退款支持单笔交易分多次退款,多次退款需要提交原支付订单的商户订单号和设置不同的退款单号。申请退款总金额不能超过订单金额。 一笔退款失败后重新提交,请不要更换退款单号,请使用原商户退款单号。
- 请求频率限制:150qps,即每秒钟正常的申请退款请求次数不超过150次;
- 每个支付订单的部分退款次数不能超过50次;
- 本接口支持单品优惠订单全额退款和单品优惠订单部分退款;
- $n 为下标,从 0 开始编号,真实数据并不会返回 $n 字样;