Перейти к публикации

Пример Интеграции С 1С


Malfarion

Рекомендованные сообщения

8 часов назад, Igor сказал:

По интеграциям есть подробная инструкция: https://zadarma.com/ru/support/instructions/crm-zadarma/

Основная часть интеграции работает на вебхуках, для их приема нужен свой https сервер, который тоже не бесплатен обычно :)

Так что ни за что не платить боюсь не выйдет.

Мы не делаем своей интеграции, так как поддерживать все версии и варианты сборок 1С у нас нет возможности, это точно не работа телефонного оператора.

 

 

Все верно, конфигураций много так как и движков сайтов и срм.  На PHP пример у вас есть, и успешно запущен. Я про другое, неплохо бы было простой пример с авторизацией и отправкой запросов.
С вебхуками - разобрался, все ок. А от формирования подписи - проблема. Не проходит авторизация для отправки запросов.(((

 

Ссылка на сообщение

Именно разработчиков по 1С у нас нет, но спросил у других, вот написали ответ:

 

функций 1С должно хватать

Подпись составляется по следующему алгоритму:

1. массив из передаваемых параметров (GET, POST, PUT, DELETE) сортируется по названию ключа по алфавиту;
2. из полученного массива формируется строка запроса (например, функция http_build_query в PHP), пример "from=DATEFROM&to=DATETO…";
3. и далее - соединяется по формуле: строка = имя_метода строка_запроса md5( строка_запроса ), где "имя_метода" - строка запроса, начиная от домена (с указанием версии АПИ), до начала перечисления параметров, например - '/v1/sip/'
4. полученная строка хешируется по алгоритму sha1 с секретным ключом пользователя: хеш = hash( строка, секретный_ключ )
5. и далее хеш кодируется в base64 подпись = base64_encode( хеш )

Для 1С что-то вроде
1. В 1С нет ассоциативных массивов вроде. поэтому как вариант сделать массив сразу в том формате, который нужен в подписи. Например, первый элемент массива Параметр1=Значение1
Сортируется потом как-то так массив
Список = Новый СписокЗначений; // Подготовительные действия: создание списка значений
Список.ЗагрузитьЗначения(Массив); // Этап 1
Список.СортироватьПоЗначению(НаправлениеСортировки.Возр); // Этап 2
Массив = Список.ВыгрузитьЗначения(); // Этап 3


2. циклом по массиву расставить параметры в нужном порядке в строке, которая должна иметь вид
параметр1=значение1&параметр2=значение2&...&параметрN=значениеN то есть между каждым элементом массива из предыдущего цикла добавить символ &

3. далее получить строку, объединив ИМЯ_МЕТОДА (например, /v1/balance), строку из пункта 2, md5 строки из пункта 2
MD5ХешСтрока

4. далее получение хэша sha1 следующей строки, которая объединяет два параметра: строка из предыдущего пункта и секретный ключ апи клиента
Хеширование = Новый ХешированиеДанных(ХешФункция.SHA1);
Хеширование.Добавить("МояСтрока");
Хеш = Хеширование.ХешСумма;

5. закодировать строку из пункта 4 в base64
примеры функции есть в сети

Функция Base64(ВходящаяСтрока)

   ВременныйФайл = ПолучитьИмяВременногоФайла("base64_txt");
   
   ЗаписьТекста = Новый ЗаписьТекста(ВременныйФайл, "CESU-8");
   ЗаписьТекста.Записать(ВходящаяСтрока);
   ЗаписьТекста.Закрыть();
   
   ДвоичныеДанные = Новый ДвоичныеДанные(ВременныйФайл);
   СтрокаBase64 = Base64Строка(ДвоичныеДанные);
   
   УдалитьФайлы(ВременныйФайл);
   
   Возврат СтрокаBase64;

КонецФункции 

 

Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
×
×
  • Создать...