微信支付报201商户订单号重复问题
问题描述:
用户在PC端使用扫码支付(微信NATIVE支付方式)生成一个微信支付预订单后,为对该订单立即完成支付;用户打开手机APP后看到该订单状态为未支付,点击立即支付,此时后台调用的是微信的APP支付方式。在这样的场景下,微信服务端会返回一个"201商户订单号重复"的错误信息。
解决方法:
微信统一下单支付接口会对各种支付场景作区分。因此在调用统一调单接口的时候,可以在商户订单号(out_trade_type)前添加(交易类型)trade_type参数,其格式如下:
商户订单号:out_trade_no = trade_type + out_trade_no
这样两端在处理非自己端的待支付订单的时候,就不会产生 201 商户订单号重复的问题了。
注意:由于微信在回调的时候传递回来的的out_trade_no同样是trade_type + out_trade_no,即你统一下单时传递的订单号,回调时需要将拼接的trade_type除去。当然若你系统的订单编号是字符串,可以不必关心,但最后还是建议除去,保证数据库数据的统一性。
原文连接:https://blog.csdn.net/eaglejiawo1120/article/details/85097509