Функция PHP5 Soap не возвращается, скрипт останавливается - PullRequest
0 голосов
/ 18 апреля 2011

Я делаю вызов SOAP с использованием PHP 5, после вызова, независимо от того, что я передаю в качестве параметров, функция soap просто не возвращает значение, и выполнение сценария, похоже, останавливается.Я пытался с и без попытки, и нет никаких изменений.Я передал пустые $ params, непустые params и т. Д.

После этой строки: $ client-> getClient ($ params);

Есть эхо для b, которое никогда не выдается,Как будто скрипт просто перестает работать после выполнения вызова.Ошибка не отображается, и в error_log ничего не отображается.Очень расстраивает, есть идеи?

$ params = array ();

$client = new SoapClient("https://sandbox.paymentsgateway.net/WS/Client.wsdl",array(
                    'soap_version'=>SOAP_1_1,
                    'exceptions'=>true,
                    'trace'=>1,
                    'cache_wsdl'=>WSDL_CACHE_NONE,
                    'location'=>'https://sandbox.paymentsgateway.net/WS/Client.svc/basic'
                ));

     try
    {
        echo '4';
        $client->getClient($params);
        echo 'b';
    }
    catch (Exception $e)
    {
        echo $e->getMessage();
    }

1 Ответ

1 голос
/ 18 апреля 2011

Если вы работаете в WSDL-режиме, вы не должны использовать location -параметр. Они должны быть взаимоисключающими. Попробуйте удалить location -параметр.

РЕДАКТИРОВАТЬ (потому что выше не помогло):

Попробуйте проверить, может ли SoapClient правильно проанализировать WSDL:

print_r($client->__getFunctions());
print_r($client->__getTypes());

Есть ли какая-либо аутентификация на месте, например, HTTP-аутентификация в документе WSDL?

Ваш сценарий работает во время выполнения или в памяти? Похоже, что вы подключаетесь к веб-сервису .NET, и их WSDL имеют тенденцию становиться достаточно большими - PHP может занять некоторое время для анализа WSDL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...