2011-08-25 104 views
4

我有一個會員註冊過程,需要每月訂閱付款。我有一個可以使用IPN腳本更新我的成員數據庫的腳本。我很好奇一旦成功提交付款後驗證新用戶的最佳方式。以下是我爲這一過程設想的工作流程,但請告知您是否以更直接的方式完成了類似的工作。成功付款後驗證新用戶的最佳方式是什麼?

步驟1)新用戶完成註冊表單,其中包括用戶名和密碼。

  • 在這一點上,我將採取他們生成的密碼,並在數據庫中操縱它。這樣,如果他們嘗試登錄,他們將被拒絕訪問。

步驟2)用戶通過第三方處理器提交信用卡支付。第三方處理器發出IPN更新數據庫。

  • 使用IPN腳本,一旦他們的付款方法被驗證,我會設置密碼回到他們創建的那個。

步驟3)用戶驗證成功付款。

  • 由於他們的密碼回到了他們最初想要的密碼,用戶可以登錄。

我沒有看到任何理由,這不起作用,但它似乎笨重。有沒有更好的辦法?謝謝。

+0

Downvoter,請評論。 – Problematic

+0

不知道是誰,爲合法的問題投票,並平衡downvote – Tony318

回答

4

爲何不正確設置密碼,爲什麼不只是有一個名爲'paid'的額外字段,並且默認爲'0',然後如果/當他們付款時將其設置爲'1'。

然後在登錄腳本中,當他們嘗試登錄時只需確保該字段設置爲'1'。

+0

這似乎更乾淨。感謝您的全新視角。 – Presto

2

我假設他們購買30天的訂閱?如果是這樣,當付款到來時將一個名爲DaysLeft的字段設置爲30,然後每天從該字段中減去1。當用戶嘗試登錄時,它會得到他們的名字並驗證他們的密碼,然後檢查以確保他們有剩餘的日子DaysLeft> 0.這允許他們登錄。

這將是一個簡單的存儲過程,你可以每天運行,並處理每個用戶。它還會記錄多久直到他們需要再次付款。您可以在登錄時間少於5天后設置提醒。只是一些想法

+0

這種方式也允許未來的交易。例如每次購買超過1個月的折扣,並允許他們在月份用完之前付款。每當你聽到這個消息,用戶就會付錢給你,基本上只需爲他們添加30個DaysLeft列。所以如果他們買了2個月,你會做30 * 2 – Tony318

+2

或者使用時間戳或類似的聲明,當他們的訂閱到期時,這樣你就不必每天都在數據庫中的每一行。 – Problematic

+0

我喜歡這些想法,感謝您的意見。 – Presto

相關問題