微信分批退款时出现"订单金额或退款金额与之前请求不一致,请核实后再试"
- 应用场景
- 微信退款官方文档
- 对比支付宝的退款
应用场景
多个商品打包下单时, 只进行一次微信支付, 则微信端只生成一个订单. 要使该订单支持一个或多个商品分批退款时, 就需要用到微信分批退款的功能
微信退款官方文档
https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_4&index=6 退款中和业务相关的关键的几个参数
商户订单号, 是支付时像微信传的订单号(一个订单分批退款时,这个订单号是不变的)
商户退款单号, 如果是分批退款, 每次退款该参数不同
订单金额, 只能是支付时订单的支付金额, 即便中间有部分退款, 这个金额是不变的(因为我第一次做分批退款时, 将订单金额改为退款后的金额, 就抛出"订单金额或退款金额与之前请求不一致,请核实后再试"的错误)
退款金额, 本次申请的退款金额, 多次退款总金额不能大于订单支付金额, 因为是必填, 所以如果是要将该订单剩余部分全部退款, 需要计算出剩余退款金额.
对比支付宝的退款
官方文档: https://opendocs.alipay.com/apis/api_1/alipay.trade.refund
支付宝关键的几个参数:
out_trade_no : 商户订单号(与微信相同, 都可以用该平台的支付交易号来代替)
refund_amount: 退款金额 (与微信相同)
out_request_no :退款单号 (这个是非必填, 和微信不同 )如何不填, 则该订单只做一次退款, 如果要分批退款, 则必填, 且每次退款单号不同
相比微信, 没有订单金额, 这个参数, 也就没有订单金额是否正确的校验( 所以, 在我刚开始实现微信支付宝都做分批退款的时候, 支付宝成功了, 而微信被那个异常卡住了)