【问题标题】:What is the Best Way to Validated New User after Successful Payment?支付成功后验证新用户的最佳方式是什么?
【发布时间】:2011-11-03 22:49:41
【问题描述】:

我有一个会员注册流程,需要按月支付订阅费。我有一个正在运行的脚本,它可以使用 IPN 脚本更新我的成员的数据库。我很好奇在新用户成功提交付款后验证新用户的最佳方式。这是我为此过程设想的工作流程,但请告知您是否以更直接的方式做过类似的事情。

第 1 步)新用户填写包含用户名和密码的注册表单。

  • 此时,我将获取他们生成的密码并在数据库中对其进行操作。这样,如果他们尝试登录,他们将被拒绝访问。

第 2 步)用户通过第三方处理器提交信用卡付款。第三方处理器发送 IPN 以更新数据库。

  • 使用 IPN 脚本,一旦他们的付款方式得到验证,我会将密码设置回他们创建的密码。

第 3 步)验证用户付款成功。

  • 由于他们的密码恢复到他们最初想要的密码,因此用户可以登录。

我看不出有任何原因这不起作用,但它看起来很笨重。有没有更好的办法?谢谢。

【问题讨论】:

  • 不知道是谁,对合法问题投赞成票并平衡反对票

标签: php database passwords membership verify


【解决方案1】:

与其没有正确设置他们的密码,为什么不只是有一个名为“已付款”的额外字段并将其默认为“0”,然后如果/当他们付款时将其设置为“1”。

然后在登录脚本中只需确保当他们尝试登录时该字段设置为“1”。

【讨论】:

  • 这样看起来干净多了。感谢您提供新鲜的观点。
【解决方案2】:

我假设他们购买了 30 天的订阅?如果是这样,则在付款时将名为 DaysLeft 的字段设置为 30,然后每天从该字段中减去 1。当用户尝试登录时,它会获取他们的姓名并验证他们的密码,然后检查以确保他们的剩余天数 DaysLeft > 0。这允许他们登录。

这将是一个简单的存储过程,您可以每天运行并处理每个用户。它还跟踪他们需要再次付款的时间。当他们还剩不到 5 天时,您可以设置登录提醒。只是一些想法

【讨论】:

  • 这种方式也允许未来的交易。例如一次购买超过1个月的折扣,并允许他们在一个月用完之前付款。每次你得到消息,用户付钱给你,你基本上只是在 DaysLeft 列中为他们添加 30。所以如果他们买了 2 个月,你会做 30 * 2
  • 或者使用时间戳或类似的东西来声明他们的订阅何时到期,这样您就不必每天都在数据库中的每一行中乱七八糟。
  • @Problematic 好主意,可以通过将月份增加 1(或购买的月份数)来简单地添加额外的时间,当然,如果日期已过,您需要将该字段设为空。假设他们在 2011 年 8 月 20 日没时间了,今天是 25 日。增加一个月将使他们可以访问 2011 年 9 月 20 日而不是 2011 年 9 月 25 日。如果您将该列清空,则在添加时间之前检查该列。如果列为空,则取今天的日期,然后添加购买的月份。
猜你喜欢
  • 2010-10-30
  • 1970-01-01
  • 2015-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-07
  • 2011-11-08
相关资源
最近更新 更多