我能够在 https://api.sandbox.paypal.com/v1/oauth2/token
请求访问 token 并发送 POST
来创建一个使用给定的访问 token 在 https://api.sandbox.paypal.com/v1/payments/payment
进行新付款。这两个 API 运行没有任何问题。
但是当对我也使用上面的访问 token 创建的 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
表示访问 token 无效或过期,但我认为它不适用于此处,因为之前的 POST
命令可以成功运行。
更新 #1:事实上,我已经尝试运行整个流程(请求 access_token
、post
付款、get
付款和 execute
) 使用 cURL 并且没有问题。所以问题一定出在PHP代码上
最佳答案
PHP 中有一个拼写错误,它给了我错误的 access_token
。有趣的是,仍然允许使用 POST
方法来创建新的付款,这让我很困惑。
关于php - 访问 PayPal 沙箱 Rest API 时响应 401,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28923725/