我在与PayPal合作的电子商务网站上遇到了实施礼品卡的问题。 我会尽量保持清醒。
一旦用户验证了他的购物车,他就可以输入代码作为礼品卡以获得折扣。礼品卡(和代码)只能使用一次,并且不与用户链接。
因此,当用户输入代码时,如果已经使用过,我会检查它是否存在,获得折扣等等......
在PayPal的托管上(一旦接受了马赛克),我将礼品卡设置为已使用。
现在,如何防止礼品卡使用两次(或更多次)。因为当用户输入代码并转到PayPal时,另一个用户可以使用同一礼品卡,而第一个用户确认该服装(并且没有处理过邮件)。
我认为给礼品卡一个状态,例如'在使用中'在重定向到贝宝之前,但如果用户在未确认购买的情况下离开贝宝,则礼品卡将始终为InUse,然后我将无法再次检查....
我希望我已被理解并感谢你的帮助:)
答案 0 :(得分:1)
好吧,您可以检查代码是否在输入时使用,然后在交易完成时再次检查。第二次检查必须小心实施,使用单个锁定数据库事务检查代码是否已被使用,然后将其标记为已使用。
如果在事务完成之前代码已被其他人使用,则事务必须失败并显示错误。但是,据推测这可能是一种罕见的情况。
除此之外,我想知道你是否应该重新考虑你的设计。未链接到用户的一次性代码似乎不常见 - 通常此将链接到特定用户,这将使其更易于处理。你的用例是什么?