2013-01-15 57 views
0

我正在遇到一個問題,在使用paypal的電子商務網站中實施禮品卡。 我會盡量清楚。實施禮品卡

一旦用戶驗證購物車,他可以輸入代碼作爲禮品卡來獲得折扣。禮品卡(和代碼)只能使用一次,並且不會鏈接到用戶。

因此,當用戶輸入的代碼,我檢查它是否存在,如果媒體鏈接已被使用,拿到的折扣等等...

PayPal上的postsale(一旦paiment已被接受) ,我使用禮物卡。

現在,我該如何防止禮品卡使用兩次(或更多)。因爲當用戶輸入代碼並轉到PayPal時,另一個用戶可以使用這張同樣的禮品卡,而第一個用戶沒有確認Paiment(並且沒有處理postsale)。

我想給禮物卡一個狀態,例如在重定向到PayPal之前使用',但如果用戶離開貝寶沒有確認他的購買,禮品卡將永遠是InUse,然後我wouldnt能夠檢查再次....

我希望我已經瞭解並thanx您的幫助:)

回答

1

好吧,如果代碼已經被使用,當他們進入,然後在點再次檢查你可以檢查的交易正在完成。第二次檢查必須謹慎實施,並使用一個鎖定數據庫事務來檢查代碼是否已被使用,然後將其標記爲正在使用。

如果代碼在事務完成之前已被其他人使用,則事務將不得不失敗並顯示錯誤。不過,這可能是相當罕見的情況。

除此之外,我想知道您是否應該重新考慮您的設計。沒有鏈接到用戶的一次性代碼看起來並不常見 - 通常這個鏈接到特定的用戶,這將使其更容易處理。你的用例是什麼?

+0

那麼代碼是用作禮品卡。任何人都可以購買禮品卡,他會收到一個代碼,任何用戶都可以使用該代碼...所以我無法檢查是誰使用它 – blop

+0

您可以將禮品卡設置爲與用戶一起「使用」 IP地址。當用戶完成登記時,將其標記爲「已用」。如果用戶未完成結賬,請將禮品卡狀態保留爲「正在使用」一段時間,例如5分鐘。之後,任何IP地址都可以再次使用禮品卡。 – openshac

+1

@blop,在大多數純粹的電子禮品卡系統中,卡被髮送到收件人的電子郵件地址,並且只能由與該電子郵件地址相關聯的帳戶使用。我會擔心任何人都可以使用的禮品卡的安全性。 – 2013-01-15 15:55:08