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

pir*_*max 3 php paypal paypal-sandbox

我尝试使用 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>
Run Code Online (Sandbox Code Playgroud)

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

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

在此输入图像描述

Pre*_*der 7

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

新的paypal/Checkout-PHP-SDK可用于常规付款(2022 年编辑:尽管现在也可能已弃用),但也不支持 Subscriptions API。

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

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

哦,还可以创建产品 + 计划并(如果需要)在每个帐户的 Web 界面中生成相应的按钮。

  • “没有用于订阅的 PHP SDK” - **令人难以置信**最大的支付提供商之一还不提供此功能! (2认同)
  • 该 SDK 已被弃用,并且 SDK 仅适用于一次性结帐和付款用例;对于其他一切,PayPal 的开发者网站现在明确指出使用直接 API 集成:https://developer.paypal.com/docs/api/deprecated-rest-sdks/ (2认同)