Вопросы при работе с php, кто понимает

Вопросы при работе с php, кто понимает
Страницы:1
Ответить
Вопросы при работе с php, кто понимает
 
Возникла необходимость пользоваться методом ChangeCard. Оказалось, что он вызывается совсем по другому адресу, нежели RegisterCard, а именно http://eaisto.gibdd.ru/common/ws/arm_operator.php?wsdl Но дело даже не в этом, а в том, что типы данных Card в этих WSDL-описаниях различны. То что бросается сразу в глаза, это отсутствие IsArchive и Operator в arm_operator.php?wsdl. Понятно, что их можно не передавать через XML, присвоив им NULL значения. Однако, тревожат смутные сомнения, никто не сталкивался ни с какими проблемами при использованиия метода ChangeCard?
 
Цитата
victor16 писал(а):Возникла необходимость пользоваться методом ChangeCard. Оказалось, что он вызывается совсем по другому адресу, нежели RegisterCard, а именно http://eaisto.gibdd.ru/common/ws/arm_operator.php?wsdl Но дело даже не в этом, а в том, что типы данных Card в этих WSDL-описаниях различны. То что бросается сразу в глаза, это отсутствие IsArchive и Operator в arm_operator.php?wsdl. Понятно, что их можно не передавать через XML, присвоив им NULL значения. Однако, тревожат смутные сомнения, никто не сталкивался ни с какими проблемами при использованиия метода ChangeCard?
На тестовом сервере отрабатывает нормально уже давно...
 
Цитата
victor16 писал(а):Возникла необходимость пользоваться методом ChangeCard. Оказалось, что он вызывается совсем по другому адресу, нежели RegisterCard, а именно http://eaisto.gibdd.ru/common/ws/arm_operator.php?wsdl Но дело даже не в этом, а в том, что типы данных Card в этих WSDL-описаниях различны. То что бросается сразу в глаза, это отсутствие IsArchive и Operator в arm_operator.php?wsdl. Понятно, что их можно не передавать через XML, присвоив им NULL значения. Однако, тревожат смутные сомнения, никто не сталкивался ни с какими проблемами при использованиия метода ChangeCard?
Коллеги из ЕАИСТО, подскажите, пожалуйста, а в чем смысл было делать эти методы в разных сервисах и как следствие с различными описаниями типов Card?
 
Тоже возникла необходимость пользоваться методом ChangeCard. Импортировала http://eaisto.gibdd.ru/common/ws/arm_operator.php?wsdl и по этому описанию написала на Delphi клиента. ChService:= arm_operator.GetIInspection(false, '', HTTPRIO1); resWEbChCardResp :=ChService.ChangeCard(ChCard); на втором операторе ошибка "Procedure 'RegisterCard' not present" Может кто подскажет что не так? У HTTPRIO1.WSDLLocation=http://84.47.186.195/TechInspect/Services/Inspection.svc?wsdl
 
Дополнение к предыдущему начало сообщения <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><SOAP-ENV:Body><RegisterCard xmlns="http://tempuri.org/"><user>....... ТО есть вызывается метод ChangeCard, а в сообщение пишется RegisterCard!!!
 
Народ, помогите! Как-то же вы делаете изменение карты?! Если я делаю разные приложения для регистрации и изменения карты, оба нормально отрабатывают. Если у меня в одном приложении подключены оба модуля (arm_expert и arm_operator) то в не зависимости от того как создается HTTPRIO (даже при run time)- после запуска приложения происходит "When an application casts THTTPRIO to a registered invokable interface, it dynamically generates an in-memory method table, providing an implementation to that invokable interface. " и потом IInspection ассоциируется только с версией arm_expert. При вызове метода ChangeCard THTTPRIO подменяет(! по-моему!) имя метода с "ChangeCard" на '' RegisterCard" в SOAPRequest, но обращается по правильному сервису 'http://eaisto.gibdd.ru/common/ws/arm_operator.php'. Там метода '' RegisterCard" нет сервис справедливо выдает ошибку "Procedure 'RegisterCard' not present". Можно ли как-то в delphi отключить кеширование invokable interface сразу после запуска приложения? Кто как смог отрабатывать изменение карты?
 
Добрый день. Никак не могу сообразить простейший запрос к базе (например, получение списка вида топлива) на PHP с помощью WSDL. Может, кто-нибудь может предоставить работающий пример для этого? Никогда раньше не имел дела с WSDL и SOAP. Кстати, в технической спецификации ЕАИСТО указаны некоторые XML-скрипты, которые, как я понял, и нужно отправлять серверу. Заранее огромное спасибо.
 
сдаётся мне и пхп Вы не знаете
 
Я долгое время работал с программированием графики, в которой одна технология - твои знания математики. С сетевыми технологиями я знаком пока мало, согласен. Просто подскажите мне, а я, при удобном обстоятельстве, подскажу Вам.
 
Код: Выделить всё<?
$client = new SoapClient( 'http://host/path/ws/ws1.1cws?wsdl', array('login' => "admin", 'password' => ""));
$params["param1"] = $_POST["PARAM1"];
$result = $client->Funct($params);
?>
И дальше разгребай $result
 
Код: Выделить всё$client = new SoapClient('http://eaisto.gibdd.ru/common/ws/arm_expert.php?wsdl', array('login' => "login", 'password' => "pass"));
$params["param1"] = $_POST["PARAM1"];
$result = $client->ListFuel($params); Да, так я пытался. Вот, что выдает: Fatal error: Uncaught SoapFault exception: [USER_EMPTY] Необходимо указать данные пользователя in test.php:27 Stack trace: #0 test.php(27): SoapClient->__call('ListFuel', Array) #1 test.php(27): SoapClient->ListFuel(Array) #2 {main} thrown intest.php on line 27 [/QUOTE]
 
Цитата
DarkMedveD писал(а):Код: Выделить всё$client = new SoapClient('http://eaisto.gibdd.ru/common/ws/arm_expert.php?wsdl', array('login' => "login", 'password' => "pass"));
$params["param1"] = $_POST["PARAM1"];
$result = $client->ListFuel($params); Да, так я пытался. Вот, что выдает: Fatal error: Uncaught SoapFault exception: [USER_EMPTY] Необходимо указать данные пользователя in test.php:27 Stack trace: #0 test.php(27): SoapClient->__call('ListFuel', Array) #1 test.php(27): SoapClient->ListFuel(Array) #2 {main} thrown intest.php on line 27
[/QUOTE] Дык в параметрах-то и задайте имя пользователя и пароль Код: Выделить всё<?$client = new SoapClient('http://eaisto.gibdd.ru/common/ws/arm_expert.php?wsdl');
$user["Name"] = "test";
$user["Password"] = "test";
$params["user"] = $user;
$result = $client->ListFuel($params);?>
 
Вот спасибо! Все прекрасно работает!
 
Цитата
DarkMedveD писал(а):Вот спасибо! Все прекрасно работает!
ОК. С чем вы раньше работали? У меня очень разноплановые интересы в области программирования...
 
Цитата
ioff83 писал(а):
Цитата
DarkMedveD писал(а):Вот спасибо! Все прекрасно работает!
ОК. С чем вы раньше работали? У меня очень разноплановые интересы в области программирования...
Наверно ДДОСилку сервака пишет...
 
Всем добрый день! Помогите понять из-за чего ошибка вываливается с таким текстом "Сведения о данном ТС уже были переданы сегодня". Соединяемся вроде верно, поиск по вину работает, справочники работают а вот запись карты никак. Код: Выделить всёini_set('soap.wsdl_cache_enabled', '0');
ini_set('soap.wsdl_cache_ttl', '0');
try {
$client_soap = new SoapClient("http://eaisto.gibdd.ru/common/ws/arm_expert.php?wsdl");
$params_register = array(
'user' => array (
   'Name' => "$expert_eaisto_login",
   'Password' => "$expert_eaisto_pass"
),
'card' =>  array(
   'DateOfDiagnosis' => "$date_diag",
   'Name' => "$fname",
   'FName' => "$name",
   'MName' => "$sname",
   'RegistrationNumber' => "$gos_number",
   'TestResult' => "$test_result_eaisto",
   'TestType' => "Primary",
   'Vehicle' => array(
      'Make' => "$marka",
      'Model' => "$model"
   ),
   'VehicleCategory' => "$category_pts",
   'VehicleCategory2' => "$category_okp",
   'BodyNumber' => "$kuzov",
   'FrameNumber' => "$shassi",
   'DateOfRetest' => "$retest_date_eaisto",
   'Year' => "$year",
   'EmptyMas' => "$massa",
   'MaxMass' => "$max_massa",
   'Fuel' => "$fuel",
   'VIN' => "$vin",
   'BrakingSystem' => "$tormoza",
   'Tyres' => "$shiny",
   'Killometrage' => "$probeg",
   'RegistrationDocument' => array(
           'DocumentType' => "$reg_doc",
      'Organization' => "$organ",
      'Date' => "$doc_date_for_eaisto",
      'Series' => "$doc_seria",
      'Foreign' => "$inostr",
      'Number' => "$doc_number"),
   'Values' => array(
      'Code' => "1",
      'TestResult' => "$test_result"
   ),
   'Form' => array(
      'Duplicate' => false,
      'Validity' => "$date_diag_end"
   ),
   'Operator' => array(
      'ShortName' => "$org_short_name",
      'FullName' => "$org_long_name"
   ),
   'Expert' => array(
      'Name' => "$expert_name_eaisto",
      'FName' => "$expert_fname_eaisto",
      'MName' => "$expert_sname_eaisto"
   ),
   )
);
$request_register = $client_soap->RegisterCard($params_register);
$card_id_itog = $request_register->RegisterCardResult;
$dk_number_itog = $request_register->Nomer;
}
catch (SoapFault $exception)
{
$exception->getMessage();
}
 
Наверное транспортное средство действительно уже было передано сегодня в ЕАИСТО. Нет возможности передать два раза за день одну машину.
 
Когда я захожу в еаисто напрямую под учёткой оператора то машины там нет. И пробовали несколько раз свежие авто и ничего. постоянно ошибка.
 
Сервер возвращает в заголовках 500 ошибку. Почему кто-нибудь может подсказать?
 
Ошибку, описанну вами в первом посте последнее время выдает и Е-ТО. Техподдержка Е-ТО ссылается на ЕАИСТО, а техподдержка ЕАИСТО не отвечает. Чувак из Е-ТО говорит, что они к ЕАИСТО отношения не имеют... о.О Также подтверждаю, что дубликатов карт нет. И попытки с 10-й карты таки отправляются. К тому же очень интересует, что случилось с тестовым сервером -- уже месяц бедняга подняться не может...
 
Цитата
linux_fan писал(а):Всем добрый день! Помогите понять из-за чего ошибка вываливается с таким текстом "Сведения о данном ТС уже были переданы сегодня". Соединяемся вроде верно, поиск по вину работает, справочники работают а вот запись карты никак.
Такая ошибка "прилетает" на все, что не нравится ЕАИСТО, и что не прописано ее программистами. На первый взгляд с кодом все хорошо, ищите ошибку в передаваемых данных (не все обязательные поля отправляете, либо формат данных не нравится ЕАИСТО).
 
Цитата
ioff83 писал(а):
Цитата
linux_fan писал(а):Всем добрый день! Помогите понять из-за чего ошибка вываливается с таким текстом "Сведения о данном ТС уже были переданы сегодня". Соединяемся вроде верно, поиск по вину работает, справочники работают а вот запись карты никак.
Такая ошибка "прилетает" на все, что не нравится ЕАИСТО, и что не прописано ее программистами. На первый взгляд с кодом все хорошо, ищите ошибку в передаваемых данных (не все обязательные поля отправляете, либо формат данных не нравится ЕАИСТО).
подтверждаю подводные камни там заложены много где
 
Всем спасибо за ответы, интересная штука нашлась. При регистрации написано что передавать не надо параметр DateOfDiagnosis, но если совсем не передавать то посылает, и если что-то передавать посылает, в итоге надо передавать но пустое значение. Такой документации я ещё нигде не встречал=) А по поводу тестового доступа это вобще подстава. В итоге пишем сразу на промышленную версию.
 
Всем добрый вечер.... Подскажите... передаю в ЕАИСТО ДК посредством PHP через SOAP всё отлично только одна проблема VIN код не хочет передаваться никак... вот кусочек кода Код: Выделить всё$params_register = array(
'user' => array (
   'Name' => $eaisto_login,
   'Password' => $eaisto_pass
),
'card' =>  array(
  'DateOfDiagnosis' => '',
  'Name' => $_POST['field1'],
  'FName' => $_POST['field2'],
  'MName' => $_POST['field3'],
  'RegistrationNumber' => mb_convert_case($_POST['field4'], MB_CASE_UPPER, "UTF-8"),
  'TestResult' => 'Passed',
  'TestType' => 'Primary',
  'Vehicle' => array(
  'Make' => $_POST['field6'],
  'Model' => $_POST['field7']
  ),
  'VehicleCategory' => $catone,
  'VehicleCategory2' => $_POST['field8'],
  'VIN' => mb_convert_case($_POST['field5'], MB_CASE_UPPER, "UTF-8"),
  'BodyNumber' => mb_convert_case($_POST['field13'], MB_CASE_UPPER, "UTF-8"),
  'FrameNumber' => mb_convert_case($_POST['field12'], MB_CASE_UPPER, "UTF-8"),
  'Year' => $_POST['field11'],
  'EmptyMass' => $_POST['field15'],
  'MaxMass' => $_POST['field14'],
  'Fuel' => $_POST['field17'],
  'BrakingSystem' => $_POST['field16'],
  'Tyres' => $_POST['field19'],
  'Killometrage' => $_POST['field18'],
  'RegistrationDocument' => array(
    'DocumentType' => $_POST['field21'],
    'Organization' => $_POST['field26'],
    'Date' => $_POST['field25'],
    'Series' => $_POST['field23'],
    'Foreign' => $frg,
    'Number' => $_POST['field24']),
  'Values' => array(
    'Code' => '1',
    'TestResult' => '0'
  ),
  'Form' => array(
    'Duplicate' => false,
    'Validity' => date_format($date2, 'd.m.Y')
  ),
  'Expert' => array(
    'Name' => 'Pogrebnyakov',
    'FName' => 'Vasiliy',
    'MName' => 'Igorevich'
  )
  )
);
пробовал перехватывать этот массив перед отправкой его в ЕАИСТО там элемент VIN заполнен как положено... 99,9% что ошибка на стороне ЕАИСТО.... Хотя код регистрации мне присылает в ответ и карту регистрирует у себя только без VIN кода Помогите пожалуйста...
 
А там в документации VIN случайно не как Vin должен быть?
 
В документации именно VIN ... Хотя у остальных параметров только первая буква большая.... Но я пробовал и так и так... Не работает
Страницы:1
Ответить
Форма ответов
 
Текст сообщения*
Загрузить файл или картинкуПеретащить с помощью Drag'n'drop
Перетащите файлы
Ничего не найдено
Загрузить картинки
 
Вопросы при работе с php, кто понимает

Мы в социальных сетях: