出现退款的问题说订单金额或退款金额与之前请求不一致,请核实后再试,
不知道哪里出错了环节,
我弄了2分钱的票 一张门票
退款代码
//订单金额
int orderPrice = jyUserOrderInfoById.getOrderPrice().intValue();
refundRequest.setTotalFee(orderPrice);
//退款金额
refundRequest.setRefundFee(byId.getRefundAmount().intValue());
下单代码
//integer类型的分
orderRequest.setTotalFee(order.getOrderPrice().intValue());
微信下单请求参数
【请求地址】:************/pay/unifiedorder
2021/5/6 下午1:43:23 【请求数据】:
【请求数据】:<xml>
2021/5/6 下午3:20:55 <appid>***d649a4bd5</appid>
2021/5/6 下午3:20:55 <mch_id>****34000</mch_id>
2021/5/6 下午3:20:55 <nonce_str>***1620285655008</nonce_str>
2021/5/6 下午3:20:55 <sign>***C16DA8FEBE826D49397</sign>
2021/5/6 下午3:20:55 <body>**门票下单</body>
2021/5/6 下午3:20:55 <out_trade_no>YWnS4pqP3783mweICBoYg8MF9ZUOR0ew</out_trade_no>
2021/5/6 下午3:20:55 <total_fee>2</total_fee>
2021/5/6 下午3:20:55 <spbill_create_ip>**210.202</spbill_create_ip>
2021/5/6 下午3:20:55 <notify_url>***/user/order/notifyOrder</notify_url>
2021/5/6 下午3:20:55 <trade_type>JSAPI</trade_type>
2021/5/6 下午3:20:55 <openid>*****AGRMvuMMUZI</openid>
微信退款请求参数
【请求地址】:https://api.mch.weixin.qq.com/secapi/pay/refund
2021/5/6 下午3:23:30 【请求数据】:<xml>
2021/5/6 下午3:23:30 <appid>****82dd649a4bd5</appid>
2021/5/6 下午3:23:30 <mch_id>***34000</mch_id>
2021/5/6 下午3:23:30 <nonce_str>****LX4KfCkyFMgtFrbZs6W</nonce_str>
2021/5/6 下午3:23:30 <sign>****BCD1B2F3F55CA4A0</sign>
2021/5/6 下午3:23:30 <out_trade_no>YWnS4pqP3783mweICBoYg8MF9ZUOR0ew</out_trade_no>
2021/5/6 下午3:23:30 <out_refund_no>123554</out_refund_no>
2021/5/6 下午3:23:30 <total_fee>2</total_fee>
2021/5/6 下午3:23:30 <refund_fee>2</refund_fee>
2021/5/6 下午3:23:30 <op_user_id>1603834000</op_user_id>
2021/5/6 下午3:23:30 <notify_url>*****/user/refund/notifyRefund</notify_url>
报错是 订单金额或退款金额与之前请求替换,请核实后再试
但是我看了没有错误啊
在stage环境是可以退款的,到了 oline环境就报这样的问题
1、out_refund_no是否重复使用了?
2、total_fee是否与订单金额一致?
有一个很容易被忽略的坑,元转为分的过程中,用php直接*100,有可能结果是差一分钱的,会导致退不了,这个问题折腾了半天才找到原因