0

我遇到了一个在使用 paypal 的电子商务网站中实施礼品卡的问题。我会尽量说清楚。

一旦用户验证了他的购物车,他可以输入一个代码作为礼品卡以获得折扣。礼品卡(和代码)只能使用一次,并且与用户无关。

所以当用户输入代码时,我检查它是否存在,如果它已经被使用过,获得折扣等等......

在贝宝的邮购中(一旦付款被接受),我将礼品卡设置为已使用。

现在,我怎样才能防止礼品卡被使用两次(或更多)。因为当用户输入代码并转到贝宝时,另一个用户可以使用同一张礼品卡,而第一个用户没有确认付款(并且没有处理售后)。

我想给礼品卡一个状态,例如在重定向到贝宝之前“使用中”,但如果用户在没有确认购买的情况下离开贝宝,礼品卡将永远是使用中,然后我将无法再次检查它。 ..

我希望我已被理解并感谢您的帮助:)

4

1 回答 1

1

好吧,您可以在他们输入代码时检查该代码是否已被使用,然后在交易完成时再次检查。第二次检查必须小心执行,使用单个锁定数据库事务检查代码是否已被使用,然后将其标记为已使用。

如果在交易完成之前代码已被其他人使用,则交易将不得不因错误而失败。但是,大概这将是非常罕见的情况。

除此之外,我想知道你是否应该重新考虑你的设计。未链接到用户的一次性代码似乎不寻常——通常这链接到特定用户,这将使其更易于处理。你的用例是什么?

于 2013-01-15T15:27:02.130 回答