访问 PayPal 沙箱 Rest API 时响应 401
Posted
技术标签:
【中文标题】访问 PayPal 沙箱 Rest API 时响应 401【英文标题】:Response 401 when accessing PayPal sandbox Rest API 【发布时间】:2015-05-09 12:43:25 【问题描述】:我能够在https://api.sandbox.paypal.com/v1/oauth2/token
请求访问令牌并发送POST
以使用给定的访问令牌在https://api.sandbox.paypal.com/v1/payments/payment
创建新付款。这两个 API 运行没有任何问题。
但是当我使用上述访问令牌创建的 payment_id 执行 GET
时,它给了我 401
https://api.sandbox.paypal.com/v1/payments/payment/PAY-XXXX
。这是我要在我的return_url
执行付款的步骤。
我正在使用从https://github.com/paypal/PayPal-php-SDK 下载的 PayPal PHP SDK。一切仍处于沙盒模式。 client_id
和 secret
是沙盒凭据。
另外,我尝试将 cURL 运行到上面的 payment_id 的 URL,但它也给出了 HTTP/1.1 401 Unauthorized
。
curl -v https://api.sandbox.paypal.com/v1/payments/payment/PAY-XXXX
-H 'Content-Type: application/json'
-H 'Authorization: Bearer ACCESS_TOKEN'
根据文档,401
表示无效或过期的访问令牌,但我认为它不适用于此处,因为之前的 POST
命令可以成功运行。
更新 #1:事实上,我已经尝试使用 cURL 运行整个流程(请求access_token
、post
付款、get
付款和execute
)并且没有问题。所以问题一定出在PHP代码上
【问题讨论】:
您可以尝试运行samples,并确保它们工作正常吗? 后发者:请务必使用与当前clientID
和clientSecret
对应的商家邮箱,否则会出现401
错误。
【参考方案1】:
PHP 中有一处错字,导致我错了access_token
。有趣的是,POST
创建新付款的方法仍然被允许,这让我很困惑。
【讨论】:
以上是关于访问 PayPal 沙箱 Rest API 时响应 401的主要内容,如果未能解决你的问题,请参考以下文章
PayPal Rest API for Payments 在沙箱中返回 NULL