Проблемы с использованием PHP SoapClient для передачи зашифрованного значения службе .Net SOAP

У меня есть SOAP-сервис, с которым я звоню с встроенным SoapClient в PHP 5.3.1. Первой операцией, которую я должен выполнить в службе, является пользовательская операция аутентификации, и один из необходимых параметров, которые я должен передать, – это зашифрованная строка 3DES, которую я создаю с помощью PHP-скрипта, например:

$encryptionKey = '1234myKey1234'; $currentFormattedDate = date ("Y/m/d H:i"); $encryptedString = mcrypt_encrypt('tripledes', $encryptionKey, $currentFormattedDate, 'ecb'); 

Если я попытаюсь просто передать $encryptedString поскольку я получаю его из mcrypt_encrypt() я получаю фатальную ошибку на моей стороне, и вызов не выполняется:

Неустранимая ошибка: SOAP-ERROR: Encoding: string 'd \ xe0 …' не является допустимой строкой utf-8 в / path / to / file

Однако, если I utf8_encode() строка как таковая:

 $encryptedString = utf8_encode($encryptedString) 

Затем выполняется вызов, но их веб-сервис отвечает со следующей ошибкой :

При попытке десериализовать сообщение форматировщик исключил исключение: при попытке десериализации параметра http://tempuri.org/:argStatusDate произошла ошибка. Сообщение InnerException было «Ошибка десериализации объекта типа System.String. Байт 0x19 недействителен в этом месте. Строка 2, позиция 318. '.

Это самое близкое, что я могу добиться успеха в этом процессе, попробовав так много вещей, что вернусь к квадрату. Я проверил, что могу просто передать фиктивную строку, которая приводит к ожидаемому ответу на невозможность аутентификации.

Я не думаю, что это должно иметь какое-то значение, поскольку я считаю, что вызов SOAP в конечном итоге сделан как utf8, но я попытался установить 'encoding' => 'ISO-8859-1' при построении моего SoapClient в PHP, и я получаю то же самое ошибка. Вызов выполняется, но сервер отвечает на ошибку десериализации.

Кто-нибудь знает, лучший способ для меня обработать эту зашифрованную строку, которая понравится как моему клиенту PHP, так и их .Net webservice?

Может быть, проблема в их конце?

FWIW, я также могу попросить изменить метод шифрования на «Rijndael AES Block Cypher» в соответствии с их документацией. Не уверен, что это приведет к упрощению обработки строки.

Solutions Collecting From Web of "Проблемы с использованием PHP SoapClient для передачи зашифрованного значения службе .Net SOAP"