PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 7
Intrerio Отправлено: 09 Января, 2018 - 11:20:55 • Тема: SOAP ответ без XML • Форум: Если скрипт не работает

Ответов: 0
Просмотров: 1892
Здравствуйте друзья. Собственно проблема вот в чем.Есть SOAP-запрос:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://kitsoft.kiev.ua/mtsbu/2017/08/22" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
  2.                 <soapenv:Header>
  3.                              <o:Security soapenv:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
  4.                                      <o:UsernameToken>
  5.                                              <o:Username>'.Epolis::TOKEN_KEY.'</o:Username>
  6.                                      </o:UsernameToken>
  7.                              </o:Security>
  8.                 </soapenv:Header>
  9.                 <soapenv:Body>
  10.                    <ns:GetSignFromRequest>
  11.                       <ns:digSignRequest>
  12.                          <ns:Contract>
  13.                             <ns:Address>'.$ar['adress'].'</ns:Address>
  14.                             <ns:AutoDescr>'.$ar['marka_name'].' '.$ar['model_name'].'</ns:AutoDescr>
  15.                             <ns:BirthDate>'.$ar['birthday'].'</ns:BirthDate>
  16.                             <ns:DBonusMalusID>'.$ar['bonusMalus'].'</ns:DBonusMalusID>
  17.                             <ns:DCitizenStatusID>'.$ar['rezident'].'</ns:DCitizenStatusID>
  18.                             <ns:DCityID>'.$ar['city'].'</ns:DCityID>
  19.                             <ns:DDiscountID>'.$ar['discount'].'</ns:DDiscountID>
  20.                             <ns:DExpLimitID>'.$ar['stag'].'</ns:DExpLimitID>
  21.                             <ns:DMarkID>'.$ar['marka'].'</ns:DMarkID>
  22.                             <ns:DModelID>'.$ar['model'].'</ns:DModelID>
  23.                             <ns:DPeriodID>'.$ar['strok'].'</ns:DPeriodID>
  24.                             <ns:DPersonStatusID>'.$ar['person'].'</ns:DPersonStatusID>
  25.                             <ns:DPrivelegeID>'.$ar['pilgy'].'</ns:DPrivelegeID>
  26.                             <ns:DSphereUseID>'.$ar['taksi'].'</ns:DSphereUseID>
  27.                             <ns:DVehicleTypeID>'.$ar['type_tz'].'</ns:DVehicleTypeID>
  28.                             <ns:Franchise>'.$ar['franshyza'].'</ns:Franchise>
  29.                             <ns:IdentCode>'.$ar['ipn'].'</ns:IdentCode>
  30.                             <ns:InsPremium>'.$ar['price'].'</ns:InsPremium>
  31.                             <ns:Name>'.$ar['name'].'</ns:Name>
  32.                             <ns:PName>'.$ar['pobatkovi'].'</ns:PName>
  33.                             <ns:ProdYear>'.$ar['year_tz'].'</ns:ProdYear>
  34.                             <ns:RegNo>'.$ar['nomer_tz'].'</ns:RegNo>
  35.                             <ns:StartDate>'.$ar['date_start'].'</ns:StartDate>
  36.                             <ns:Surname>'.$ar['prizv'].'</ns:Surname>
  37.                             <ns:VIN>'.$ar['vin'].'</ns:VIN>
  38.                             <ns:VehicleUsage>111111111111</ns:VehicleUsage>
  39.                             <ns:k1>'.$ar['k1'].'</ns:k1>
  40.                             <ns:k2>'.$ar['k2'].'</ns:k2>
  41.                             <ns:k3>'.$ar['k3'].'</ns:k3>
  42.                             <ns:k4>'.$ar['k4'].'</ns:k4>
  43.                             <ns:k5>'.$ar['k5'].'</ns:k5>
  44.                             <ns:k6>'.$ar['k6'].'</ns:k6>
  45.                             <ns:k7>'.$ar['bonus_c'].'</ns:k7>
  46.                          </ns:Contract>
  47.                          <ns:InputMessageID>testRequest</ns:InputMessageID>
  48.                       </ns:digSignRequest>
  49.                    </ns:GetSignFromRequest>
  50.                 </soapenv:Body>
  51.              </soapenv:Envelope>

Делаем запрос через SOAP:
PHP:
скопировать код в буфер обмена
  1. public static function doRequest($xml,$req){
  2.         $params = array ('encoding' => 'UTF-8', 'verifypeer' => false, 'verifyhost' => false, 'soap_version' => SOAP_1_2, 'trace' => 1, 'exceptions' => 1, "connection_timeout" => 180 );
  3.         $client = new SoapClient("https://policyrw.mtsbu.ua/v3/ChangeContracts.svc?wsdl",$params);      
  4.         $ns = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd';
  5.         $headerbody = array('Security'=>array('UsernameToken' => array('Username'=>'TOKEN')));
  6.         $header = new SOAPHeader($ns, 'Security', $headerbody);
  7.         $client->__setSoapHeaders($header);
  8.  
  9.         $res = $client->__doRequest($xml, 'https://policyrw.mtsbu.ua/v3/ChangeContracts.svc', 'http://kitsoft.kiev.ua/mtsbu/2017/08/22/IDigitalPolicy/GetSignFromRequest', SOAP_1_1);
  10.         return $res;
  11.     }

Получаю ответ в виде строки, а должен получить в виде SOAP/XML. Помогите понять где лоханулся.
Intrerio Отправлено: 28 Сентября, 2017 - 13:36:52 • Тема: Запрос SOAP • Форум: XML и его обработка

Ответов: 5
Просмотров: 2469
Поправте если не прав:
Есть у меня выше приведенный пример запроса. Я должен сделать сервер SOAP, згенерировать файл wsdl в который запихнуть запрос. А потом уже эту всю кухню отправлять на удаленный адрес?
Intrerio Отправлено: 28 Сентября, 2017 - 10:25:50 • Тема: Запрос SOAP • Форум: XML и его обработка

Ответов: 5
Просмотров: 2469
andrewkard пишет:
Intrerio пишет:
Начал лепить статую, получил вазу - это о моем запросе на текущий момент.

главное у Вас хоть есть от чего оттолкнуться, полный пример запроса.
PHP:
скопировать код в буфер обмена
  1.  
  2. // Create the SoapClient instance
  3. $url         = "";
  4. $client     = new SoapClient($url, array("trace" => 1, "exception" => 0));
  5.  
  6. $headers = [
  7.     'Username' => 'log',
  8.     'Password' => 'psw',
  9. ];
  10.  
  11. $header = new SoapHeader("http://www.example.com/webservices/", "APICredentials", $headers);
  12.  
  13. // Call wsdl function
  14. $result = $client->__soapCall("DeleteMarketplaceAd", array(
  15.     "DeleteMarketplaceAd" => array(
  16.         "accountID"        => $accountId,
  17.         "marketplaceAdID"    => "9938745"    
  18.     )
  19. ), NULL, $header);
  20.  
  21. $_request = $client->__getLastRequest();
  22. $_response = $client->__getLastResponse();
  23.  
  24.  


по факту смотрите что уходит в $_request

А подскажите пожалуйста, файл wsdl можно как то прощупать, есть ли он на сервере? Я просто не до конца понимаю какой вариант лучше использовать с wsdl или без
Intrerio Отправлено: 27 Сентября, 2017 - 14:30:34 • Тема: Запрос SOAP • Форум: XML и его обработка

Ответов: 5
Просмотров: 2469
Здравствуйте друзья. Никогда не имел ничего общего с SOAP и сейчас очень остро стало научиться работать правильно с ним. Перечитал php.net - ничего толкового не прочитал. Общие тезисы и нет конкретики. Даже в банальном $action я не могу понять что тут должно быть. Есть задача построить запрос на конкретный адрес: https://policyrw[dot]mtsbu[dot]ua/v3/Cha[dot][dot][dot]ontracts[dot]svc/New . Разработчик сервиса предоставил пример запроса который должен быть послан:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://kitsoft.kiev.ua/mtsbu/2017/06/21" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
  3.    <soapenv:Header>
  4.                 <o:Security soapenv:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
  5.                         <o:UsernameToken>
  6.                                 <o:Username>6975EC75-921D-4263-B7F5-DC61A2509564</o:Username>
  7.                         </o:UsernameToken>
  8.                 </o:Security>
  9.    </soapenv:Header>
  10.    <soapenv:Body>
  11.       <ns:GetSignFromRequest>
  12.          <ns:digSignRequest>
  13.             <ns:Contract>
  14.                <ns:Address>123</ns:Address>
  15.                <ns:AutoDescr>1234</ns:AutoDescr>
  16.                <ns:BirthDate>2005-07-22T00:00:00+02:00</ns:BirthDate>
  17.                <ns:DBonusMalusID>DBonusMalus_13</ns:DBonusMalusID>
  18.                <ns:DCitizenStatusID>DCitizenStatus_1</ns:DCitizenStatusID>
  19.                <ns:DCityID>0</ns:DCityID>
  20.                <ns:DDiscountID>DDiscount_5</ns:DDiscountID>
  21.                <ns:DExpLimitID>DExpLimit_2</ns:DExpLimitID>
  22.                <ns:DMarkID>0</ns:DMarkID>
  23.                <ns:DModelID>0</ns:DModelID>
  24.                <ns:DPeriodID>DPeriod_11</ns:DPeriodID>
  25.                <ns:DPersonStatusID>DPersonStatus_1</ns:DPersonStatusID>
  26.                <ns:DPrivelegeID>DPrivelege_3</ns:DPrivelegeID>
  27.                <ns:DSphereUseID>DSphereUse_2</ns:DSphereUseID>
  28.                <ns:DVehicleTypeID>DVehicleType_12</ns:DVehicleTypeID>
  29.                <ns:DateNextTO>2015-11-16T03:02:33.517202+02:00</ns:DateNextTO>
  30.                <ns:Franchise>0</ns:Franchise>
  31.                <ns:IdentCode>1234567890</ns:IdentCode>
  32.                <ns:InsPremium>1</ns:InsPremium>
  33.                <ns:Name>123</ns:Name>
  34.                <ns:PName>456</ns:PName>
  35.                <ns:ProdYear>1975</ns:ProdYear>
  36.                <ns:RegNo>AC6548ДЕ</ns:RegNo>
  37.                <ns:StartDate>2015-11-16T02:57:33.517202+02:00</ns:StartDate>
  38.                <ns:Surname>123</ns:Surname>
  39.                <ns:VIN>12345</ns:VIN>
  40.                <ns:VehicleUsage>000101001110</ns:VehicleUsage>
  41.                <ns:k1>0.1</ns:k1>
  42.                <ns:k2>0.1</ns:k2>
  43.                <ns:k3>0.1</ns:k3>
  44.                <ns:k4>0.1</ns:k4>
  45.                <ns:k5>0.1</ns:k5>
  46.                <ns:k6>1</ns:k6>
  47.                <ns:k7>1</ns:k7>
  48.             </ns:Contract>
  49.             <ns:InputMessageID>testRequest</ns:InputMessageID>
  50.          </ns:digSignRequest>
  51.       </ns:GetSignFromRequest>
  52.    </soapenv:Body>
  53. </soapenv:Envelope>
  54.  

Начал лепить статую, получил вазу - это о моем запросе на текущий момент. Помогите примером чтоб я мог его разобрать и понять что куда или грамотным ответом,.Благодарю
Intrerio Отправлено: 21 Августа, 2015 - 12:59:36 • Тема: Проблема с "/" • Форум: Вопросы новичков

Ответов: 6
Просмотров: 298
Возможно я сейчас обнаглел но прошу упростить задачу)). Просто напишите что и как поменять чтоб я смог просто разбить строку на части
Intrerio Отправлено: 21 Августа, 2015 - 12:35:27 • Тема: Проблема с "/" • Форум: Вопросы новичков

Ответов: 6
Просмотров: 298
andrewkard пишет:
Intrerio
Что приходит в $_POST[start]?

В $_POST[start] приходит МВ/НВ1 . Сейчас попробую Ваш совет
(Добавление)
Сделал вот так:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $test=var_dump($_POST['start']);
  3. preg_match("/([a-zA-Zа-яА-ЯіІ]*)([\-0]*)([\-0-9]+)+/u ", "$test", $start);
  4.  

При ввыводе
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. echo"1) $start[0] 2) $start[1] 3)$start[2] 4)$start[3] 5)$start[4] 6) $test";
  3.  

Вижу:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. string(10) "МВ/НВ1" 1) 2) 3) 4) 5) 6) МВ\/НВ1
  3.  

Тоесть preg_match не разбивает на части строку
(Добавление)
Затупил.
Когда пробую вывести $test[0] вижу знак вопроса в ромбе. Что то с кодировкой. Как исправить?
(Добавление)
я завис...
С кодировкой была проблема не через вар дамп.
При выводе получил string(10) "МВ/НВ1" . Как разбить на части эту строку?
Intrerio Отправлено: 21 Августа, 2015 - 12:27:18 • Тема: Проблема с "/" • Форум: Вопросы новичков

Ответов: 6
Просмотров: 298
Здраствуйте. Проблема вот в чем:
Есть в базе данных запись типа МВ/НВ. Есть форма которая методом POST передает данную запись,а последующий код проверяет есть ли в БД строчка с этой записью. В следствии проверка проваливаеться потому что я получаю вместо МВ/НВ только НВ. Пробую preg_match("/([a-zA-Zа-яА-ЯіІ]*)([\-0]*)([\-0-9]+)+/u ", "$_POST[start]", $start); но получаю все то же. Кстати код preg_match("/([a-zA-Zа-яА-ЯіІ]*)([\-0]*)([\-0-9]+)+/u ", "$_POST[start]", $start); я использую для других целей и не могу понять что нужно в него добавить чтоб заработало

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB