从开发人员的角度来看,通过仪表板(和/或订阅付款失败)来捕获(webhook )用户取消其PayPal订阅的最佳方法是什么?
我与PayPal支持部门进行了一些讨论,并了解了以下内容:
订阅按钮:
-simple,优雅,很好地让用户订阅。
-however,当用户通过仪表板取消订阅时,不会触发BILLING.SUBSCRIPTION.CANCELLED 网钩。只有IPN“web钩子”才会被触发。从paypal文档来看,IPN似乎更难集成(而不是REST,例如,IPN模拟器甚至没有“订阅取消”事件)
使用API (PayPal PHP ):
当用户通过他们的-DOES仪表板取消订阅时,BILLING.SUBSCRIPTION.CANCELLED会触发BILLING.SUBSCRIPTION.CANCELLED网络钩子事件(为什么这个不适用于按钮创建的订阅。我不明白)
-However对设置来说似乎比按钮复杂得多( web流看起来像什么?)
只要对最好的方法有一些想法就好了。
发布于 2022-02-17 18:58:24
这取决于“订阅”按钮的类型。
通过例如https://www.paypal.com/buttons创建的遗留“订阅”按钮不会触发BILLING.SUBSCRIPTION.CANCELLED网页钩子。这些按钮比webhooks早10年,并且只使用非常老的IPN服务。离远点..。
通过例如https://www.paypal.com/billing/plans或在文件之后创建的当前智能订阅按钮确实触发了BILLING.SUBSCRIPTION.CANCELLED网页钩子。
通常,您可以使用取消的web钩子,并跟踪此状态,如果您愿意,但这是不必要的。最重要的最佳实践是使用PAYMENT.SALE.COMPLETED
并记录订阅最后一次成功支付的时间。如果它不能按时付款,那么它就失效了,你就相应地对待它。
在创建订阅时,您可以与plan_id一起传递一个custom_id,该custom_id将在所有webhooks中返回。这对于协调目的是有用的,这样您就可以知道它是用于哪个用户的。
使用API (PayPal PHP ):
不建议使用SDK,不要使用它。任何API调用都应该直接通过HTTPS完成。
https://stackoverflow.com/questions/71161454
复制相似问题