检测Paypal订阅取消

时间:2010-01-19 09:18:59

标签: php paypal handler paypal-ipn

我编写了一个简单的paypal订阅系统,用户可以在其中输入信息,点击按钮,然后开始订阅。我想知道如何找出用户何时取消订阅?我见过$ txn_type subscr_cancel,但我不知道如何使用它,因为paypal不会再次调用我的处理程序。

谢谢!

2 个答案:

答案 0 :(得分:24)

如果是,则使用IPN,当订阅被取消时,paypal返回$_POST['txn_type'] = subscr_cancel以及subscr_date =订阅日期,subscr_id =订阅ID等,现在您可以处理已返回订阅ID的取消请求。 同样,当订阅结束时,您会获得$_POST['txn_type'] = subscr_eot。 一旦你在paypal设置中设置了IPN网址,它将始终调用你的ipn处理程序。 使用switch case来处理不同的请求,

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;
 }

答案 1 :(得分:7)

当用户实际取消订阅时,会发送类型为“subscr_cancel”的IPN。这不应该用于取消订阅,因为这可能在订阅期间的任何时间发生。

具有'subscr_eot'类型的IPN应该用于取消订阅。这是在用户的订阅期限到期时发送的。