1

我正在尝试使用 Python 和 paypalrestsdk 提取 PayPal 订单信息。

出于某种原因,我收到一个对我来说没有意义的证书错误。

payment_history = paypalrestsdk.Payment.all({"count": 10}, api=PayPal_key.Key_api())
  File "/Library/Frameworks/EPD64.framework/Versions/7.3/lib/python2.7/site-packages/paypalrestsdk-1.6.2-py2.7.egg/paypalrestsdk/resource.py", line 137, in all
    response = api.get(url)
  File "/Library/Frameworks/EPD64.framework/Versions/7.3/lib/python2.7/site-packages/paypalrestsdk-1.6.2-py2.7.egg/paypalrestsdk/api.py", line 222, in get
    return self.request(util.join_url(self.endpoint, action), 'GET', headers=headers or {})
  File "/Library/Frameworks/EPD64.framework/Versions/7.3/lib/python2.7/site-packages/paypalrestsdk-1.6.2-py2.7.egg/paypalrestsdk/api.py", line 135, in request
    http_headers = util.merge_dict(self.headers(refresh_token=refresh_token), headers or {})
  File "/Library/Frameworks/EPD64.framework/Versions/7.3/lib/python2.7/site-packages/paypalrestsdk-1.6.2-py2.7.egg/paypalrestsdk/api.py", line 205, in headers
    token_hash = self.get_token_hash(refresh_token=refresh_token)
  File "/Library/Frameworks/EPD64.framework/Versions/7.3/lib/python2.7/site-packages/paypalrestsdk-1.6.2-py2.7.egg/paypalrestsdk/api.py", line 98, in get_token_hash
    "Accept": "application/json", "User-Agent": self.user_agent
  File "/Library/Frameworks/EPD64.framework/Versions/7.3/lib/python2.7/site-packages/paypalrestsdk-1.6.2-py2.7.egg/paypalrestsdk/api.py", line 161, in http_call
    response = requests.request(method, url, proxies=self.proxies, **kwargs)
  File "/Library/Frameworks/EPD64.framework/Versions/7.3/lib/python2.7/site-packages/requests-2.5.0-py2.7.egg/requests/api.py", line 49, in request
    response = session.request(method=method, url=url, **kwargs)
  File "/Library/Frameworks/EPD64.framework/Versions/7.3/lib/python2.7/site-packages/requests-2.5.0-py2.7.egg/requests/sessions.py", line 461, in request
    resp = self.send(prep, **send_kwargs)
  File "/Library/Frameworks/EPD64.framework/Versions/7.3/lib/python2.7/site-packages/requests-2.5.0-py2.7.egg/requests/sessions.py", line 573, in send
    r = adapter.send(request, **kwargs)
  File "/Library/Frameworks/EPD64.framework/Versions/7.3/lib/python2.7/site-packages/requests-2.5.0-py2.7.egg/requests/adapters.py", line 431, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: [Errno 1] _ssl.c:504: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

我检查了 paypal.com 证书:

requests.get('https://paypal.com', verify=True)

并得到:

<Response [200]>

有人可以帮助解决这个问题吗?

4

1 回答 1

0

paypal.com 提供的证书与其 API 端点提供的证书不同,因此您的测试:

requests.get('https://paypal.com', verify=True)

.. 没有揭示您在尝试使用他们的 API 时遇到的问题。

如果您仍然遇到问题,我建议您升级 OpenSSL 的底层版本,以确保您使用的版本支持PayPal 的 API 端点需要的TLS 1.2 。

于 2018-05-09T07:14:17.240 回答