wx.requestCommonPayment 报’out_trade_no重复,请更换新单号?
wx.requestCommonPayment
报错 “out_trade_no重复,请更换新单号” 的原因是你在调用支付接口时,传入的 out_trade_no
(订单号)已经存在于微信支付系统中。微信支付要求每个订单号在一定时间内必须是唯一的,不能重复使用。
解决这个问题的方法有以下几种:
生成新的订单号:确保每次发起支付请求时,生成一个新的、唯一的订单号。可以通过时间戳、随机数等方式生成。
检查订单状态:在发起新的支付请求之前,可以先检查该订单号的状态,确认是否已经支付成功或已关闭。如果订单已经处理,可以考虑不再发起新的支付请求。
处理重复请求:在你的业务逻辑中,避免因网络问题或用户重复点击导致多次请求同一订单号。
使用 UUID:可以考虑使用 UUID 作为订单号,这样可以保证其唯一性。
更新订单号记录:如果你的系统中有订单号的记录,确保在每次成功支付后更新该记录,以避免后续使用同样的订单号。
通过以上方法,可以有效避免出现 “out_trade_no重复” 的错误。