用户创建订单,打开了支付界面(调用了生成预支付信息接口),关闭支付,等后台管理人员修改价格后再次支付(重新生成预支付信息,业务订单号全局唯一没变),导致微信返回201 商户订单号重复。
待支付的订单号(即商户订单号,out_trade_no),再次支付时,务必保持商品描述字段和上次请求的内容完全一致。另外,如果价格改变,也不能重复提交,只能重新生成订单号,重新向微信发起支付请求。
订单表添加一个UNIQUE索引字段trade_no,用来关联微信支付out_trade_no这边的系列操作。添加后注意修改通知相关接口和业务。
思路:新增订单时候,设置trade_no 与 订单号一致,当用户关闭支付的时候调用接口修改订单的trade_no
疑难杂症:会导致对账麻烦
http://blog.xqlee.com/article/1711941020494598145.html