2011-08-25 105 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

相关问题