2012-01-18 115 views
3

我需要为我的客户在网站上设置paypal自动续订。 实际上客户每月付款将获得30天的网站访问权限。PHP和PayPal IPN订阅和定期付款

如果月度自动付款没问题,我们可以将“网站访问”天数增加30天。 如果没有,它不会在客户帐户中添加更多天数。

这意味着我需要从我自己的网站运行一个脚本来检查和增加或停止每次汽车付款后的客户“网站访问”天。

我们可以这样设置贝宝自动更新吗? 是否有任何方法在每次自动更新后运行脚本(mywebsite.com/renewalscript.php?customerid=123&payment=ok)? 还是你有任何其他想法来克服这一点?

回答

5

一个简单的方法可能是有一个valid_until日期列或其他东西。当用户试图查看内容时,只需检查该字段并查看他们是否应该能够查看内容。然后在IPN监听器中,您可以在收到良好付款的30天后推送日期。

如果您在创建IPN侦听器时需要帮助,可能会发现我的教程很有用。

2

AFAIK,每获得一笔成功的认购费,您都可以通过IPN获得信息。 “你需要运行的脚本”是IPN脚本。如果PayPal通过IPN通知您,您的IPN脚本需要处理请求/响应,如果有效,请在数据库中设置您的参数。这一切都是在您的网站上的IPN处理程序脚本中完成的。如果您发送请求的时间太晚,贝宝不接受它并稍后发送新的请求,请先记住在对表格进行任何本地更新之前先回答此脚本中的PayPal请求。

示例代码

3

您可以通过监听IPN的时候txn_typesubscr_eot做到这一点见https://cms.paypal.com/cgi-bin/marketingweb?cmd=_render-content&content_ID=developer/library_code_ipn_code_samples。订阅失败或被取消时,您可以禁止访问。

这个问题说明了一点关于subscr_eotSubscriptions with Paypal IPN

我使用这个类:PHP Paypal IPN Integration Class 和检查:

if($p->ipn_data['txn_type'] == 'subscr_eot')

然后设置其status0以禁止访问。

+0

这是真的,subscr_ *状态是老样子?我试图得到这个答案。 http://stackoverflow.com/questions/13855287/parsing-paypal-subscription-ran-out – Volomike 2012-12-17 21:12:09