PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (1): [1]
Найдено сообщений: 7
Intrerio
Отправлено: 09 Января, 2018 - 11:20:55 • Тема: SOAP ответ без XML • Форум: Если скрипт не работает
Ответов: 0 Просмотров: 1892
Здравствуйте друзья. Собственно проблема вот в чем.Есть SOAP-запрос:
CODE (
htmlphp ):
скопировать код в буфер обмена
< 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" >
< soapenv: Header>
< o: Security soapenv: mustUnderstand= "1" xmlns: o= "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" >
< o: UsernameToken>
< o: Username> '.Epolis::TOKEN_KEY.'</ o: Username>
</ o: UsernameToken>
</ o: Security>
</ soapenv: Header>
< soapenv: Body>
< ns: GetSignFromRequest>
< ns: digSignRequest>
< ns: Contract>
< ns: Address> '.$ar['adress'].'</ ns: Address>
< ns: AutoDescr> '.$ar['marka_name'].' '.$ar['model_name'].'</ ns: AutoDescr>
< ns: BirthDate> '.$ar['birthday'].'</ ns: BirthDate>
< ns: DBonusMalusID> '.$ar['bonusMalus'].'</ ns: DBonusMalusID>
< ns: DCitizenStatusID> '.$ar['rezident'].'</ ns: DCitizenStatusID>
< ns: DCityID> '.$ar['city'].'</ ns: DCityID>
< ns: DDiscountID> '.$ar['discount'].'</ ns: DDiscountID>
< ns: DExpLimitID> '.$ar['stag'].'</ ns: DExpLimitID>
< ns: DMarkID> '.$ar['marka'].'</ ns: DMarkID>
< ns: DModelID> '.$ar['model'].'</ ns: DModelID>
< ns: DPeriodID> '.$ar['strok'].'</ ns: DPeriodID>
< ns: DPersonStatusID> '.$ar['person'].'</ ns: DPersonStatusID>
< ns: DPrivelegeID> '.$ar['pilgy'].'</ ns: DPrivelegeID>
< ns: DSphereUseID> '.$ar['taksi'].'</ ns: DSphereUseID>
< ns: DVehicleTypeID> '.$ar['type_tz'].'</ ns: DVehicleTypeID>
< ns: Franchise> '.$ar['franshyza'].'</ ns: Franchise>
< ns: IdentCode> '.$ar['ipn'].'</ ns: IdentCode>
< ns: InsPremium> '.$ar['price'].'</ ns: InsPremium>
< ns: Name> '.$ar['name'].'</ ns: Name>
< ns: PName> '.$ar['pobatkovi'].'</ ns: PName>
< ns: ProdYear> '.$ar['year_tz'].'</ ns: ProdYear>
< ns: RegNo> '.$ar['nomer_tz'].'</ ns: RegNo>
< ns: StartDate> '.$ar['date_start'].'</ ns: StartDate>
< ns: Surname> '.$ar['prizv'].'</ ns: Surname>
< ns: VIN> '.$ar['vin'].'</ ns: VIN>
< ns: VehicleUsage> 111111111111</ ns: VehicleUsage>
< ns: k1> '.$ar['k1'].'</ ns: k1>
< ns: k2> '.$ar['k2'].'</ ns: k2>
< ns: k3> '.$ar['k3'].'</ ns: k3>
< ns: k4> '.$ar['k4'].'</ ns: k4>
< ns: k5> '.$ar['k5'].'</ ns: k5>
< ns: k6> '.$ar['k6'].'</ ns: k6>
< ns: k7> '.$ar['bonus_c'].'</ ns: k7>
</ ns: Contract>
< ns: InputMessageID> testRequest</ ns: InputMessageID>
</ ns: digSignRequest>
</ ns: GetSignFromRequest>
</ soapenv: Body>
</ soapenv: Envelope>
Делаем запрос через SOAP:
PHP:
скопировать код в буфер обмена
public static function doRequest( $xml , $req ) {
$params = array ( 'encoding' => 'UTF-8' , 'verifypeer' => false , 'verifyhost' => false , 'soap_version' => SOAP_1_2
, 'trace' => 1 , 'exceptions' => 1 , "connection_timeout" => 180
) ; $client = new SoapClient( "https://policyrw.mtsbu.ua/v3/ChangeContracts.svc?wsdl" , $params ) ;
$ns = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd' ;
$headerbody = array ( 'Security' => array
( 'UsernameToken' => array ( 'Username' => 'TOKEN' ) ) ) ; $header = new SOAPHeader( $ns , 'Security' , $headerbody ) ;
$client -> __setSoapHeaders( $header ) ;
$res = $client -> __doRequest( $xml , 'https://policyrw.mtsbu.ua/v3/ChangeContracts.svc' , 'http://kitsoft.kiev.ua/mtsbu/2017/08/22/IDigitalPolicy/GetSignFromRequest' , SOAP_1_1) ;
return $res ;
}
Получаю ответ в виде строки, а должен получить в виде 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:
скопировать код в буфер обмена
// Create the SoapClient instance
$url = "" ;
$client = new SoapClient
( $url , array ( "trace" => 1 , "exception" => 0
) ) ;
$headers = [
'Username' => 'log' ,
'Password' => 'psw' ,
] ;
$header = new SoapHeader( "http://www.example.com/webservices/" , "APICredentials" , $headers ) ;
// Call wsdl function
$result = $client -> __soapCall
( "DeleteMarketplaceAd" , array ( "DeleteMarketplaceAd" => array ( "accountID" => $accountId ,
"marketplaceAdID" => "9938745"
)
) , NULL , $header ) ;
$_request = $client -> __getLastRequest( ) ;
$_response = $client -> __getLastResponse( ) ;
по факту смотрите что уходит в $_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 ):
скопировать код в буфер обмена
< 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" >
< soapenv: Header>
< o: Security soapenv: mustUnderstand= "1" xmlns: o= "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" >
< o: UsernameToken>
< o: Username> 6975EC75-921D-4263-B7F5-DC61A2509564</ o: Username>
</ o: UsernameToken>
</ o: Security>
</ soapenv: Header>
< soapenv: Body>
< ns: GetSignFromRequest>
< ns: digSignRequest>
< ns: Contract>
< ns: Address> 123</ ns: Address>
< ns: AutoDescr> 1234</ ns: AutoDescr>
< ns: BirthDate> 2005-07-22T00:00:00+02:00</ ns: BirthDate>
< ns: DBonusMalusID> DBonusMalus_13</ ns: DBonusMalusID>
< ns: DCitizenStatusID> DCitizenStatus_1</ ns: DCitizenStatusID>
< ns: DCityID> 0</ ns: DCityID>
< ns: DDiscountID> DDiscount_5</ ns: DDiscountID>
< ns: DExpLimitID> DExpLimit_2</ ns: DExpLimitID>
< ns: DMarkID> 0</ ns: DMarkID>
< ns: DModelID> 0</ ns: DModelID>
< ns: DPeriodID> DPeriod_11</ ns: DPeriodID>
< ns: DPersonStatusID> DPersonStatus_1</ ns: DPersonStatusID>
< ns: DPrivelegeID> DPrivelege_3</ ns: DPrivelegeID>
< ns: DSphereUseID> DSphereUse_2</ ns: DSphereUseID>
< ns: DVehicleTypeID> DVehicleType_12</ ns: DVehicleTypeID>
< ns: DateNextTO> 2015-11-16T03:02:33.517202+02:00</ ns: DateNextTO>
< ns: Franchise> 0</ ns: Franchise>
< ns: IdentCode> 1234567890</ ns: IdentCode>
< ns: InsPremium> 1</ ns: InsPremium>
< ns: Name> 123</ ns: Name>
< ns: PName> 456</ ns: PName>
< ns: ProdYear> 1975</ ns: ProdYear>
< ns: RegNo> AC6548ДЕ</ ns: RegNo>
< ns: StartDate> 2015-11-16T02:57:33.517202+02:00</ ns: StartDate>
< ns: Surname> 123</ ns: Surname>
< ns: VIN> 12345</ ns: VIN>
< ns: VehicleUsage> 000101001110</ ns: VehicleUsage>
< ns: k1> 0.1</ ns: k1>
< ns: k2> 0.1</ ns: k2>
< ns: k3> 0.1</ ns: k3>
< ns: k4> 0.1</ ns: k4>
< ns: k5> 0.1</ ns: k5>
< ns: k6> 1</ ns: k6>
< ns: k7> 1</ ns: k7>
</ ns: Contract>
< ns: InputMessageID> testRequest</ ns: InputMessageID>
</ ns: digSignRequest>
</ ns: GetSignFromRequest>
</ soapenv: Body>
</ soapenv: Envelope>
Начал лепить статую, получил вазу - это о моем запросе на текущий момент. Помогите примером чтоб я мог его разобрать и понять что куда или грамотным ответом,.Благодарю
Intrerio
Отправлено: 21 Августа, 2015 - 12:59:36 • Тема: Проблема с "/" • Форум: Вопросы новичков
Ответов: 6 Просмотров: 298
Возможно я сейчас обнаглел но прошу упростить задачу)). Просто напишите что и как поменять чтоб я смог просто разбить строку на части
Intrerio
Отправлено: 21 Августа, 2015 - 12:35:27 • Тема: Проблема с "/" • Форум: Вопросы новичков
Ответов: 6 Просмотров: 298
andrewkard пишет: Intrerio
Что приходит в $_POST[start]?
В $_POST[start] приходит МВ/НВ1 . Сейчас попробую Ваш совет
(Добавление)
Сделал вот так:
При ввыводе
Вижу:
Тоесть 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 ExBB FM 1.0 RC1. InvisionExBB