Получение данных из Web-сервиса 1С в php, с авторизацией логином и паролем на кириллице

01.08.19

Интеграция - WEB-интеграция

В рамках задачи получения данных из 1С средствами web-сервиса, часто возникает потребность авторизации на web-сервисе под учетными данными уже существующих пользователей. Но так как "логины" и "пароли" уже занесены в кириллической раскладке, возникает ошибка авторизации, в то время как логины в латинской раскладке работают корректно. Это возникает из-за того что кодировка текста (логина и пароля) отличается от той что понимает web-сервис 1С (UTF-8).

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
получение данных из Web-сервиса 1С в php, с авторизацией логином и паролем на кириллице:
.zip 0,81Kb
3 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Для решения данной проблемы, необходимо при создании экземпляра класса "SoapClient" в "stream_context" передать "правильный" заголовок с данными авторизации "Authorization".

Формирование "правильной" строки авторизации: 

$base64LoginData = base64_encode(iconv(mb_detect_encoding($login, mb_detect_order(), true), "UTF-8", $login).":".iconv(mb_detect_encoding($password, mb_detect_order(), true), "UTF-8", $password)); 

В прикрепленном файле находится пример PHP класса, который выполняет авторизацию и вызов метода web-сервиса с возвратом данных в формате JSON.

 
 Пример использования

 require('web_service.php');

$_SESSION["login"] = "Администратор";
$_SESSION["password"] = "йцукен";

$dataArray = array("Name" => "Имя1", "Data" => "Значение1");
$jsonString = json_encode($dataArray, JSON_UNESCAPED_UNICODE);    
$soapResult = $ws_client->call("GetData", array("RefListMod" => $_POST['sys_lref'], "Ref" => $_POST['sys_ref'], "Data" => $jsonString));

if ($soapResult["result"])
{
    $soapString = str_replace("\n", "", $soapResult["data"]->return);
    $jsonData = json_decode($soapString);
}

 

Вступайте в нашу телеграмм-группу Инфостарт

PHP SOPA WSDL авторизация ошибка

См. также

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь 1С:Предприятие 8 1C:Бухгалтерия 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM / LOGICSTARS. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM / LOGICSTAR разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    22228    32    24    

26

SALE! 15%

WEB-интеграция Программист Бизнес-аналитик 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика ИТ-компания Платные (руб)

Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.

17280 14688 руб.

20.12.2024    4411    22    4    

23

WEB-интеграция Программист Руководитель проекта 1С:Предприятие 8 1C:Бухгалтерия 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки. Основные преимущества: 1. Документация API создаётся автоматически. Удобна для программной обработки. 2. Изменить API столь же просто как настроить отчёт. Можно опубликовать существующий вариант отчёта. 3. Отчёты в API поддерживают параметры (Период, ДатаНачала и др.) 4. При создании простых методов не требуется изменять конфигурацию. 5. Поддерживается работа с планами обмена.<br/> 6. Возможно настроить отправку из 1С данных корреспондирующей системе, для случаев когда 1С сама "знает" какие данные нужно отправить. 7. После записи в 1С Ле Мурр может возвращать соответствие полученных идентификаторов созданным в 1С объектам данных.

36000 руб.

27.09.2024    10234    7    5    

11

WEB-интеграция Программист 1С:Предприятие 8 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разработана для автоматизации передачи данных между сервисом Vetmanager с 1С: Бухгалтерия 3.0. Решение позволяет загружать документы и справочники из Ветменеджер в 1С:Бухгалтерию, сокращая время на ручной ввод данных и минимизируя ошибки.

12000 руб.

02.02.2021    20986    61    52    

38
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. pawellkrv 29 06.02.25 16:56 Сейчас в теме
А вызов в командной строке как сделать, чтобы запрашивало авторизацию
Для отправки сообщения требуется регистрация/авторизация