Ping++ 安全传输协议 TLS 版本升级公告

更新于:2019年03月20日 15:21:55

为进一步保证大家信息及通信安全,我们已于 2018 年 11 月 13 日(周二)停止对 TLSv1.0、TLSv1.1 版本的支持,仅支持 TLSv1.2 及以上版本 。

如果贵司系统目前不支持 TLSv1.2,请务必按照本文内容进行升级,以免影响交易。

一、检查版本信息并升级

请确定生产环境中服务端使用的语言,并根据以下信息进行检查并升级。

① PHP:

  • OpenSSL  版本必须 1.0.1c 及以上,PHP 版本必须 5.6 以上。

  • 若确实无法及时完成版本升级,请根据以下说明进行设置:
            在 `lib/ApiRequestor.php` 文件中, `curl_exec($curl);` 之前添加 `curl_setopt($curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1);`
            如果是通过 composer 安装的,文件位于 `vendor/pingplusplus/pingpp-php/lib/ApiRequestor.php`
    强烈建议你升级环境而非做此设置。此设置是在 Ping++ SDK 中的设置,所以每次升级 SDK ,均需按此操作设置,否则会影响交易。

  • Ping++ PHP SDK 版本不强制升级到最新版本。

② Java:

  • JDK 6(当前官方提供下载版本)不支持 TLSv1.2,需要升级至 JDK8。

  • JDK 7 开始支持 TLSv1.2,但默认 TLSv1.0。建议升级至 JDK8。若确实无法及时完成版本升级,请根据以下说明进行设置:
            在调用设置 apiKey 的方法下添加 System.setProperty("https.protocols", "TLSv1.2"); 如下:
            Pingpp.apiKey = "sk_live_***";//你自己的 apikey
            System.setProperty("https.protocols", "TLSv1.2");//需要添加的代码

  • JDK 8 默认使用 TLSv1.2,推荐使用该版本。

  • Ping++ Java SDK 版本不强制升级到最新版本。

③ Python:

  • OpenSSL 版本必须 1.0.1c 及以上

  • Ping++ Python SDK 版本不强制升级到最新版本。

④ Ruby:    

  • Ruby 2.0.0 及已上版本,OpenSSL 版本必须 1.0.1c 及以上。

  • Ping++ Ruby SDK 需要升级到最新版本

⑤ Node.js:

  • OpenSSL 版本必须 1.0.1c 及以上

  • Ping++ Node.js SDK 需要升级到最新版本 。

⑥ Go:

  • Go 语言版本 1.2 以上不用升级处理

  • Ping++ Go SDK 版本不强制升级到最新版本。

⑦ C#:

  • 升级至 Ping++ 最新 C# SDK(要求环境为 .NET Framework 4.6 及以上)

  • 若  .NET Framework 是 4.5 及以上版本,需执行以下操作:

         Pingpp.Pingpp.SetApiKey("YOUR_API_KEY"); //在你的 api_key 的设置语句下添加下面的代码   

         ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;//需要添加的代码

          Ping++ C# SDK 版本不强制升级到最新版本。

二、纠错排查

不支持 TLSv1.2 的 SDK 报错信息如下:

  • Node.js

    Error: An error occurred with our connection to Pingpp

  • Java

    IOException during API request to Pingpp (https://api.pingxx.com): Connection reset Please check your internet connection and try again. If this problem persists,you should check Pingpp's service status at https://pingxx.com/status.

  • PHP

    Network error [errno 35]: SSL connect error

  • Ruby

    Connection reset by peer - SSL_connect (Errno::ECONNRESET)

  • C#

    System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send.

    您需要登录后才可以回复