首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >由于授权失败,无法调用PayPal同步API

由于授权失败,无法调用PayPal同步API
EN

Stack Overflow用户
提问于 2018-04-04 02:48:46
回答 2查看 955关注 0票数 1

我正在尝试使用相对较新的PayPal同步API下载我的PayPal事务。我在跟踪同步API指南。我首先登录到PayPal Developer仪表板我的应用程序和凭证页面,滚动到REST应用程序部分,创建一个应用程序,点击它,并为Sandbox和Live启用事务搜索

然后,我使用Sandbox帐户的客户端ID和秘密来生成访问令牌。我确认了客户的身份和秘密是正确的和主动的。我的cURL命令如下(请注意,我在Windows 10上使用cURL ):

代码语言:javascript
复制
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"

我收到了类似于以下内容的回复(我添加了格式):

代码语言:javascript
复制
{
  "scope":"https://uri.paypal.com/services/reporting/search/read 
           https://api.paypal.com/v1/payments/.* 
           https://uri.paypal.com/services/applications/webhooks 
           openid",
  "nonce":"2018-04-04T02:20:02Z...",
  "access_token":"<my-access-token>",
  "token_type":"Bearer",
  "app_id":"<my-app-id>",
  "expires_in":32400
}

然后,我获取访问令牌并将其复制到Sync指南页面上的示例命令中。下面是我运行的命令:

代码语言:javascript
复制
curl -v -X GET https://api.sandbox.paypal.com/v1/reporting/transactions?transaction_id=5TY05013RG002845M&fields=all&page_size=100&page=1 ^
  -H "Content-Type: application/json" ^
  -H "Authorization: Bearer <my-access-token>"

我收到了以下错误响应:

代码语言:javascript
复制
< HTTP/1.1 401 Unauthorized
...
< Content-Length: 244
< Connection: close
< Content-Type: application/json
<
{
  "name":"AUTHENTICATION_FAILURE",
  "message":"Authentication failed due to invalid authentication credentials or a missing Authorization header.",
  "links":[{
    "href":"https://developer.paypal.com/docs/api/overview/#error",
    "rel":"information_link"
  }]
}

我尝试了很多方法来纠正这个错误,包括:

  1. 向命令中添加"Accept: application/json“和"Accept-Language: en_US”标题。
  2. 创建新的秘密并生成新的访问令牌。
  3. 使用新的客户端ID和秘密创建一个新的应用程序,并生成一个新的访问令牌。
  4. 禁用事务搜索,重新启用它,并再次发送命令.
  5. 试着在实时账户上。

每一次尝试都产生了相同的结果。我注意到,在访问令牌响应的作用域部分,它不包含类似于Sync的指定路径的路径(/v1/reporting/transactions)。然而,这只是一个观察,我不确定这是否相关。

我阅读了整个Sync指南和文档大约五次,我搜索了相当彻底的谷歌和StackOverflow。我看到证物,有些人已经通过了与Sync的初始连接,所以我相当肯定这个API能工作。

,有人能帮我理解我错过了什么吗?,难道我需要等一两天才能赶上他们的系统吗?PayPal的开发人员文档不太方便用户,他们的开发人员仪表板也非常糟糕。

EN

回答 2

Stack Overflow用户

发布于 2020-04-25 01:08:52

我也有过同样的问题。在URL周围加双引号可以帮我解决问题。其他API端点可以工作(身份验证、授权/xyz),因为它们中没有任何特殊的URL字符。在事务搜索中,查询字符串分隔符由Bash解析。

你上面的卷曲线变成:

代码语言:javascript
复制
curl -v -X GET "https://api.sandbox.paypal.com/v1/reporting/transactions?transaction_id=5TY05013RG002845M&fields=all&page_size=100&page=1" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <my-access-token>"

希望这能帮到别人。

票数 3
EN

Stack Overflow用户

发布于 2018-04-04 03:41:29

看起来,这个错误可能是由cURL或我使用它的方式引起的。根据直觉,我使用Hurl.it来执行这个样例请求,请求成功了(HTTP200)。然后,我尝试了另一个请求,在其中搜索给定日期范围内的所有事务,这也是成功的。我要把这个问题记下来。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49641964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档