1

背景

我已经接管了对运行非常旧版本 PHP 的站点的更新。在将站点从 5.3 移动到 7.1 之后,我注意到 authorize.net 不断发送电子邮件,说明,

我们将不再允许 TLS 1.0 和 1.1

它声明它将在接下来的几周内完全停止工作,我不确定如何知道该站点是否使用了这个已弃用的 TLS 版本。我假设我应该能够通过应用程序中的 authorize.net 类知道。但代码并没有以任何方式引用TLS。我还假设我可以通过正在使用的端点知道,但我还没有看到任何关于正在使用的 TLS 版本与正在使用的端点有关的任何信息。

有谁知道一种可靠的方法来测试并知道我们是否确实在我们的站点中使用了旧版本的 TLS?或者,如果我们可能在站点中使用了一个非常旧版本的 authorize.net,它根本不依赖 TLS?

示例代码

这些是应用程序中使用的一些类的开始。也许有人对TLS您正在使用的版本指定您正在使用的版本有所了解authorize.net api

类.aim.cc.license.php

<?php
/*********************/
/*                   */
/*  Dezend for PHP5  */
/*         NWS       */
/*      Nulled.WS    */
/*                   */
/*********************/

class authnetcc
{

    var $fields = array( );
    var $license_key;
    var $gateway_url = "https://secure.authorize.net/gateway/transact.dll";
    var $proxy_url;
    var $proxy_port;
    var $secure_source = false;
    var $error_code;
    var $error_message;
    var $error_field;
   ...

目标类.php

<?php
/**
* CLASS AIM
*
*
*/
class AIM {
    // login credentials that Authorize.net uses for verification
    var $login_id = '';
    var $trans_key = '';

    // server
    var $server = '';

    // credit card information
    var $cc_name = '';
    var $cc_number = '';
    var $cc_month = '';
    var $cc_year = '';
    var $cc_code = '';
    var $cc_type = '';

    // error stack array
    var $errorStack = array();

    // modes
    var $testMode = false;
    var $debugMode = false;
    var $errorRetries = 2;

    // buyer information
    var $buyer = array();

    // response information
    var $status = '';
    var $subcode = '';
    var $response_code = '';
    var $response_text = '';
    var $approval_code = '';
    var $md5hash = '';
    var $code = '';
    var $remaining = array();

    // constructor
    function __construct($login_id, $trans_key) {
        $this->login_id = $login_id;
        $this->trans_key = $trans_key;

        $this->setTesting(0);
    }
    ...
4

1 回答 1

3

不是编码问题。Authorize.Net 已经发送这些电子邮件一年多了。与其他所有符合 PCI 的支付网关一样,他们需要使用 TLS 1.2 或更高版本才能保持 PCI 合规性,这意味着他们的所有客户也必须合规。这是您在服务器上配置的,而不是在您的 PHP 代码中。如果您使用的是共享网络托管服务提供商,您需要联系他们并要求转移到支持 TLS 1.2 的服务器或找到支持它的新主机。

仅供参考,您还应该为其 API 使用新的 Akamai URL,该 URL 也必须更新。以后要使用的正确 URL 是https://api2.authorize.net/xml/v1/request.api.

于 2018-02-11T15:58:57.827 回答