我正在构建一个PayPal订阅系统,但我很难理解一些观点。使用沙盒时,我无法模拟付款拒绝过程,因此在付款时,PayPal将我重定向到我的"批准 url 回调"并创建计费协议。
所以我想知道,在真实情况下,即使付款尚未发生,PayPal是否会将我重定向到批准 url 并创建此计费协议? 或者当且仅当接受付款时,才能创建这个?(因此,如果PayPal拒绝付款,则永远不会创建计费协议)
就我而言,我的客户将需要访问我网站的某些付费功能,因此,我是否应该等待"ipn webhook 通知(付款。销售。已完成)",这可能需要几分钟才能触发到我的终端节点,或者我可以在创建计费协议后立即授予访问权限吗?
哪个是最安全的做法?
谢谢。
如果用户取消结账,PayPal将重定向到您的取消网址。但是我不清楚失败的付款案例。我相信即使付款失败,也会创建协议,因为它需要存在才能完成付款尝试,但我不PayPal :)工作。
我的方法是无论如何在成功的重定向时激活订阅,[编辑:执行响应返回过去的agreement_details.next_billing_date
,因此您不能使用它],初始订阅到期时间很短(4 小时)。当我们的 webhook 收到PAYMENT.SALE.COMPLETED
消息时,我们会获取协议计费协议详细信息,并将订阅到期时间更新为新agreement_details.next_billing_date
。但是如果 webhook 收到 PAYMENT.SALE.DENIED
,我们只是让订阅过期。
呵。