【发布时间】: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错误。
标签: php paypal paypal-sandbox paypal-rest-sdk