从我的本地环境调用条带费用API时出现TLS问题

时间:2017-12-20 11:21:15

标签: python django stripe-payments

我正在沙箱模式下实施Stripe支付网关。我已经嵌入了checkout进程并且还创建了令牌,服务器使用该令牌来调用API来创建费用。

使用的API版本是:stripe.api_version = '2017-06-05'

charge = stripe.Charge.create(
   amount=1000,
   currency="usd",
   description="Example charge",
   source=token,
)

当我打电话给这个电荷创建api时,我收到以下错误:

  

b'{\ n“错误”:{\ n“type”:“invalid_request_error”,\ n
  “message”:“Stripe不再支持使用TLS 1.0发出的API请求。   请使用TLS 1.2或更高版本启动HTTPS连接。你可以学习   有关详情,请参阅https://stripe.com/blog/upgrading-tls。“\ n} \ n} \ n \ n

用于在本地计算机中创建费用的条带API是:

POST: https://api.stripe.com/v1/charges

如何在本地计算机上运行?

但是当我将它部署到AWS时,它正在那里工作。

1 个答案:

答案 0 :(得分:4)

您的本地Python解释器与不支持TLS 1.2的旧版OpenSSL链接。您可以通过以下方式查看:

$ python -c "import ssl; print(ssl.OPENSSL_VERSION)"

您需要使用OpenSSL 1.0.1或更新版本才能使用TLS 1.2。

如果您使用的是OS X,解决此问题的最简单方法是使用Homebrew包管理器:

$ brew update && brew upgrade && brew install openssl && brew install python

如果您使用的是Python 3,请将python替换为上面命令行末尾的python3