在开发网页微信支付的时候,微信返回 OUT_TRADE_NO_USED:商户订单号重复 的错误,查找一番API后,发现不是商户订单号重复的问题

场景:使用微信支付,在微信支付界面,由于余额不足等原因,没有进行支付并关闭了支付页面,此时订单状态为“待支付”,从业务角度来说,应该允许用户继续支付。但是再次支付时,微信接口返回“201 商户订单号重复”的错误提示。

测试复现发现是订单信息有变化导致的(本系统涉及当日多单唯一一单有补贴)

解决办法:待支付的订单号(即商户订单号,out_trade_no),再次支付时,务必保持商品描述字段和上次请求的内容完全一致

    另外,如果价格改变,也不能重复提交,只能重新生成订单号,重新向微信发起支付请求