src/model/service/task_service.go 的 sendPaymentNotification 里,支付时间当前直接使用了 carbon.Now().ToDateTimeString()。
这样通知里的支付时间显示的是程序发送通知时的当前时间,不是订单真实支付时间;当运行环境时区和业务时区不一致时,时间会直接显示错误。
相关代码位置:
src/model/service/task_service.go
sendPaymentNotification(order *mdb.Orders)
另外当前调用链里是先取订单,再执行 OrderProcessing(req) 更新数据库,最后再发送通知,所以就算改成直接读取传入 order.UpdatedAt 也可能还是旧值。
建议发送通知前按 trade_id 重查最新订单,支付时间使用订单的 updated_at。
src/model/service/task_service.go的sendPaymentNotification里,支付时间当前直接使用了carbon.Now().ToDateTimeString()。这样通知里的支付时间显示的是程序发送通知时的当前时间,不是订单真实支付时间;当运行环境时区和业务时区不一致时,时间会直接显示错误。
相关代码位置:
src/model/service/task_service.gosendPaymentNotification(order *mdb.Orders)另外当前调用链里是先取订单,再执行
OrderProcessing(req)更新数据库,最后再发送通知,所以就算改成直接读取传入order.UpdatedAt也可能还是旧值。建议发送通知前按
trade_id重查最新订单,支付时间使用订单的updated_at。