如何处理取消的定期付款

Posted

技术标签:

【中文标题】如何处理取消的定期付款【英文标题】:How to Handle Cancelled Recurring Payments 【发布时间】:2010-10-01 16:48:27 【问题描述】:

我正在使用 Paypal 为我的网站处理自动定期付款。用户付费订阅我的网站,这样他们就可以获得定期的时事通讯。

假设客户在几个月后取消了会员资格。他们通过登录 Paypal 并取消未来的自动付款来做到这一点。我应该如何更新我的网站以反映此次取消?

我想到的第一个解决方案是安排一个每天午夜执行脚本的 cronjob,以使用来自 Paypal 的信息更新我的数据库。

第二个解决方案是在时事通讯邮寄日,我执行一个脚本来使用来自 Paypal 的信息更新我的数据库。每次用户“登录”到我的网站时,该网站也会执行该脚本。

有没有更好的方法来做到这一点?

【问题讨论】:

【参考方案1】:

如果我理解正确,Paypal 的服务器会在订阅状态发生变化时自动更新您的服务器(如果您进行了此配置)。这称为 IPN(即时付款通知),确实包括取消通知。这是Paypal documentation for recurring (subscription) payments。此外,您可以使用他们的 API 轮询他们的服务器以获取此信息,因此,如果您希望自己获取这些信息,也可以。

【讨论】:

啊好吧,那我来研究一下吧! 刚刚添加了指向贝宝文档的链接。 =) 我不太明白。是在查询字符串中传递的取消通知。你怎么知道付款通知是指取消定期付款? @JohnMerlino 为了您更好地理解,您可以通过在 IPN 中发送的参数来识别通知是指取消、创建配置文件还是定期定期付款。如果 $_REQUEST['txn_type'] == 'recurring_payment_profile_cancel' 则其 for profile 已取消,如果 $_POST['txn_type'] == 'recurring_payment_profile_created' 则其 for profile created ,如果 $_POST['period_type']) == ' Regular' && $_POST['payment_status'] == 'Completed' 则表示您已收到定期定期付款。

以上是关于如何处理取消的定期付款的主要内容,如果未能解决你的问题,请参考以下文章

用于定期付款的 PayPal IPN

如何处理完成处理程序块中取消的 NSURLSessionTask ?

如何处理 JOptionPane 中的取消按钮

如何处理位置服务弹出警报上的“取消”按钮

如果用户取消 InApp 购买或只是另一个失败状态,如何处理

net/http:请求已取消(等待标头时超出 Client.Timeout)为啥/如何处理?