首页 文章

PayPal定期付款已取消,剩余天数

提问于
浏览
7

我有一个基于订阅的成员资格,但是我遇到了以下问题:

  • 用户于2012年5月1日订阅,每月无限期付款 .

  • IPN发送到服务器,激活订阅

  • 用户于2012年5月3日被取消 .

  • IPN发送到服务器,订阅被取消,服务器取消了会员资格 .

然而,当用户在2012年5月1日订阅时,如果他在一个月之前取消,他仍然有一些日子 . 有办法解决这个问题吗? PayPal是否会针对此类问题发送任何IPN?

我想到的一个解决方案是每晚做一个cronjob来检查月份是否到了 .

3 回答

  • 2

    当我们在自己的网站上实现订阅服务时,我们基本上处理这样的事件:

    • subscription confirmation - 我们在服务器上将用户的订阅标记为"automatic renewal"

    • money received - 我们根据约定的期限(每月或每年)移动用户的订阅到期日期;使用试用期,此事件仅在试用期结束时发送

    • subscription cancelation - 我们在服务器上将用户的订阅标记为"manual renewal"

    • money refunded - 我们根据约定的期限移回用户的订阅到期日期 .

    用户登录后,我们会检查订阅是否已过期(如果您将其存储在数据库中,这很容易) .

    基本上,订阅事件与付款事件是分开的 . 订阅可以取消,但这并不意味着付款得到退款;这将是一个单独的事件 .

    顺便说一下,付款和订阅活动可能会有不同的顺序(例如,付款可以先到,然后是订阅通知);迎合这一点非常重要 .

  • 3

    当用户订阅时,paypal将创建定期付款配置文件,这意味着用户必须在他订阅的当天(例如5月1日,6月1日,7月1日)每月(每年,每天,取决于 Profiles )支付金额 . . 当用户取消时,他取消付款资料,而不是付款本身 . 因此,PayPal之后不会要求任何其他付款 . 如果您想向用户提供剩余的日期,则必须存储有关订阅的信息 .

    你可以在他订阅的那天和他取消的那天存储在数据库中 . 从那里你可以知道用户还有多少天 . Paypal在创建定期付款配置文件,付款本身和取消时都会发送IPN消息 .

    您可以在此处找到有关IPN消息的信息:https://cms.paypal.com/cms_content/US/en_US/files/developer/IPNGuide.pdf

  • 1

    IPN消息中的一个D / V对是 next_payment_date ,后跟如下所示的日期: 03:00:00 Jul 06, 2013 PDT

    我将日期转换为YYYY-MM-DD,并将其存储在数据库中,以及IPN消息中的 profile_status 值 . 当个人订阅时,我在数据库中也有一个简单的TRUE / FALSE订阅者单元 .

    因此,如果订阅者取消,他们的 profile_status 在数据库中更新为'Cancelled', subscriber 单元格更新为FALSE .

    当用户访问高级内容时,将检查数据库中的 subscriber 单元格是否为TRUE . 如果是这样,他们就会得到内容 . 如果为FALSE,则检查 profile_status 单元格,如果该单元格为'Expired'或NULL,则它们't get content. If the cell'的内容为'Cancelled',然后拉出 next_payment_date 数据,添加一天(以处理时区问题),如果更大比当前时间,优质内容加载 . 如果它小于当前日期,那么它们的 profile_status 单元格将更新为'Expired'并且它们不会获得内容 .

相关问题