Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Интеграция УТ11 с маркетплейсом яндекс

Интеграция УТ11 с маркетплейсом яндекс
Я
   ОператорПК
 
06.09.21 - 13:47
Здравствуйте.

Ситуация такая: есть УТ11 (предпоследний релиз) на платформе 8.3.17.ххх (не совсем подходят друг другу но работает)
с ней нужно настроить обмен заказами через HTTP маркетплейс яндекса.
У яндекса есть подсистема (в расширение пихается) для этого https://yandex.ru/support/marketplace-module-1c/install.html (она установлена в УТ11).
В подсистеме есть HTTP сервис Беру_ПолучениеЗаказовПоAPI_1_7_31 - через него собственно предпологается вся работа...
Учитывая что есть негативный опыт публикаций WEB-сервисов расширений
(а имеено как только web-сервис перекачевывает из расширения в основную конфигу он прекрасно начинает работать хотя до этого отказывается) из расширения
HTTP сервис Беру_ПолучениеЗаказовПоAPI_1_7_31 перенесен в основную конфигу и переименован в HTTP сервис Беру_ПолучениеЗаказовПоAPI_1_7_31_
его корневой URL также с Marketplace_API переименован в Marketplace_API_.
Выполнена инструкция яндекса https://yandex.ru/support/marketplace-module-1c/service.html по публикации и корректировке файла публикации
(в основном это касается доступа пользователя Service).
Для тестировани я работы HTTP сервиса используется спец. прога http://www.telerik.com/fiddler т.к. она была посоветована например
тут https://its.1c.ru/db/metod8dev/content/5756/hdoc    
ИТОГО при тестировании через прогу:
Запрос http://127.0.0.1/UT11HTTP/
все определяет норм и в ответ рисует что то в духе:
<!DOCTYPE html>
<html>
<head>
    <title>1С:Предприятие</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <link rel="shortcut icon" href="e1csys/mngsrv/favicon.ico" />
<style type="text/css">
BODY...
и далее идет вполне приличное BODY...
А вот запрос
http://127.0.0.1/UT11HTTP/hs/Marketplace_API_/getyml?НомерКампании=21990000
который сформирован по примеру из
//its.1c.ru/db/metod8dev/content/5756/hdoc
возвращает матершину типа :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>1C:Enterprise 8 application error</title></head><body><h2>1C:Enterprise 8 application error:</h2>Ошибка в строке соединения с информационной базой.</body></html>
Может есть кто интегрировался я яндексом и есть рабочий запрос?

p.s. код процедуры для шаблона URL "getyml" (к которому идет обращение) максимально упрощен после переноса в основную конфигу до:
Ответ = Новый HTTPСервисОтвет(400);
Ответ.УстановитьТелоИзСтроки("У текущей кампании в настройках 1С указана модель работы FBS. Для получения файла необходимо установить модель работы DBS.");
Возврат Ответ;
   Ёпрст
 
1 - 06.09.21 - 15:13
(0) Ошибка в строке соединения с информационной базой

вроде всё предельно по-русски написано, не ?
   ОператорПК
 
2 - 06.09.21 - 15:17
(1) ага, только в чем ошибка то? Я все предельно на Аглицком написал http://127.0.0.1/UT11HTTP/hs/Marketplace_API_/getyml?НомерКампании=21990000 - что тут не так?
   yzimin
 
3 - 06.09.21 - 16:12
И всё-таки попробуйте использовать веб-сервис из расширения этого модуля. У нас работает с начала года без проблем
   Вафель
 
4 - 06.09.21 - 16:14
некорректно опубликован сервис
   ОператорПК
 
5 - 06.09.21 - 16:29
(3) с этого и начинал... не от хорошей жизни как говориться стал переносить из расширения в основную. вы чем тестировали работу этого HTTP сервиса? не сохранилось рабочего запроса?
   ОператорПК
 
6 - 06.09.21 - 16:30
(4) что там можно не корректно опубликовать?
   yzimin
 
7 - 06.09.21 - 16:31
(5)яндекс умеет посылать тестовые запросы, там есть специальный интерфейс, из его личного кабинета и отлаживали
   yzimin
 
8 - 06.09.21 - 16:33
(7) +там же можно посылать тестовые заказы, самопроверка
   Вафель
 
9 - 06.09.21 - 16:33
(6) >>Ошибка в строке соединения с информационной базой
   ОператорПК
 
10 - 06.09.21 - 16:35
(7) понятно.... хотел сперва "локально" все чтоб работало отладить потом уже выпускать "наружу"... если не секрет сертификат безопасности ставили?
   ОператорПК
 
11 - 06.09.21 - 16:36
(9) это написано прямо в (0).... вопрос в том и есть: что некорректно в моем запросе http://127.0.0.1/UT11HTTP/hs/Marketplace_API_/getyml?НомерКампании=21990000?
   yzimin
 
12 - 06.09.21 - 16:41
(10) у нас по https работает с доменным именем и купленным сертификатом, SHA1-отпечаток SSL-сертификата мы не указывали, если вы об этом
   ОператорПК
 
13 - 06.09.21 - 16:42
(12) да об этом. спасибо.
   yzimin
 
14 - 06.09.21 - 16:42
(11) а авторизационный токен в запросе передаёте? Точкой остановки вообще попадаете в отладку? А то может у вас сам веб-сервис даёт отлуп
   ОператорПК
 
15 - 06.09.21 - 16:49
(14) "авторизационный токен в запросе передаёте" - нет, а разве это нужно в данном случае? Тут например https://its.1c.ru/db/metod8dev/content/5756/hdoc  про это вроде как нет ничего. Точкой останова в отладку не попадает... не доходит до этого.
   ОператорПК
 
16 - 06.09.21 - 16:50
+(14) вообще представители яндекса сообщили что "технически" можно без сертификатов работать ("типа дела ваше")
   unbred
 
17 - 06.09.21 - 16:52
я всегда так проверяю:  
    ssl = Новый ЗащищенноеСоединениеOpenSSL;
    HTTP_Соединение = Новый HTTPСоединение(АдресСайта_( тут имя сайта), Неопределено, Неопределено, Неопределено, Неопределено, Неопределено, ssl);
    Попытка
        HTTP_Соединение.ОтправитьДляОбработки(ОтправляемJSON(тут json с телом запроса), АдресРесурса_( тут апи), ПолучаемJSON(тут json с ответом), Заголовки);
    Исключение
        Сообщить(ОписаниеОшибки());
    КонецПопытки;
    ЧтениеJSON = Новый ЧтениеJSON;
    
    ЧтениеJSON.ОткрытьФайл(ПолучаемJSON);
    
    Данные= ПрочитатьJSON(ЧтениеJSON,Ложь);
хочешь передавай токен, хочешь не передавай.
заголовки задать  2 минуты
   unbred
 
18 - 06.09.21 - 16:54
+ (17)  ПолучаемJSON - просто пустой временный файлик
   Смотрящий
 
19 - 06.09.21 - 16:57
ИТОГО при тестировании через прогу:
Запрос http://127.0.0.1/UT11HTTP/
....
А вот запрос
http://127.0.0.1/UT11HTTP/hs/Marketplace_API_/getyml?НомерКампании=21990000

Они разные

суннь второй заврос в фидер что выдаст ?
   yzimin
 
20 - 06.09.21 - 16:58
(15) нужно в заголовках передать токен авторизации обязательно, безопасность же)
для вас из логов вытащил, знаю, какой это гемор)))

URL
https://НАШ_АДРЕС_СЕРВЕРА/hs/Marketplace_API/order/status
Параметры
auth-token=B900000блаблабла - токен, который указан в ЛК яндекса, он так же должен быть прописан в модуле расширения от яндекса
Сам запрос
POST НАШ_АДРЕС_СЕРВЕРА/hs/Marketplace_API/order/status HTTP/1.1
Content-Type: application/json;charset=utf-8

В тело передаётся XML
   ОператорПК
 
21 - 06.09.21 - 17:03
(20) про "order"
вот их ответ:
Да, вы можете настроить передачу данных по API без  SSL  сертификата.
Также обращаю внимание, есть запросы которые выполняются только со стороны маркета, сами вы их инициировать не сможете.

/stocks
/cart
/order/accept
/order/status

короче завтра уже буду пробовать с их сайта (личного кабинета) тестить. по вашему совету из (7).
Всем спасибо.
   ОператорПК
 
22 - 06.09.21 - 17:06
+(21) токен AQAAAABXWjvYAбла бла бла в настройках базы есть конечно.
   yzimin
 
23 - 06.09.21 - 17:12
(21) К сабжу не особо относится...Самое противное, что мы должны ответить яндексу за 5.5 секунд на остатки https://yandex.ru/dev/market/partner-marketplace-cd/doc/dg/reference/post-cart.html

или 10 сек на статус заказа https://yandex.ru/dev/market/partner-marketplace-cd/doc/dg/reference/post-order-status.html

и если не обеспечиваешь требуемый уровень сервиса, то они отключают наш магазин. В итоге ни УТ не обновить, ни какие-то вечерние регламенты не выполнить. Пришлось под яндекс отдельную базу УТ делать с минимальными данными.
   ОператорПК
 
24 - 06.09.21 - 17:14
(23)а нельзя договориться о "сервисном времени" когда можно обновлять базу? а если отключили от сервиса то восстановить его сложно?
   yzimin
 
25 - 07.09.21 - 08:54
(24) На время пока ваш сервер не отвечает на запросы, магазин не продаёт. Нам было выгоднее арендовать выделенный сервер, который 24/7 работает, УТ там не обновляем, никакие работы не проводим. Включается магазин, когда начнут проходить ответы от сервера.


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.