【问题标题】:Parsing PayPal Subscription Ran Out解析 PayPal 订阅用完了
【发布时间】:2012-12-01 01:46:12
【问题描述】:

在 PayPal 订阅中,我似乎只需将其视为常规 IPN,除了查看 txn_type 字段。当我看到以下状态代码之一时,我会向管理员发送一封电子邮件,以考虑在我正在使用 PHP 构建的软件的管理面板中手动使该成员过期。

状态似乎是以下状态之一,表明客户已取消、已到期或根本不再付款。谁能确认这些是要检查的正确状态,还是我包括了一些不正确的状态?

  • 订阅取消
  • subscr_eot
  • 订阅失败
  • recurring_payment_failed
  • recurring_payment_suspended_due_to_max_failed_pa​​yment
  • recurring_payment_outstanding_payment_failed
  • recurring_payment_profile_cancel
  • recurring_payment_expired

【问题讨论】:

    标签: paypal-ipn paypal-subscriptions


    【解决方案1】:

    我知道我在这篇文章中有点晚了,但这里有一个快速解决方案 (php) 来解决你的问题:

    switch ($_POST['txn_type']) {
        case 'cart':
              //for products without subscription
         break;
        case 'subscr_payment':
            //subscription payment recieved
            break;
    
        case 'subscr_signup':
            //subscription bought payment pending
            break;
    
        case 'subscr_eot':
           //subscription end of term
            break;
    
        case 'subscr_cancel':
            //subscription canceled
            break;
     }
    

    【讨论】:

      【解决方案2】:

      我发现这些是关于我的代码中“会员资格结束”类型反应的注意事项:

      • 订阅取消
      • subscr_eot
      • recurring_payment_profile_canceled
      • recurring_payment_expired

      所有其他人都只是关于“会员资格结束”状态的“噪音”。例如,对任何付款“失败”类型的 IPN 做出反应是错误的,因为最终 PayPal 可能会在重新尝试后与客户纠正该问题,因此您确实应该寻找取消和到期事件。

      【讨论】:

        【解决方案3】:

        如果您已经通过订阅按钮机制,并且它不是预先批准的定期付款之一,那么我认为您只会看到带有“subscr”前缀的那些。

        我个人不会在我的应用程序中回复“subscr_cancel”。用户取消的那一刻发送的 IPN。我不想在那个时候禁用他们的访问,所以我等待“subscr_eot”然后再做。

        因此,如果他们注册了一年,并在第二天取消,他们仍然可以访问年底,也就是 PayPal 将发送“subscr_eot”的时间。他们总是会同时发送。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-08-03
          • 2012-12-25
          • 2022-12-12
          相关资源
          最近更新 更多