2015-10-20 37 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