PHP和Paypal IPN订阅与循环付款

3
我需要为我的客户在网站上设置PayPal自动续订。实际上,每个月的支付将使客户获得30天的网站访问权限。
如果每月的自动付款成功,我们可以将“网站访问”天数增加30天。如果没有成功,则不会向客户账户添加任何更多天数。
这意味着我需要从自己的网站运行一个脚本来检查并增加或停止客户的“网站访问”天数,以便每次自动付款后进行操作。
我们可以像这样设置PayPal自动续订吗?每次自动续订后是否有运行脚本的方法(mywebsite.com/renewalscript.php?customerid=123&payment=ok)?或者您是否有其他想法来解决这个问题?
3个回答

7
一种简单的方法可以是添加一个valid_until日期列或类似的内容。当用户尝试查看内容时,只需检查该字段,以确定他们是否有权限。然后在IPN监听器中,当收到有效支付时,您可以将该日期向前推进30天。
如果需要帮助创建IPN监听器,您可能会发现我的教程很有用。

3
您可以通过监听IPN以获知txn_typesubscr_eot时来实现此操作。当订阅失败或被取消时,您可以禁止访问。
这个问题解释了更多关于subscr_eot的内容:Subscriptions with Paypal IPN 我使用这个类: PHP Paypal IPN Integration Class 并且检查: if($p->ipn_data['txn_type'] == 'subscr_eot') 然后将其status设置为0以禁止访问。

subscr_* 状态是旧的方式,这是真的吗?我正在尝试找到答案。https://dev59.com/12zXa4cB1Zd3GeqPPQcP - Volomike

2
据我所知,每次成功扣款的订阅费用,您都会通过IPN收到一条信息。 "您需要运行的脚本" 是IPN脚本。如果PayPal通过IPN通知您,则您的IPN脚本需要处理请求/响应,并在有效时将参数设置为您的数据库中。这全部都是在您网站上的IPN处理程序脚本中完成的。
(请记住,在执行任何本地更新表等操作之前,首先在此脚本中回复paypal请求。如果您发送请求太晚,paypal将不接受它并稍后发送一个新请求)。
请参见https://cms.paypal.com/cgi-bin/marketingweb?cmd=_render-content&content_ID=developer/library_code_ipn_code_samples以获取示例代码。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接