贝宝智能支付按钮和创建订阅给我一个RESOURCE_NOT_FOUND错误

时间:2019-08-02 16:52:46

标签: paypal paypal-sandbox paypal-subscriptions

我正在使用沙盒,并使用Paypal PHP SDK创建了一个贝宝计划并激活了它。

我正在按照集成指南创建对此计划(https://developer.paypal.com/docs/subscriptions/integrate/#4-create-a-subscription)的订阅。

但是当我按下黄色按钮时,控制台中出现Javascript错误:

Error: Create Subscription Api response error:

{
    "name": "RESOURCE_NOT_FOUND",
    "message": "The specified resource does not exist.",
    "debug_id": "23912dc1195d",
    "details": [
        {
            "issue": "INVALID_RESOURCE_ID",
            "description": "Requested resource ID was not found."
        }
    ],
    "links": [
        {
            "href": "https://developer.paypal.com/webapps/developer/docs/api/#INVALID_RESOURCE_ID",
            "rel": "information_link",
            "method": "GET"
        }
    ]
}

我检查了该计划是否存在,并且使用Paypal PHP SDK可以。

这是使用的Javascript代码:

<script src="https://www.paypal.com/sdk/js?client-id=sandbox_paypal_client_id&vault=true"></script>

  <div id="paypal-button-container"></div>

  <script>
    // paypal.Buttons().render('#paypal-button-container');

    paypal.Buttons({
      createSubscription: function(data, actions) {
        return actions.subscription.create({
          'plan_id': 'P-8N6112936N290211KKMN5MZI'
        });
      },
      onApprove: function(data, actions) {
        alert('You have successfully created subscription ' + data.subscriptionID);
      }
    }).render('#paypal-button-container');
  </script>

在Paypal开发人员仪表板中,我看到此操作的API调用,但显示为橙色...

预先感谢您的帮助。

5 个答案:

答案 0 :(得分:2)

我也遇到了这个问题。跟随Subscriptions Integration instructions时,我感到困惑的是,我认为SDK可与Subscription Plans(API端点/billing/plans)一起使用,但在编写时却不行(至少PHP和.NET版本)-该SDK仅与名称非常相似的旧版Billing Plans/payments/billing-plans)配合使用(简称为Plans)。

正如@giannisrig所说,您必须直接调用API的“订阅计划”部分(/billing/plans)。我希望他们会尽快更新SDK-这似乎是一个重要的缺少功能。

答案 1 :(得分:1)

除了Harvey Kadyanji所说的以外,请确保:

  1. 计划处于活动状态
  2. 该计划是通过Subscriptions API和Catalog Products API创建的

如果您遵循此链接中贝宝提供的步骤: https://developer.paypal.com/docs/subscriptions/integrate/,您将必须使用Subscriptions API创建计划,而不是使用Billing Plans和Billing Agreements API。

答案 2 :(得分:0)

我遇到了同样的问题,以下解决了我的问题:

  1. 确保提供的sandbox_paypal_client_id有效
  2. 确保plan_id存在
  3. 在请求中添加计划名称,例如
{
  'plan_id': 'P-8N6112936N290211KKMN5MZI',
  'name': 'Monthly plan'
}

答案 3 :(得分:0)

可能您正在使用“ client-id = sb”或未指定客户端ID加载按钮脚本。为了使用通过API创建的计划,需要在加载脚本时将“ client-id”显式设置为REST SDK应用程序的client-id。然后,按钮将找到您创建的计划。

I also answered to basically the same problem in the PayPal community forum

答案 4 :(得分:0)

使用与您正在使用的沙盒客户端 ID 关联的沙盒企业帐户,并通过那里进行 paypal 智能订阅或计划。 planId 和 clientId 需要属于同一个沙箱帐户。