我已经编写了一个简单的PayPal订阅系统,用户可以输入信息、点击按钮并开始订阅。但是,我不知道如何确定用户何时取消订阅?我看到过 $txn_type subscr_cancel,但我不知道如何使用它,因为PayPal不会再次调用我的处理程序。
谢谢!
我已经编写了一个简单的PayPal订阅系统,用户可以输入信息、点击按钮并开始订阅。但是,我不知道如何确定用户何时取消订阅?我看到过 $txn_type subscr_cancel,但我不知道如何使用它,因为PayPal不会再次调用我的处理程序。
谢谢!
如果您正在使用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;
}
当用户实际取消订阅时,将发送带有“subscr_cancel”类型的IPN。这不应该用于取消订阅,因为这可以在订阅期间的任何时间发生。
应使用带有“subscr_eot”类型的IPN来取消订阅。当用户的订阅期已过期时,会发送此消息。