【问题标题】:php - prevent using the same coupon code twice in paypal paymentphp - 防止在贝宝付款中两次使用相同的优惠券代码
【发布时间】:2016-01-19 02:24:12
【问题描述】:

场景非常简单。

在电子商务网站中,给某个用户一个优惠券代码,他只能使用一次。优惠券根据每个用户的 ID 存储在数据库中。

假设用户在购物车中添加了一些产品来下订单并输入优惠券,然后单击“立即付款”按钮并被重定向到 Paypal 网站进行付款。

但是用户使用了一个诡计,并没有在那个时刻为他刚刚下的订单付款。相反,他通过在购物车中添加少量其他产品继续下订单,然后再次使用单次优惠券并单击付款按钮转到 Paypal 网站。

现在他一个接一个地为两个订单付款,从而成功地重复使用了单次优惠券。

如何防止用户重复使用单次优惠券?应该在他被带到 Pyapal 站点之前还是在他被带到那里之后进行?最重要的是如何?

【问题讨论】:

  • 优惠券是你处理的吗?

标签: php paypal coupon


【解决方案1】:

如果优惠券由您处理,

您可以创建单表,2 列:

coupon_id

然后你在那里存储优惠券,或者如果优惠券已经在那里,你正在检查它是否是相同的 order_id。

这有帮助吗?请发表评论,我会改进答案。

【讨论】:

  • 电子商务管理员预先生成优惠券。因此,无法按照您所说的方式针对特定订单分配优惠券。
  • 将生成优惠券。然后当用户购买时,他将输入优惠券,然后您验证优惠券后,将其插入表格中。
  • 优惠券是否输入到贝宝或您的网站上?
  • 优惠券在数据库中预先生成。 '然后在您验证优惠券后,您会将其插入表格中' - 浏览 OP 中描述的 2 个案例。
  • 可能我不明白这个问题,但让我试着解释一下我的意思。你有 2 张桌子。先用优惠券。第二个是优惠券订单ID。用户进行购买,获得优惠券并在网站上输入(付款前)。服务器验证这是有效的优惠券,并将其插入第二个表“coupon-order_id”。如果插入优惠券,一切正常。如果未插入优惠券,则进行选择并检查此优惠券是否具有相同 order_id 的记录。如果按下“F5”,就会发生这种情况。注意,由于主键,单张优惠券只能有一行。这有帮助吗?
【解决方案2】:

我假设您的优惠券代码有两种状态,“已使用”和“未使用”。添加第三种状态“待定”。当用户输入优惠券代码时,对其进行验证,然后将其标记为待处理。确认付款后,将其标记为“已使用”,并且不要让用户再次输入。如果用户取消订单,您可以再次将优惠券代码设为“未使用”。

【讨论】:

  • 如果用户只是关闭了 Paypal 网站而不取消付款怎么办?
  • 您想阻止用户使用处于“待处理”状态的优惠券吗?假设一张优惠券被标记为待处理,并且用户单击支付按钮并被带到 Paypal 站点进行支付。如果用户只是关闭了 Paypal 站点而不进行任何支付,然后开始在购物车中添加产品以进行第二次订购和再次进入优惠券?应该允许他使用优惠券吧?我认为 OP 描述得很好。
  • 一旦它设置为待处理,您就不会验证它。一旦它处于待处理状态,您要么等待 24 小时将其设置回未使用状态,要么在确认付款后设置为使用状态。将事件处理程序添加到“立即付款”按钮,该按钮向脚本发出 ajax 请求,在将用户发送到 payPal 之前验证优惠券代码。
  • 1) 对于 Patypal 窗口关闭场景,您是否想让优惠券再 24 小时无法使用?那实用吗? 2)如果第一个订单打开的Paypal网站在没有付款的情况下仍然保持打开状态,并且用户再次下订单,那么优惠券可以再次使用,对吗?
  • 等一下,我正在制作小提琴
猜你喜欢
  • 2018-10-26
  • 1970-01-01
  • 2013-04-28
  • 2022-01-19
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 2014-11-07
  • 2013-09-21
相关资源
最近更新 更多