Проблемы с хешем SHA-256 файла, переданного через PHP SoapClient - PullRequest
0 голосов
/ 15 декабря 2018

Я пытаюсь использовать PHP SoapClient для вызова функции веб-службы, для которой используются следующие два параметра (взяты из документации):

byte[] file,     // byte array of file
byte[] hashFile // byte array of hash SHA-256 of the original file

Это файл XML, но я неу меня нет файла, я просто генерирую его содержимое на лету с помощью: $fileContent = $this->xmlDocument->saveXML()

Проблема в том, что когда я выполняю вызов функции, сервер отвечает: недействительнохэш файла

Я не могу понять, в чем моя ошибка.

Это часть WSDL , которая определяет следующие параметры:

<wsdl:part name="file" type="xsd:base64Binary"/>
<wsdl:part name="hashFile" type="xsd:base64Binary"/>

А это мой код:

<?php
function sendDocument($xmlDocument,$soapClient)
{
    $fileContent = $xmlDocument->saveXML()
    $params = [
        "file"     => getByteArray($fileContent),
        "hashFile" => getByteArray(getHash($fileContent)),
    ];
    $response = $soapClient->__soapCall("sendDocument", $params);
}
function getByteArray($string)
{
    return base64_encode($string);
}
function getHash($string)
{
    return hash("sha256", $string);
}
?>
...