所以我有一个多页结账系统,它依赖会话来存储购物车的内容。我还使用第三方系统来处理信用卡,该系统在其服务器上托管实际支付页面。我只需要将最终总数发布到页面上。
我预见的问题是,如果有人点击进入托管支付页面,然后出于某种合法或邪恶的原因更改另一个选项卡中的购物车内容会怎样。我最初计划当托管支付页面重定向回我的收据页面时,我会将订单插入到我的数据库中。但是,如果此时更改会话,则订单将与收取的总费用不同。
有什么办法可以解决这个问题。我可以看到这种事情对于所有购物车系统都是一个问题,所以我想知道他们是如何做到的。
也许当用户单击按钮转到托管支付页面时,我可以在数据库的 temp_order 表中创建一个临时订单条目,然后当付款通过时,我可以将该临时记录转移到永久记录表中?这样我就不会从已更改的会话信息中插入记录。但是如果我必须发布到托管支付页面,我在哪里有机会将购物车保存到临时表?
此外,临时订单 ID 在临时表和永久表中必须是唯一的,因为我不希望有任何重叠。
最后,我应该经常清除临时订单表,因为它们只是临时记录。有些可能不会通过,因为用户可能会在托管的支付页面上改变主意。
我真的很困惑我该怎么做!