Как я могу применить TLS 1.2 при использовании nusoap?

Я использую nusoap для подключения Eway Legacy Api. Внезапно Eway применяют TLS 1.2 на своей стороне. Итак, я установил open ssl 1.0 и TLS 1.2 на моем сервере.

С этого сервера я подключаю Eway fast api, который работает нормально. Так как для Legacy и Rapid api требуется TLS 1.2, а quick работает нормально, это означает, что с настройкой нашего сервера все в порядке. Но это устаревшее соединение API не работает.

Мне нужно применять TLS 1.2 с помощью кода, когда я подключаюсь к устаревшему API Eway с помощью nusoap.

Пример кода —

<?php

$client = new nusoap_client("https://www.eway.com.au/gateway/rebill/manageRebill.asmx");
$client->namespaces['man'] = 'http://www.eway.com.au/gateway/rebill/manageRebill';
$headers = "<man:eWAYHeader><man:eWAYCustomerID>****</man:eWAYCustomerID><man:Username>****</man:Username><man:Password>****</man:Password></man:eWAYHeader>";
$client->setHeaders($headers);

$requestbody = array();
$soapactionUrl = 'http://www.eway.com.au/gateway/rebill/manageRebill/';
$requestbody['man:RebillCustomerID'] = $eway_rebill_customer_id;
$requestbody['man:RebillID'] = $eway_rebill_id;
$soapaction = 'QueryRebillEvent';
$client = $this->_creatEwayRebillRequestHeader();

$result = $client->call('man:'.$soapaction, $requestbody, '', $soapactionUrl.$soapaction,true);
$err_msg = $client->getError();
echo $err_msg;
?>

Ошибка массажа, что я получаю —

Ошибка wsdl: Получение https://www.eway.com.au/gateway/rebill/manageRebill.asmx — ОШИБКА HTTP: статус неподдерживаемого ответа HTTP 403 Запрещено (в ответе soapclient-> есть содержимое ответа)

Я уверен в своих полномочиях, также команда поддержки eway также сказала мне, что для решения этой проблемы необходимо применить TLS 1.2. Но я не знаю, как применить TLS 1.2 в библиотеке nusoap.

2

Решение

Похоже, вы можете сказать NuSOAP использовать CURL. Так что слегка изменив настройку, сделайте свое дело

$client = new nusoap_client("https://www.eway.com.au/gateway/rebill/manageRebill.asmx");
$client->setUseCURL(true);
$client->setCurlOption(CURLOPT_SSLVERSION, '6'); // TLS 1.2

У меня нет способа проверить это, но я основал это на класс NuSOAP, найденный в GitHub. Это работает для CURL, поэтому он должен работать здесь.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]