尝试从智能按钮创建订阅时出错
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