2010-02-18 48 views
6

我正在創建一個簡單的網上商店,其中集成了與PayPal集成的銷售獨特商品的PHP。我想知道的是,其他商店如何處理多人嘗試使用相同商品完成付款流程。處理兩個人在同一時間在網上商店購買獨特商品

這是我目前的戰略草案:

  • 項目有三種狀態類型:可用,上銷售保持&。
  • 當用戶轉到PayPal付款頁面時,它會檢查購物車中所有物品的狀態,以確保它們可用。它還會將該項目的狀態設置爲「擱置」,直到它們在確認付款或超時後返回(10分鐘?不確定這應該是什麼)。

這是標準的做法,還是有一個更實際的方法,我應該這樣做呢?

在此先感謝!

+0

這是一個業務需求問題,而不是編程問題。 – Richard 2010-02-18 12:54:42

+9

@理查德我不同意,關於協調。 – Justin 2010-02-18 12:58:37

+3

@Richard:滿足業務需求是IMO編程中相當重要的一部分。肯定與編程有關。 – Treb 2010-02-18 13:02:03

回答

0

我會說你的戰略的第一部分是正確的 - 當你移動到支付頁面,標誌所有的產品爲「擱置」

當用戶完成付款後,你會得到一個回傳從支付寶,它可以讓你知道授權是否成功(也可能允許你檢查CSC/CVV2結果),在這一點上,你可以選擇接受付款或拒絕付款。

收到回傳後,您還應該檢查項目是否仍處於保留狀態。如果他們超時了,您可以拒絕付款並顯示'抱歉 - 超時超時'等消息。

如果您跟蹤客戶進入超時的頻率,那麼您可以計算出理想的超時期限,因此如果太多時間超時,您可以將超時從5分鐘延長到10分鐘,或者如果沒有超時,則將其縮短。

0

woot.com是臭名昭着的這個問題,但他們的解決方案效果很好。付款信息驗證後,用戶會被帶到一個頁面,上面有少量文字說明「您的訂單已在,我們正在驗證庫存」。

它看起來像貝寶API有一個「退款交易」消息,所以類似的東西可能是不可能的。但是,如果您訪問PayPal網站然後回到您的網站,用戶體驗可能會很尷尬。

2

看看Dell's UK outlet。當有人在他們的購物籃中添加一個系統時,系統會保留其他客戶不能使用的系統。如果未購買,則在閒置15分鐘後將物品從籃子中取出,然後供其他客戶使用。

0

這很像預訂劇院門票或類似的在線,是的,你描述的方式通常是它的工作方式。在某個時間點,該物品在系統中被「保留」,並且客戶完成交易或物品在一段時間後被釋放以供其他人購買。

當然,在什麼時候你保留物品(當它被添加到購物車,在你發送他們支付等),取決於你。我希望把它放在購物車中將是最好的選擇,因爲它可能會減少某些人建立一籃子物品的可能性,以便在結帳時找到其中一半不再可用的物品。

0

這是固定的庫存系統,如場地,運輸/航空TIX等

我喜歡的航空公司模型,其中,一旦你得到你想要的,然後單擊選擇itinery一個相當普遍的問題,你會得到一個頁面旅客信息中包含一條消息,說明座位已擱置,而您現在有xx(10/15)分鐘可完成購買。當時一切都變得明確。對於其他獨特/某一種商品,我會在任何頁面上看到一條消息,用戶點擊該消息,並說剩餘xx(分鐘)以完成購買,這對於「邊緣」買家來說是一個很大的動力!