1С:Альфа-Авто: обмен с WordPress-сайтом. Часть 2. REST API. Авторизация

12.09.18

Интеграция - Сайты и интернет-магазины

Автоматический обмен данными между 1С:Альфа-Авто и сайтом WordPress в формате JSON. Авторизация и получение данных посредством REST API WordPress'a.

Скачать файл

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

Наименование По подписке [?] Купить один файл
1С:Альфа-Авто: обмен WordPress-сайтом. Часть 2. REST API. Авторизация.:
.epf 25,13Kb
13
13 Скачать (3 SM) Купить за 2 450 руб.

Преамбула.

По моему скромному мнению, самым актуальным и перспективным форматом обмена данными в интернете является JSON, а механизм использующий его - REST API, который позволяет обмениваться данными в режиме реального времени. На текущий момент 1С не дает механизмов обмена данными с сайтом "онлайн", только через выгрузку-загрузку (поправьте, если не прав). По крайней мере перелопатив кучу информации в Интренете, почитав описания разных обработок для 1С по обмену с сайтом, ничего интересного и  связанного с REST API не нашел.

REST API.

Что это такое описывать не буду, информации в интернете много. В частности, что касается REST API WordPress, всё прочитанное в интернете оказалось, мягко говоря, устаревшим, даже в англоязычном сегменте. Даже описания разработчиков не "блещут". Самым трудным оказалась авторизация/аутентификация на сайте. Разработчики WordPress REST API расширяют и совершенствуют, а механизма авторизации/аутентификации нет. Приходилось пробовать сторонние плагины, которые в подовляющем большинстве тоже оказались устаревшими. Но, кто ищет, то всегда найдет. Этим найденным оказался плагин с аутентификацией по JWT (аутентификация с помощью JSON Web Token'а). Бесплатный, автор поддерживает и развивает, и самое главное его использование не составило большого труда.

Принцип работы.

Вашему вниманию предлагаю обработку, которая позволяет авторизоваться на сайте WordPress и получать данные с сайта посредством REST API в онлайн режиме. Огромная благодарность Александр Леонов (leongl) за его обработку Консоль HTTP-запросов с генерацией кода (ссылка), которая очень помогла и съэкономила мне кучу времени. В моей обработке процентов 80 кода взято оттуда.

***Внимание!! Данная обработка тестировалась на конфигурации 1С Альфа-Авто:Автосервис+Автосалон. Для работы с другими необходимо адаптировать!!!

***Для работы необходим сайт с HTTPS, простой HTTP работать не будет. Так как, по моему скромному мнению, HTTP уже давно не актуально, механизмы для авторизации устарели, да к тому же оказались намного сложнее.

  1. Аутентификация на сайте по JWT протоколу и получение токена. Требования: логин и пароль !! пользователя WordPress !! (рис.2)
  • На вкладке "Заголовки" (Headers) параметры заполняются автоматически.
  • На вкладке "Параметры Body" необходимо внести логин и пароль пользователя WordPress.
  • Заполните поле адрес сайта.

Нажать кнопку "Получить токен".

В случае успешной аутентификации заполняется поле "Текущий токен" и "Токен действителен до". Результат выполнения запроса можно посмотреть на вкладке "Запрос/результат" (рис.3). Прочитать ответ можно на вкладке "Объект JSON" нажав кнопку "Прочитать JSON_ответа".

Для получения данных от сайта введите строку запроса в формате REST API WordPress (или воспользуйтесь вкладкой "Типовые запросы РЕСТ АПИ") и нажмите кнопку "Послать запрос". Результат выполнения запроса можно посмотреть на вкладке "Запрос/результат" (рис.4). Прочитать ответ можно на вкладке "Объект JSON" нажав кнопку "Прочитать JSON_ответа".

2. Получение данных из WooCommerce. Требования: "пользовательский ключ" и "секретный код пользователя" WooCommerce !! (рис.5)

  • Получите токен согласно п.1.
  • Введите "пользовательский ключ" и "секретный код пользователя" WooCommerce в соответствующие поля.
  • Заполните поле адрес сайта.
  • Нажмите кнопку "Послать запрос".

 Результат выполнения запроса можно посмотреть на вкладке "Запрос/результат". Прочитать ответ можно на вкладке "Объект JSON" нажав кнопку "Прочитать JSON_ответа".

****Внимание!! Если в процессе расшифровки JSON на вкладке "Объект JSON" нажав кнопку "Прочитать JSON_ответа" получаете ошибку как на рисунке.

То знайте, формат ответа ПРАВИЛЬНЫЙ, это подтверждается онлайн декодерами в интернете, они всё правильно отображают. Проблема в 1С, она почему-то считает присланный формат неверным.

На вкладке "Дерево настроек" можно сохранить/восстановить настройки, что бы каждый раз не вводить логины/пароли заново.

Обработка делалась "под себя" и не является законченным решением, прошу не пинать за "правильность и красоту" кода 1С.

Резюме.

С помощью данной обработки мы получаем доступ из 1С Альфа-Авто в мир REST API WordPress. Дело осталось за малым, правильно читать ответы от сайта, ну и соответственно публиковать данные на сайте.

Тестировалось на моем сайте: перейти.

Версия WordPress : 4.9.8

Версия базы данных WooCommerce: 3.4.4

MySQL Версия : 5.6.39-83.1

PHP Версия : 7.1.18

Обработка тестировалась:

Платформа: 1С:Предприятие 8.3 (8.3.10.2639)

Конфигурации: Альфа-Авто: Автосалон+Автосервис+Автозапчасти ПРОФ, редакция 5.1.

Здравая критика приветствуется.

С удовольствием выслушаю предложения и пожелания.

обмена данными Альфа-Авто обмен с сайтом

См. также

Сайты и интернет-магазины Платформа 1С v8.3 1С:Розница 2 Розничная и сетевая торговля (FMCG) Россия Платные (руб)

Готовое интеграционное решение для оплаты покупок Долями в 1C:Розница 2.3. Реализовано в виде расширения. Интеграция сервиса dolyame.ru для приема платежей в рассрочку. Поддерживает работу от разных юридических лиц. Работа: в составе РИБ, отдельно от РИБ, тонкий, толстый клиент, web-клиент (через интернет-браузер).

20400 руб.

19.12.2023    4320    29    9    

28

СБП. Оплата по QR-коду Сайты и интернет-магазины Программист Платформа 1С v8.3 Конфигурации 1cv8 Автомобили, автосервисы Россия Бухгалтерский учет Управленческий учет Платные (руб)

В настоящее время система СБП очень часто стала использоваться в повседневной жизни. Одна из систем интеграции СБП через СБЕР. Данная конфигурация является инструментом интеграции СБП в Альфа Авто. Данная система не просто формирует статический QR, а динамический, а значит, в системе будет привязка и на покупателя, и на документ.

6000 руб.

25.10.2022    6181    31    4    

10

Оптовая торговля Розничная торговля Сайты и интернет-магазины Программист Платформа 1С v8.3 Оперативный учет 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

ВАЖНО: расширения не предназначены для модуля обмена Битрикс 8.х. Полный список ограничений см. ниже в разделе ОГРАНИЧЕНИЯ. Расширение предназначено для выгрузки на сайт Битрикс сопутствующих товаров, аналогов, рекомендованных и прочих связанных товаров.

3600 руб.

25.07.2018    45755    87    77    

95

Сайты и интернет-магазины Программист Пользователь Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Платные (руб)

Данный модуль предоставляет возможность выгружать заказы из 1С: Управление торговлей 11 версии в "MEASOFT" (ранее "Курьерская служба 2008").

9600 руб.

27.04.2022    11308    19    3    

10
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Timur.V 79 12.09.18 15:04 Сейчас в теме
На текущий момент 1С не дает механизмов обмена данными с сайтом "онлайн", только через выгрузку-загрузку (поправьте, если не прав).

Можно на стороне сайта сделать http-сервис
и из 1с обращаться к нему (1с битрикс - совсем не обязателен)

Из не совсем правильных способов, можно подключиться к базе mysql и писать сразу в таблицы.
2. osivv 269 12.09.18 15:49 Сейчас в теме
Это и есть REST API. Моей целью является создание обработки без вмешательства в конфигурации 1С и механизмы сайта, использующие штатные/типовые механизмы и той и другой стороны.
3. Alien_job 190 12.09.18 19:02 Сейчас в теме
"Проблема в 1С, она почему-то считает присланный формат неверным" - при чтении json можно указать чтобы он парсился не в структуру а в соответствие. Эта ошибка уйдет.
1С не считает формат неверным а считает что нельзя в ключе структуры использовать двоеточие ( "wp:post_type" ), о чем явно пишет
4. osivv 269 13.09.18 09:35 Сейчас в теме
Спасибо за совет, воспользуюсь.
5. compreSSor 10 08.10.18 23:32 Сейчас в теме
при открытии обработки выдаёт:

{ВнешняяОбработка.RestAPI_Соединение.Форма.Форма.Форма(595,35)}: Процедура или функция с указанным именем не определена (СтрНайти)
СтрокаBase64Строка=Лев(Строка1, <<?>>СтрНайти(Строка1,Символы.вк)-1)+СтрРазделить(Строка1,Символы.ПС,)[1];
{ВнешняяОбработка.RestAPI_Соединение.Форма.Форма.Форма(595,67)}: Процедура или функция с указанным именем не определена (СтрРазделить)
СтрокаBase64Строка=Лев(Строка1, СтрНайти(Строка1,Символы.вк)-1)+<<?>>СтрРазделить(Строка1,Символы.ПС,)[1];

вроде как ничего страшного, но нет этих 2-х функций
6. compreSSor 10 09.10.18 00:23 Сейчас в теме
а вот теперь прочитал описание и понял - код этих 2-х функций - в студию ))
7. osivv 269 09.10.18 22:48 Сейчас в теме
Здравствуйте, это функции из встроенных 1С, замена устаревшей Найти, поиск подстроки в строке, можно смело заменить СтрНайти на Найти.
1С почему-то кодирует в Base64 с переводом строки, а нужна целая строка, поэтому приходится склеивать.
8. compreSSor 10 10.10.18 11:02 Сейчас в теме
9. BotMan4 15 08.04.19 22:58 Сейчас в теме
***Для работы необходим сайт с HTTPS, простой HTTP работать не будет. Так как, по моему скромному мнению, HTTP уже давно не актуально, механизмы для авторизации устарели, да к тому же оказались намного сложнее.


Будет работать без всяких проблем и заморочек, если установить плагин "Basic-Auth-master"
Прикрепленные файлы:
Basic-Auth-master.zip
Оставьте свое сообщение