在PayPal订阅上,似乎我需要做的就是将其视为常规IPN,除了查看txn_type
字段。当我看到以下状态代码之一时,我向管理员发送一封电子邮件,以考虑在我用PHP构建的软件的管理面板中手动使该成员到期。
这些状态似乎是以下之一,表示客户已取消,已结束,或者根本不再付款。任何人都可以确认这些是检查的正确状态,还是我包含了一对不合适的状态?
答案 0 :(得分:2)
我发现这些是我的代码中关于“会员结束”类型反应的观察:
所有其他人都只是关于“会员资格结束”状态的“噪音”。例如,对任何支付“失败”类型的IPN做出反应都是错误的,因为最终PayPal可能会在重新尝试后纠正客户的问题,因此取消和到期事件确实是您应该寻找的。 p>
答案 1 :(得分:2)
如果您已完成订阅按钮机制,并且它不是预先批准的定期付款事项之一,那么我认为您只会看到“subscr”前缀的那些。
我个人在我的应用中没有回复“subscr_cancel”。用户取消时会发送IPN。我不想在那时禁用他们的访问权限,所以我等待“subscr_eot”,然后再这样做。
因此,如果他们注册一年,并在第二天取消,他们仍然可以访问年底,这时PayPal将发送“subscr_eot”。他们总是发送两者。
答案 2 :(得分: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;
}