从 PayPal 获取有关新订阅的通知

Posted

技术标签:

【中文标题】从 PayPal 获取有关新订阅的通知【英文标题】:Getting notification from PayPal on new subscriptions 【发布时间】:2013-01-15 17:11:41 【问题描述】:

在沙盒中玩游戏并通过 SetExpressCheckout 设置定期付款(如文档中所建议的那样)时,我可以成功创建 BillingAgreement 并接收令牌。现在,在用户点击 https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=[token goes here] 之类的链接后,同意所有条款和条件等,他会被自动重定向到 SetExpressCheckout 方法中提供的 returnUrl,此外,此令牌值附加到 returnUrl。

到目前为止一切顺利。现在的问题是 - 我可以依赖 returnUrl 将始终被调用的事实吗? F.e.,当用户的浏览器由于某种原因拒绝或无法重定向到指定的 url 时会发生什么?

据我从 PayPal 文档中了解到,您不能使用 IPN 来通知您由用户发起的新订阅,但显然 IPN 将是一个理想的选择。我在撰写 SetExpressCheckout 请求时尝试提供 notifyUrl,但没有被击中。相同的 IPN 适用于我用于一次性购买的“支付”方法。

【问题讨论】:

【参考方案1】:

我认为您在其中缺少一步。当买家在 PayPal 网站上时,不会创建定期付款配置文件 - 您必须等待买家返回您的退货 URL,然后调用 CreateRecurringPaymentsProfile 来实际创建定期付款。如果您从不调用 CreateRecurringPaymentsProfile,则不会创建定期付款——这可能就是您没有获得任何 IPN 的原因。

【讨论】:

是的,我知道一旦用户同意创建计费协议,我必须调用 CreateRecurringPaymentsProfile。问题是 - 我什么时候打电话给它合适的时间。如果可以保证用户实际上会被重定向到 returnUrl,那么这很好,我可以使用它。顺便说一句,如果这是真正的 paypal 用户的有效请求,那么一旦 returnUrl 被点击以检查 paypal 服务器,最好调用 GetExpressCheckoutDetails。 调用 CreateRecurringPaymentsProfile 的正确时间是在买家点击 returnUrl 之后。一旦买家点击 PayPal 上的“同意并继续”按钮,PayPal 就会将他们重定向到 returnUrl,因此他们点击您的 returnUrl 意味着他们已经同意购买/定期付款。不能 100% 保证买家会点击您的 returnUrl - 因为可能会发生网络中断,或者买家可能会决定取消付款 - 但可能性接近 100%。 谢谢,马特。我想这与我从 PayPal 获得的保证一样接近。我想这是唯一的方法,但想确定一下。太糟糕了,没有办法从 PayPal 收到新订阅请求的 IPN 通知,但它是可以管理的。

以上是关于从 PayPal 获取有关新订阅的通知的主要内容,如果未能解决你的问题,请参考以下文章

PayPal Webhook 通知计费订阅 PHP

从 paypal webhook 获取事件数据

有关不同操作的电子邮件通知

EWS 通过SubscribeToPullNotifications订阅Exchange新邮件提醒

Paypal 会每月发送定期付款 IPN 通知吗

何时对 PayPal 订阅采取行动?