沙盒中的贝宝身份验证失败

Posted

技术标签:

【中文标题】沙盒中的贝宝身份验证失败【英文标题】:paypal authentication failure in sandbox 【发布时间】:2019-01-16 12:27:07 【问题描述】:

我在尝试使用 Paypal 沙盒 API 时遇到问题。 我创建了我的 2 个沙盒帐户(促进者和买方),并创建了我的应用程序来获取凭据。

然后,我使用 Paypal 提供的 curl 示例来获取令牌:

curl -v https://api.sandbox.paypal.com/v1/oauth2/token \
   -H "Accept: application/json" \
   -H "Accept-Language: en_US" \
   -u "my-client-id:my-secret" \
   -d "grant_type=client_credentials"

我收到 200 响应,带有“access_token”。

然后,我使用这个访问令牌来获取另一个资源,例如:

curl -v -X GET https://api.sandbox.paypal.com/v1/invoicing/invoices?page=3&page_size=4&total_count_required=true \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer the-token-received-above"

然后,我收到 401 错误: "name":"AUTHENTICATION_FAILURE", "message":"由于身份验证凭据无效或缺少授权标头,身份验证失败。", “链接”:[ "href":"https://developer.paypal.com/docs/api/overview/#error", "rel":"信息链接" ]

我不明白我做错了什么,因为我已经按照 Paypal 文档中描述的每个步骤进行操作(至少,我认为我有......可能没有)

感谢您的帮助

【问题讨论】:

当我遵循相同的 PayPal 说明时,我得到了完全相同的错误 【参考方案1】:

获取access_token后。请试试这个

 try 
        $params = array('access_token' => $jsonResponse->access_token);
        $userInfo = OpenIdUserinfo::getUserinfo($params, $this->_api_context);
     catch (Exception $ex) 
        ResultPrinter::printError("User Information", "User Info", null, $params, $ex);
        exit(1);
    

     ResultPrinter::printResult("User Information", "User Info", $userInfo->getUserId(), $params, $userInfo);

别忘了添加

use PayPal\Api\OpenIdTokeninfo; use PayPal\Api\OpenIdUserinfo; 这对我有用。

【讨论】:

以上是关于沙盒中的贝宝身份验证失败的主要内容,如果未能解决你的问题,请参考以下文章

贝宝客户端身份验证失败

如何在贝宝沙盒中获取身份令牌?

paypal IOS sdk登录失败

上线时贝宝客户端身份验证失败

对测试我的贝宝订阅按钮感到困惑

Game Center 沙盒中缺少邀请