PHP学院的中学生 2021-10-28 20:55:34 1994次浏览 1条回复 0 0 0

当一个订单生成支付接口,不支付直接返回,再次支付时,如果更改了价格或其中一个参数值,会出现订单号重复的错误。

针对于修改价格或参数这种情况,就不能直接用不会改变的订单号去请求了,有一个比较简单的方式,就是每次支付的时候在订单号后面加上'_323232' ,下划线和随机值,微信支付(或支付宝支付)成功返回的时候去掉下划线后面的即可得到实际订单号。

还有一种简单的方法,就是在订单表里新增一个字段,在每次触发支付接口时,都重新生成一个唯一的临时订单号保存在此订单的临时订单字段中,传递给支付接口的订单号就是临时订单号,支付状态处理的时候,根据临时订单号获取正式订单号,同时进行业务处理。

如果要核实对账单,那临时订单号最好是和正式的订单号一样,在后面随机加上一些随机字符串来解决。

  • 回复于 2021-11-19 14:28 举报

    通常的做法是订单表至少包含 订单号,外部订单号 两个字段。外部订单号用于各种支付网关的请求订单号,每次请求时,按照规则生成唯一单号。

您需要登录后才可以回复。登录 | 立即注册