2015-10-20 87 views
0

这种情况非常简单。php - 防止在PayPal付款中使用两次相同的优惠券代码

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

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

但是用户使用了一个技巧,并不仅仅是在那个时刻为他刚刚订购的订单付款。相反,他继续通过在购物车中添加其他产品来制作另一个订单,然后再次使用单次优惠券并单击付款按钮转到Paypal网站。

现在他为这两个订单一个接一个付款,因此成功重新使用单次优惠券。

如何防止用户重复使用单次优惠券?它应该发生在他被带到Pyapal站点之前还是在他被带到那里之后?以及最重要的是什么?

+0

是您处理的优惠券吗? – Nick

回答

0

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

+0

如果用户只是在不取消付款的情况下关闭Paypal网站会怎么样? –

+0

您是否想要阻止用户使用具有“待处理”状态的优惠券?假设优惠券被标记为待处理,用户点击付款按钮并被带到贝宝网站进行付款。如果用户只是关闭贝宝网站而不进行任何付款,然后开始在购物车中添加产品以进行第二次订购,并且再次输入优惠券?应该允许他使用优惠券,对吧? OP对我的描述很好。 –

+0

一旦设置为待处理状态,就不会验证它。等待24小时后,您可以将其恢复为未使用状态,或者在付款确认后使用。向Pay Now按钮添加一个事件处理程序,该程序会在将用户发送到payPal之前向验证优惠券代码的脚本执行ajax请求。 –

0

如果优惠券是由你处理,

您可以创建一个表,2列:

coupon_id < - 主键 ORDER_ID < - 也许你想这是唯一的。

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

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

+0

电子商务管理员可以事先生成优惠券。所以没有办法按照您说的方式为特定订单分配优惠券。将生成 –

+0

优惠券。那么当用户购买时,他将输入优惠券,然后*在验证优惠券后,将其插入表格中。 – Nick

+0

是在贝宝或您的网站上输入的优惠券? – Nick