php中的订单任务没有完成时的情况?

在用户购买支付的时候,没有支付成功,怎么记录他的小时,然后多长时间之后自动在判断是否支付,这个的定时在哪里显示,php应该怎么实现呢?

阅读 2.1k
3 个回答

1、订单表多预留几个字段,或者扩展一张订单状态更新表,用以记录各环节发生的时间
2、服务器定时任务,轮询数据库,根据订单状态(待支付、已支付、已发货 …)操作后面动作

前端:可以用redis的hash存未支付的订单(需要一个定时任务持久化未支付订单列表以防redis故障数据丢失),当用户查看待支付或者购物车时可以以触发一个查询操作,去redis查询到订单下单但是未支付的时间与当前时间比较超过就清除订单;
后端:在存订单的hash列的时候存一个订单的list,起一个定时任务隔段时间去redis列中去清除订单,

后端用个字段记录下下单的时间就行了,后面要做其他的事情都根据这个字段来。

前端展示倒计时就获取这个字段,多少时间后订单失效也根据这个字段来判断。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题