Задать вопрос

SOAP запрос на PHP?

Добрый день! Мне нужно выполнить задание. Произвести регистрацию нового участника, через SOAP метод.

имеется Wsdl
https://webservices.saveonresorts.com/services/Clu...

код следующий:
<?php
     $url = "https://webservices.saveonresorts.com/services/ClubMembership.svc?singleWsdl";
     $client = new SoapClient($url, array('soap_version' => SOAP_1_2, "location" =>        "https://webservices.saveonresorts.com/services/ClubMembership.svc", 'trace' => 1));
     
     $params = array('Email' => 'p.doht@hasmail.com', 'LastName' => 'Carter', 'FirstName' => 'Patrick', 'Phone' => '+1111111111');

    print_r($client->__getFunctions());
    echo '<br><br>';
    try { 
        $xml = $client->CreateMembership_Paid($params);
    } catch (SoapFault $fault) { 
        $xml = array(); 
        $xml['faultcode'] = $fault->faultcode;
        $xml['faultstring'] = $fault->faultstring;
    }

    var_dump($xml);
?>


В итоге я получаю список функций, пытаюсь вызвать одну из них, но получаю ошибку:
array(2) { ["faultcode"]=> string(8) "s:Sender" ["faultstring"]=> string(143) "The SOAP action specified on the message, '', does not match the HTTP SOAP Action, 'tempuri.org/IClubMembership/CreateMembership_Paid'. " }

Много искал в гугле, но ничего не смог найти полезного по это ошибке. Почему возникает данная ошибка? Что я делаю в коде не правильно?
  • Вопрос задан
  • 3449 просмотров
Подписаться 4 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
добавьте

$actionHeader = new SoapHeader('http://www.w3.org/2005/08/addressing',
                               'Action',
                               'http://tempuri.org/IClubMembership/CreateMembership_Paid');
$client->__setSoapHeaders($actionHeader);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@n1creator Автор вопроса
Сейчас сообщение "The message with To '' cannot be processed at the receiver, due to an AddressFilter mismatch at the EndpointDispatcher. Check that the sender and receiver's EndpointAddresses agree." Я подумал, что параметры не все. А нет, все равно сообщение об ошибке. Подскажите, с чем может быть связанно?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽