沙盒中的贝宝认证失败

时间:2018-08-09 06:31:51

标签: authentication paypal paypal-sandbox

当我尝试使用Paypal沙箱API时遇到问题。 我已经创建了2个沙箱帐户(协调人和买方),并且已经创建了我的应用程序以获取凭据。

然后,我使用贝宝提供的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错误:     {         “名称”:“ AUTHENTICATION_FAILURE”,         “ message”:“由于身份验证凭据无效或缺少授权标头,身份验证失败。”,         “链接”:[{             “ href”:“ https://developer.paypal.com/docs/api/overview/#error”,             “ rel”:“ information_link”         }]     }

我不明白自己在做什么错,因为我已经遵循了Paypal文档中描述的每个步骤(至少,我认为我...可能没有)

感谢您的帮助

1 个答案:

答案 0 :(得分:-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; 那对我有用。