我编写了一个简单的paypal订阅系统,用户可以在其中输入信息,点击按钮,然后开始订阅。我想知道如何找出用户何时取消订阅?我见过$ txn_type subscr_cancel,但我不知道如何使用它,因为paypal不会再次调用我的处理程序。
谢谢!
答案 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应该用于取消订阅。这是在用户的订阅期限到期时发送的。