尝试从智能按钮创建订阅时出错

Posted

技术标签:

【中文标题】尝试从智能按钮创建订阅时出错【英文标题】:Getting error when trying to Create Subscription from smart button 【发布时间】:2019-11-19 20:45:58 【问题描述】:

我正在尝试从 Smart Payment Buttons 订阅 paypal 计费计划。 但我不断收到错误“指定的资源不存在。”

paypal.Buttons(

    createSubscription: function (data, actions) 

        return actions.subscription.create(
            'plan_id': 'P-1G3183167U24246113LMNZLY'
        );
    ,

    onApprove: function (data, actions) 

        alert('You have successfully created subscription ' + data.subscriptionID);
    


).render('#paypal-button-container');

订阅 API 响应错误:

"名称": "RESOURCE_NOT_FOUND", "message": "指定的资源不存在。", "debug_id": "82ac38ce75745", “细节”: [ “问题”:“INVALID_RESOURCE_ID”, "description": "未找到请求的资源 ID。" ], “链接”:[ "href": "https://developer.paypal.com/webapps/developer/docs/api/#INVALID_RESOURCE_ID", "rel": "信息链接", “方法”:“获取” ]

错误图片:

【问题讨论】:

【参考方案1】:

我遇到了同样的问题,并找到了解决方案(至少对我而言)。

在遇到此问题时,我使用的是我在 PayPal Web 仪表板 UI 中创建的实际真实计划(处于草稿状态)中的计划 ID。我认为在使用 PayPal 沙盒进行测试时允许这样做。不是。

必须按照PayPal's instructions here 使用 PayPal REST API(通过 bash+curl 或 Postman 等其他 API 测试工具)创建假测试产品和假测试计划。您无法通过任何 Web UI 创建测试产品+计划,也无法针对真实世界的产品+计划进行测试,即使该产品仍处于草稿状态。

通过 PayPal 的 REST API 创建假测试产品+计划后,您可以将 REST API 返回的计划 ID 插入您网站上 PayPal 按钮的 javascript

另外:请确保在您的脚本标签中,您使用的是来自 PayPal Sandbox Business 帐户的 Client-ID,而不是您实际的真实世界 PayPal 帐户。

【讨论】:

我认为这是正确的答案,但似乎目前 paypal sandobx 拒绝连接,至少来自邮递员。奇怪的是,您不能只使用贝宝 UI 来创建测试计划......【参考方案2】:

我认为问题是这样的。 'plan_id': 'P-1G3183167U24246113LMNZLY'。首先,您需要检查您的帐户是否有具有此类 plan_id 的计划。如果不是,您需要先创建产品然后创建计划,然后您可以在智能购买按钮中使用您的 plan_id。

只需按照此页面中的说明进行操作:

https://developer.paypal.com/docs/subscriptions/integrate/?mark=seat-based%20pricing#

【讨论】:

【参考方案3】:

根据第 201 行 env: 'live',您似乎是针对 真实帐户 开发此功能,这不是一个好的做法,例如,破坏真实网站中的功能。 p>

我在使用 Java 时遇到了同样的问题,显然每个订阅只能使用一个计费计划,这意味着您需要为每个订阅创建一个计费计划。

您可以在Paypal REST APIs documentation找到更多信息。

【讨论】:

以上是关于尝试从智能按钮创建订阅时出错的主要内容,如果未能解决你的问题,请参考以下文章

捕获订阅智能按钮与 SDK 集成的错误 - Sandbox 和 Live

Paypal 智能按钮订阅状态

使用 Gibbon 创建标签时出错(Ruby MailChimp 客户端)

贝宝 - 订阅按钮

尝试与用户的 PIN(智能卡)建立会话时出错

使用智能支付按钮(React + Redux)的 PayPal 结帐创建订单问题