PayPal PHP SDK 不适用于订阅,获取 RESOURCE_NOT_FOUND

Posted

技术标签:

【中文标题】PayPal PHP SDK 不适用于订阅,获取 RESOURCE_NOT_FOUND【英文标题】:PayPal PHP SDK not working for Subscriptions, get RESOURCE_NOT_FOUND 【发布时间】:2020-05-20 16:49:59 【问题描述】:

我尝试使用 PayPal 智能按钮在网站上进行付款。

我首先创建了一个计划,我得到了它的 ID,然后我通过 API 和 php 中的 PayPal SDK 的命令激活了它。

该计划似乎是有效的。

<script src="https://www.paypal.com/sdk/js?client-id=sb-key&vault=true&disable-funding=card"></script>
<script>
    paypal.Buttons(
        env: 'sandbox',
        createSubscription: function(data, actions) 
            return actions.subscription.create(
                'plan_id': 'P-85G86700MN...223CGEJWTI'
            );
        ,
        onApprove: function(data, actions) 
            alert('You have successfully created subscription ' + data.subscriptionID);
        
    ).render('#paypal-button-container');
</script>

当我点击 PayPal 按钮进行支付时。我收到此错误:RESOURCE_NOT_FOUND

我不知道这一切意味着什么,遇到同样问题的人也没有得到支持。

【问题讨论】:

【参考方案1】:

您正在使用的旧 PayPal-PHP-SDK 不应再用于任何新的集成。它不支持新的订阅 API,而是使用旧版本的计费计划,这与您尝试执行的操作不兼容(结果是 RESOURCE_NOT_FOUND 错误)

新的paypal/Checkout-PHP-SDK 应该用于常规支付,但也不支持订阅 API。

因此,基本上没有用于订阅的 SDK。要使用Subscriptions API,您需要实现直接 HTTPS REST API 调用以首先创建必要的产品 + 计划,然后在结帐时创建和批准“订阅”(类似协议的对象)。或者,您可以先通过帐户界面更简单地创建产品+计划:sandbox login 或live,这还将生成示例 JS 按钮代码供买家单击并创建/批准订阅。

您可以先使用命令行curl 或邮递员调用进行测试,以确认您想要执行的操作,然后编写必要的 PHP 函数以使用 oauth 令牌对 PayPal 进行自己的 HTTPS 调用。

【讨论】:

“没有用于订阅的 PHP SDK” - 难以置信最大的支付提供商之一还没有提供此功能! 这可能会有所帮助(计费计划和协议):paypal.github.io/PayPal-PHP-SDK/sample/#billing ... 在这里找到:***.com/q/42155987/1066234 该 SDK 已弃用,SDK 仅存在于一次性结账和支付用例;对于其他一切,PayPal 的开发者网站现在明确指出使用直接 API 集成:developer.paypal.com/docs/api/deprecated-rest-sdks

以上是关于PayPal PHP SDK 不适用于订阅,获取 RESOURCE_NOT_FOUND的主要内容,如果未能解决你的问题,请参考以下文章

Paypal Sandbox 不适用于使用 Paypal iOS SDK 的非美国开发人员

PayPal iOS SDK - 付款不适用于具有移动 SDK 类型集成的应用程序

PayPal PHP SDK - 如何通过 PayPal 传递自定义变量?

PayPal Express Checkout 不适用于 php

PayPal Webhook 通知计费订阅 PHP

带有 PHP SDK 的 Paypal REST API - 如何获取交易号?