PayPal PHP SDK不能使用于订阅功能,出现RESOURCE_NOT_FOUND错误。

3
我尝试在网站上使用PayPal智能按钮进行支付。
我首先创建了一个计划,获得了它的ID,并通过API和PayPal SDK在PHP中激活了它。
该计划似乎已经激活。
<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 我不知道这是什么意思,遇到同样问题的人也没有得到支持。

enter image description here

1个回答

7
您正在使用的旧版PayPal-PHP-SDK已不再适用于任何新集成。它不支持新的订阅API,而是使用计费计划来处理旧版的内容,这与您尝试做的事情不兼容(会导致“RESOURCE_NOT_FOUND”错误)。
新版的paypal/Checkout-PHP-SDK可以用于普通付款(2022年修改:此版本可能也已过时),但也不支持订阅API。
因此,没有适用于订阅的SDK。要使用Subscriptions API,您需要实现直接的HTTPS REST API调用以首先创建必要的产品和计划,然后在结账时创建并批准'订阅'(类似协议的对象)。或者,您可以通过帐户界面更简单地首先创建产品+计划:sandbox login 或者 live,这还将为买家生成示例JS按钮代码,供其单击以创建/批准订阅。
您可以先使用命令行curl或者postman来进行测试,以确认您要做的事情是否有效,然后编写必要的PHP函数使用oauth token向PayPal发出自己的HTTPS调用。
还可以在每个帐户的Web界面上创建产品+计划,并(如果需要)生成相应的按钮。

2
"目前没有适用于订阅的PHP SDK" - 真是难以置信,如此大型的支付提供商竟然还没有提供这个功能! - Avatar
这可能有所帮助(账单计划和协议):http://paypal.github.io/PayPal-PHP-SDK/sample/#billing... 在这里找到它:https://dev59.com/PJ_ha4cB1Zd3GeqPsAat - Avatar
2
那个SDK已经过时了,而且SDK仅适用于一次性结帐和支付用例;对于其他所有情况,PayPal的开发者网站现在明确指向使用直接API集成:https://developer.paypal.com/docs/api/deprecated-rest-sdks/ - Preston PHX

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接