За последние 24 часа нас посетили 20820 программистов и 1125 роботов. Сейчас ищут 403 программиста ...

Проблема с Soap

Тема в разделе "Laravel", создана пользователем MRSgiba, 16 янв 2019.

  1. MRSgiba

    MRSgiba Активный пользователь

    С нами с:
    22 дек 2017
    Сообщения:
    200
    Симпатии:
    32
    Такая проблема:
    Использую на Laravel artisaninweb/laravel-soap
    PHP:
    1. $this->soapWrapper->add('Reserve', function ($service) {
    2. $service
    3. ->wsdl('https://???.ru/appointment-ws/appointment?wsdl')
    4. ->trace(true)
    5. ->options(['login'=>'???','password'=>'???']);
    6. });
    7.  
    8. $registration = $this->soapWrapper->call('Reserve.PostReserve', ['data'=>['location'=>'98354153','dateTime'=>'2019-01-18T09:00:00','service'=>'542','urgency'=>'false','patient'=>'YBPKU7LAJMR6FNUZ']]);
    9. dump($registration);
    Получаю ответ А или Б в зависимости от ситуации
    А - Запись сверх нормы не разрешена (если не записан)
    //если выставляю настройку запись сверх нормы то записывает
    Б - Запись на одну и ту же услугу в один день невозможна, клиент уже записан (если записан)

    Посылаю запрос через SoapUI
    Код (Text):
    1.  
    2. POST https://???.ru/appointment-ws/appointment HTTP/1.1
    3. Accept-Encoding: gzip,deflate
    4. Content-Type: text/xml;charset=UTF-8
    5. SOAPAction: ""
    6. Content-Length: 526
    7. Host: ???.ru
    8. Connection: Keep-Alive
    9. User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
    10. Authorization: Basic cGlyb2dvdmFfMWM6cEI5N2ZtUTE=
    11.  
    12. <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:main="http://atria.cz/appointment/main">
    13.   <soapenv:Header/>
    14.   <soapenv:Body>
    15.   <main:postReserveRequest>
    16.   <main:location>98354153</main:location>
    17.   <main:dateTime>2019-01-18T09:00:00</main:dateTime>
    18.   <main:service>542</main:service>
    19.   <main:urgency>false</main:urgency>
    20.   <main:patient>YBPKU7LAJMR6FNUZ</main:patient>
    21.   </main:postReserveRequest>
    22.   </soapenv:Body>
    23. </soapenv:Envelope>
    Получаю ответ В или Г в зависимости от ситуации
    В - (Записывыает, возвращает результат) (если не записан)
    //Без установки настройки запись сверхнормы
    Г - Извините, запись невозможна. Время 09:00 уже занято (если записан)
    Получается что я Laravel-ем генерирую не то и не так, или шлю не туда, подскажите где копнуть, чем копнуть и как копнуть. Заранее благодарен
     
  2. MRSgiba

    MRSgiba Активный пользователь

    С нами с:
    22 дек 2017
    Сообщения:
    200
    Симпатии:
    32
    Решил. вместо передаваемого массива создал объект с нужными свойствами и все отработало как надо.