检测 Paypal 订阅取消
Posted
技术标签:
【中文标题】检测 Paypal 订阅取消【英文标题】:Detecting Paypal Subscription Cancellation 【发布时间】:2011-01-06 17:37:14 【问题描述】:我编写了一个简单的贝宝订阅系统,用户可以在其中输入他们的信息,单击按钮,然后开始订阅。我想知道如何才能知道用户何时取消订阅?我见过 $txn_type subscr_cancel 但我不知道如何使用它,因为 paypal 不会再次调用我的处理程序。
谢谢!
【问题讨论】:
我将不胜感激不需要 IPN 的答案。即使我使用 IPN,我也想在订阅期结束时通过使用订阅 ID 调用 paypal API 端点来仔细检查用户的订阅状态并查看状态。这可能吗? 【参考方案1】:如果是,您是否使用 IPN,那么当取消订阅时,paypal 将返回 $_POST['txn_type'] = subscr_cancel
以及 subscr_date = 订阅日期、subscr_id = 订阅 ID 等,现在您可以处理返回的订阅 ID 的取消请求。
同样,订阅结束时您会收到$_POST['txn_type'] = subscr_eot
。
一旦您在贝宝设置中设置了 IPN url,它将始终调用您的 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;
【讨论】:
今晚正是我所需要的!不知道为什么他们没有在文档中说得足够清楚。 谢谢!真的很简单。 刚刚遇到这个。这非常有用(我已经为此苦苦挣扎了一段时间)。谢谢! I think paypal was Loud & Clear【参考方案2】:当用户实际取消订阅时,会发送类型为“subscr_cancel”的 IPN。这不应用于取消订阅,因为这可能在订阅期间的任何时间发生。
应使用“subscr_eot”类型的 IPN 取消订阅。这是在用户的订阅期到期时发送的。
【讨论】:
以上是关于检测 Paypal 订阅取消的主要内容,如果未能解决你的问题,请参考以下文章