不从 PayPal 上的 curl 请求接收令牌

Posted

技术标签:

【中文标题】不从 PayPal 上的 curl 请求接收令牌【英文标题】:Do not receive token from curl request on PayPal 【发布时间】:2013-03-05 04:25:11 【问题描述】:

问题: 我没有收到来自 PayPal Sandbox 的令牌。

注意事项: 我已经报名了。我有一个客户 ID 和密码。 我试图登录到我家的 Linux 服务器并通过 Putty 使用 curl。 我尝试通过 Putty 登录我的 Linux 网络托管服务器并使用 curl。 我什至尝试手动添加 -d "response_type=token" 或仅添加 response_type="token" 和各种组合以尝试遵循以下参考 URL 上的说明(即使提供的示例没有 response_type,因为说明要求它)。

用于请求的代码: 卷曲https://api.sandbox.paypal.com/v1/oauth2/token \ -H "接受:应用程序/json" \ -H "接受语言:en_US" \ -u "EOJ2S-Z6OoN_le_KS1d75wsZ6y0SFdVsY9183IvxFyZp:EClusMEUk8e9ihI7ZdVLF5cZ6y0SFdVsY9183IvxFyZp" \ -d "grant_type=client_credentials"

预期样本响应: "范围":"https://api.paypal.com/v1/payments/.* https://api.paypal.com/v1/vault/credit-card https://api.paypal.com/v1/保险库/信用卡/.*", "access_token":"EEwJ6tF9x5WCIZDYzyZGaz6Khbw7raYRIBV_WxVvgmsG", "token_type":"承载者", "app_id":"APP-6XR95014SS315863X", "expires_in":900

参考网址:https://developer.paypal.com/webapps/developer/docs/integration/direct/make-your-first-call/

问题: 如何接收沙盒令牌,以便开始练习调用 PayPal?提交 curl 请求后,我没有收到任何回复。它只是毫无错误地转到下一行。

我不被允许将其放入 cmets。详细结果: [root@host ~]# curl https://api.sandbox.paypal.com/v1/oauth2/token -v \

-H "接受:应用程序/json" \ -H "接受语言:en_US" \ -u "clientid-removed: secret-removed" \ -d "grant_type=client_credentials" * 即将 connect() 到 api.sandbox.paypal.com 端口 443 (#0) * 正在尝试 173.0.82.78... 已连接 * 连接到 api.sandbox.paypal.com (173.0.82.78) 端口 443 (#0) * 使用证书路径初始化 NSS:sql:/etc/pki/nssdb * CAfile:/etc/pki/tls/certs/ca-bundle.crt CApath:无 * NSS:未找到客户端证书(未指定昵称) * SSL 连接使用 SSL_RSA_WITH_3DES_EDE_CBC_SHA * 服务器证书: * 主题:CN=api.sandbox.paypal.com,OU=PayPal Production,O="PayPal, Inc.",L=San Jose,ST=California,C=US * 开始日期:2012 年 9 月 11 日 00:00:00 GMT * 到期日期:格林威治标准时间 2013 年 9 月 17 日 23:59:59 * 通用名称:api.sandbox.paypal.com * 发行人:CN=VeriSign Class 3 Secure Server CA - G2,OU=使用条款 https://www.verisign.com/rpa (c)09,OU=VeriSign Trust Network,O="VeriSign, Inc." ,C=美国 * 服务器身份验证使用 Basic 和用户 'clientid-removed' POST /v1/oauth2/token HTTP/1.1 授权:基本 QVVCOHdoQXZyT0pMbWswWjNyd0lYdkFsR0hvWTdBQld5bXluQ1lPRk13TGVMYU1KbTRvSXNDaWZqV3REOiBFTTZkdUJCYmhBUVlTbkliQWhGRTJtU0Zoc0E0R2ZYYWw0c253TEh1NkszOFloVGs1 用户代理:curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.13.1.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2 主机:api.sandbox.paypal.com 接受:应用程序/json 接受语言:en_US 内容长度:29 内容类型:application/x-www-form-urlencoded * 关闭连接 #0

【问题讨论】:

【参考方案1】:

可能有很多问题。

1) try.. -v ..after curl 看看是否会为您打印出响应。

2) 不确定您是否是这个意思,但您在示例代码中显示的用户和密码不是用户和密码,PayPal 可能分配给您,您需要替换它们。

3) 是在您的家用计算机上设置 curl 还是在您的托管服务上启用?

【讨论】:

我不被允许在评论部分发布结果,所以我编辑了上面的页面。我确实用书中的例子替换了我的用户名和密码。 Curl 是在家里和托管服务中设置的。但是在家里我必须使用 -k 来忽略​​错误的 ssl。【参考方案2】:

现在看来它正在工作。 PayPal 肯定有问题,代码也没有问题。

【讨论】:

以上是关于不从 PayPal 上的 curl 请求接收令牌的主要内容,如果未能解决你的问题,请参考以下文章

PayPal REST 令牌请求:api.paypal.com OK,api-m 失败

在 Python 中从 Paypal 获取访问令牌 - 使用 urllib2 或请求库

使用 cURL 在 android 中获取 paypal 访问令牌

Axios Paypal 令牌问题

如何不从 curl-multi 返回数据并减少 CPU 使用率?

PayPal NVP API - 获取快速结帐令牌