当前位置: 首页 > 知识库问答 >
问题:

Paypal付款REST API - REQUIRED_SCOPE_MISSING

宇文弘懿
2023-03-14

在用户批准后执行()授权支付时失败。

范围:"openid配置html" target="_blank">文件电子邮件地址电话https://uri.paypal.com/services/expresscheckout"

consent _ uri:" https://www . sandbox . paypal . com/web apps/auth/protocol/OpenID connect/v1/authorize?客户端标识=我的客户端标识

[http_code] => 403
[url] => https://api.sandbox.paypal.com/v1/payments/payment/PAY-55313193UK1537019LCXIDBA/execute
[header] => Array
    (
        [0] => Content-Type:application/json
        [1] => Authorization:Bearer user_access_token_from_identity_api
        [2] => PayPal-Partner-Attribution-Id:pp_attr_id
    )

[post_data] => {"payer_id":"3BTU9WTCHAU2Q"}
[response] => {"name":"REQUIRED_SCOPE_MISSING","message":"Access token is missing required scope.","information_link":"https://developer.paypal.com/webapps/developer/docs/api/#REQUIRED_SCOPE_MISSING","debug_id":"e40c3f6b601a"}

)

我只使用一个沙盒client_id,并且启用了“接受付款”和“使用无缝结账”权限。

https://developer.paypal.com/docs/integration/direct/identity/seamless-checkout/

任何见解都非常感谢。

共有2个答案

殳睿
2023-03-14

顶级域;我允许用户独立于结账登录,并使用该身份 API 令牌对结账请求进行签名。实际上,Identity 令牌仅用于将用户登录到我的网站,此时应请求并使用 Restful API 的新持有者令牌。

回答:来自Github上的pp randy:

rest支付所需的access_token应该使用这个API调用。

我从您那里看到的唯一令牌来自identifendpoint/v1/identity/openidconnect/tokenservice,这对于其余的支付是不正确的。

Randy是对的-我使用身份API登录用户时返回的令牌对API请求进行签名。

实际上,由身份 API 返回的用户访问令牌只有一个目的,即将请求签名为“/v1/身份/openidconnect/userinfo/”,该请求获取用于登录unique_id。

我使用身份 API 返回的相同令牌对付款 API 的请求进行签名,而我本应使用此终结点提供的令牌:

"/v 1/标识/打开id连接/令牌服务"

Paypal响应时间:我在Github Paypal SDK上的票证在4 - 5天内得到了答复,我在商家服务队列中的票证在大约4天内得到了答复

可在此处找到完整的故障排除:https://github.com/paypal/PayPal-PHP-SDK/issues/785#issuecomment-282749095

Paypal SDK的Randy回答了我的问题,尽管我没有使用SDK。谢谢你,兰迪!

云浩然
2023-03-14

您是否在应用配置的“应用功能”下选中了“订阅”标记-

 类似资料:
  • 我正在使用贝宝RESTAPI进行支付交易。我正在调用上下文(/v1/payments/payment)进行授权,并将ItemList作为事务对象的一部分传递。 要求:在Paypal验证页面上显示折扣/礼品卡金额作为项目列表的一部分。 问题:API不允许将负数添加到项,并引发验证错误。 有人能告诉我是否可以显示折扣/礼品卡的负数。(但在经典API中也是可能的)

  • 我正在开发一个WordPress插件,在那里我可以接受PayPal Express的付款。我能够成功获得PaymentID和PayerID。但我不知道如何验证付款。另外,我可以从payerID或PaymentID获取付款人详细信息吗? 下面是我用来创建支付按钮的脚本。 非常感谢。

  • 我有问题让贝宝接受从我的应用程序的实时支付。我正在使用一个Azure服务器,用C#编写代码,带有一个基于Xamarin的Android客户端应用程序。我可以得到所有工作与贝宝沙箱,但它失败时,我切换到实时凭据。下面是我的付款流程: 1)在我的Android应用程序中,启动PayPal应用程序授权支付。这返回一个授权代码。该代码类似于C21AAHHVXYJKTRK82SOMDGL6SSQD85LLM

  • 我的paypal按钮有一个小问题默认情况下,我会尝试隐藏它以显示我自己的按钮:/ 这是我的密码。js }); 问题是,我总是有黄色的贝宝按钮,出现在我的按钮底部,我不能得到面具。

  • 我用贝宝支付预付我的Magento购物车。我发现一个来自加拿大的客户的信用卡不断下降。我直接和客户谈了一下,做了以下测试: > 转到我的Paypal管理器中的虚拟终端,只测试授权,它也不工作。虚拟终端的单个事务测试给出错误:结果代码:12响应消息:Decreded:15005-无法处理此事务。 我在我的贝宝账户里发了一张2美元的发票,但这也不起作用。 客户然后使用信用卡从其他地方和它的工作很好。然

  • 我们正在使用安全令牌方法处理信用卡付款与贝宝托管页面。我们通过提供所需的信息来生成安全令牌 我们得到的成功结果如下: 然后我们将此发送回贝宝,在那里用户可以选择用信用卡和/或贝宝支付。 当有人用信用卡支付时,一切都很好,当有人选择用“贝宝”支付时,它会要求用户提供贝宝凭证,一旦提供,它会显示另一个屏幕来接受收费。一旦用户接受,我们会得到以下错误消息: 我从PayPal的人那里得到的帮助说:“看着日