Имя: Пароль:
1C
1С v8
Интеграция УТ11 с маркетплейсом яндекс
0 ОператорПК
 
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 - что тут не так?
3 yzimin
 
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) что там можно не корректно опубликовать?
7 yzimin
 
06.09.21
16:31
(5)яндекс умеет посылать тестовые запросы, там есть специальный интерфейс, из его личного кабинета и отлаживали
8 yzimin
 
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?
12 yzimin
 
06.09.21
16:41
(10) у нас по https работает с доменным именем и купленным сертификатом, SHA1-отпечаток SSL-сертификата мы не указывали, если вы об этом
13 ОператорПК
 
06.09.21
16:42
(12) да об этом. спасибо.
14 yzimin
 
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) вообще представители яндекса сообщили что "технически" можно без сертификатов работать ("типа дела ваше")
17 unbred
 
06.09.21
16:52
я всегда так проверяю:  
    ssl = Новый ЗащищенноеСоединениеOpenSSL;
    HTTP_Соединение = Новый HTTPСоединение(АдресСайта_( тут имя сайта), Неопределено, Неопределено, Неопределено, Неопределено, Неопределено, ssl);
    Попытка
        HTTP_Соединение.ОтправитьДляОбработки(ОтправляемJSON(тут json с телом запроса), АдресРесурса_( тут апи), ПолучаемJSON(тут json с ответом), Заголовки);
    Исключение
        Сообщить(ОписаниеОшибки());
    КонецПопытки;
    ЧтениеJSON = Новый ЧтениеJSON;
    
    ЧтениеJSON.ОткрытьФайл(ПолучаемJSON);
    
    Данные= ПрочитатьJSON(ЧтениеJSON,Ложь);
хочешь передавай токен, хочешь не передавай.
заголовки задать  2 минуты
18 unbred
 
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

Они разные

суннь второй заврос в фидер что выдаст ?
20 yzimin
 
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бла бла бла в настройках базы есть конечно.
23 yzimin
 
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)а нельзя договориться о "сервисном времени" когда можно обновлять базу? а если отключили от сервиса то восстановить его сложно?
25 yzimin
 
07.09.21
08:54
(24) На время пока ваш сервер не отвечает на запросы, магазин не продаёт. Нам было выгоднее арендовать выделенный сервер, который 24/7 работает, УТ там не обновляем, никакие работы не проводим. Включается магазин, когда начнут проходить ответы от сервера.
26 dark_stealth
 
29.09.21
08:30
У меня с этим модулем еще веселее- отдает 404 ошибку, вроде все делал по их инструкции. Но через личный кабинет при проверке 404, все другие базы опубликованы и работают, претензий к веб-серверу нет. Здесь при обращении к корню публикации - чистая страница, при /cart или /stocks ответ Not found. Модуль не работает ?
27 dark_stealth
 
29.09.21
11:01
все оказалось проще- URL для запросов API в ЛК яндекса = https://vashserver.ru/опубликованная база/hs/URL для запросов API .И сразу все взлетело.
документация конечно написана правой ногой, даже как то странно такое видеть от яндекса
28 dark_stealth
 
29.09.21
11:04
сорри ошибка в url, правильный https://vashserver.ru/опубликованная база/hs/Marketplace_API