【发布时间】:2018-09-13 11:33:44
【问题描述】:
我正在尝试使用相对较新的 PayPal Sync API 下载我的 PayPal 交易。我正在关注the Sync API guide。我首先登录 PayPal 开发者仪表板 My Apps & Credentials page,滚动到 REST API 应用程序 部分,创建一个应用程序,单击它,然后为两个应用程序启用 Transaction Search沙盒和真实帐户。
然后我使用沙盒帐户的客户端 ID 和密钥生成访问令牌。我确认客户 ID 和密码正确且有效。我的 cURL 命令如下(注意我在 Windows 10 上使用 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"
我收到了类似以下的回复(我添加了格式):
{
"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
}
然后,我将访问令牌复制到同步 API 指南页面上的 the sample command 中。这是我运行的命令:
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>"
我收到以下错误响应:
< 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"
}]
}
我尝试了很多方法来纠正这个错误,包括:
- 在命令中添加“Accept: application/json”和“Accept-Language: en_US”标头。
- 创建新 Secret 并生成新访问令牌。
- 使用新的客户端 ID 和密钥创建新应用并生成新的访问令牌。
- 禁用事务搜索,重新启用,然后再次发送命令。
- 在真实帐户中试用。
这些尝试中的每一个都产生了相同的结果。我注意到,在访问令牌响应的范围部分中,它不包含与同步 API 的指定路径(/v1/reporting/transactions)类似的路径。不过,这只是一个观察结果,我不确定这是否相关。
我通读了整个 Sync API 指南和文档大约五次,并且非常彻底地搜索了 Google 和 StackOverflow。我看到evidence 有人正在通过与 Sync API 的初始连接,所以我相当肯定这个 API 可以工作。
有人可以帮我了解我缺少什么吗? 是不是我需要等待一两天才能让他们的系统赶上来? PayPal 的开发者文档对用户不是很友好,他们的开发者仪表板非常有问题。
【问题讨论】:
标签: paypal paypal-sandbox paypal-rest-sdk