You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Appengine开发服务器调用Stripe失败,TLS版本过低求助

解决Python 2.7.11调用Stripe时的TLS 1.2报错问题

哥们,我之前也踩过这个一模一样的坑!Stripe早在2018年就彻底禁用了低于TLS 1.2的测试环境请求,生产环境也早就不支持了。Python 2.7.11本身其实是具备TLS 1.2支持的,但默认的HTTP客户端配置可能没启用这个协议版本,所以才会触发这个报错。给你几个靠谱的解决办法:

  • 升级依赖库,让请求默认适配TLS 1.2
    先把requests和Stripe的Python库都升级到兼容Python 2.7的最新版本,执行这两个命令:

    pip install --upgrade requests[security]
    pip install --upgrade stripe
    

    requests[security]会自动安装cryptography等安全依赖,帮requests默认启用TLS 1.2;新版Stripe库也已经做了协议适配,大部分情况升级后就能解决问题。

  • 手动强制请求使用TLS 1.2(升级后仍有问题时用)
    如果升级依赖后还是不行,那就手动给Stripe的请求会话挂载一个强制用TLS 1.2的适配器,代码如下:

    import requests
    from requests.adapters import HTTPAdapter
    from urllib3.poolmanager import PoolManager
    import ssl
    import stripe
    
    # 自定义适配器,强制使用TLS 1.2协议
    class TLS12Adapter(HTTPAdapter):
        def init_poolmanager(self, connections, maxsize, block=False):
            self.poolmanager = PoolManager(
                num_pools=connections,
                maxsize=maxsize,
                block=block,
                ssl_version=ssl.PROTOCOL_TLSv1_2
            )
    
    # 配置Stripe使用这个适配器
    stripe.api_key = "你的Stripe API密钥"
    session = requests.Session()
    session.mount("https://", TLS12Adapter())
    stripe.default_http_client = session
    

    这段代码会让所有Stripe的API请求都强制走TLS 1.2协议,绕过默认配置的限制。

  • 极端情况:检查服务器SSL环境
    极少数情况下,如果你的服务器系统的OpenSSL版本太低(比如低于1.0.1g),即使Python支持TLS 1.2也可能无法生效,这时候需要升级服务器的OpenSSL到1.0.1g及以上版本。

内容的提问来源于stack exchange,提问作者Mak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:28:35