Работа с AliExpress через API

23.10.20

Интеграция - Маркетплейсы

В публикации опишу подход работы с API AliExpress и примеры кода.

Скачать файл

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

Наименование Бесплатно
AliExpress.postman_collection.json
.json 5,08Kb
165
165 Скачать бесплатно

Вводные

1. Конфигурация на 1С 8.3 с каталогом товаров

2. Нужно выгрузить данные в аккаунт AliExpress с картинками и описанием

3. Документация https://developers.aliexpress.com/en/doc.htm?docId=108970&docType=1

Реализация

Создание приложения на стороне AliExpress

Для регистрации как разработчик нужно иметь аккаунт продавца. Для регистрации нужно перейти на https://console.aliexpress.com Сам регистрировался как Self developer, различия можно почитать в документации. регистрация проходит 2-3 дня после чего на почту (может отличаться от почты аккаунта продавца) приходит уведомление.

В админ консоли после добавления приложения нужно в его настройках указать сайт ответа для получения ключа. Нужно для последующего получения ключа.

 

Получение ключа доступа

Ключ получается на магазин, поэтому сначала нужно авторизоваться в браузере под нужным магазином.

После перейти по ссылке получения ключа 

https://oauth.aliexpress.com/authorize?response_type=code&client_id={AppKey}&redirect_uri={CallbackUrl}
&state=1212&view=web&sp=ae

Отобразится страница разрешения доступа, при подтверждении которой будет сделан перевод на страницу формата

{CallbackUrl}?code={code}&state=1212

Поле нужно получить токен доступа API, для Self Developer он выдается на год.

Описание формата получения на странице https://developers.aliexpress.com/en/doc.htm?docId=108969&docType=1

Пример

 

 

 

 

 

 

 

 

 

При успешном запросе получаем JSON с "access_token", который в дальнейшем будем использовать в запросах

 

Запросы к сервису

Все запросы делаю через POST, формат по смыслу похож на SOAP. Формат "application/x-www-form-urlencoded".

 
 Получение списка категорий.

 

В параметрах используется набор стандартных параметров, в том числе текущая дата, при обработке проверяется разность времени.

 
 Таблица стандартных параметров

 

При формировании тела запроса формируется подпись "sign", которая является хешем сериализованного отсортированного массива параметров с оберткой в SecretKey. Ключ image_bytes пропускается, так как он используется в отправки картинок и содержит двоичные данные.

 
 Формирование подписи и тела запроса

 

При наличии символа "&" и подобных в строках запроса (наименование товара, описание товара) проверка на sign не проходит. Решение:

 
 В_JSON_СимволыВнеASCII

 

Обработка ответа

В ответе может быть несколько вариантов ошибки.

1. Выраженные через код состояния

2. При коде состояния 200 определенного формата массив ответа.

 
 Запрос с обработкой ошибки

 

Отправка файлов

Используется POST с "Content-Type", "multipart/form-data;charset=utf-8;boundary="

 
 Функция отправки картинки

 

"Склейка" тела запроса реализована по принципу предложенным Сергеем Ожерельевым //infostart.ru/public/20017/

 
 Улучшенный вариант через потоки

 

Итог

Рабочее API со своими требованиями и ограничениями.

На момент публикации была ошибка создания группы товаров (не путать с категориями), ответ от техподдержки пришел через две недели, нужно заново проверять.

Проект на GitHub https://github.com/malikov-pro/taobao_sdk_1c

 

UPD_1: Добавил коллекцию postman для удобного тестирования работы сервиса, подход описан в //infostart.ru/1c/articles/1282851/.

UPD_2: Добавил ссылку на репозиторий с транспортом

UPD_3: Добавил вариант склейки через потоки

 

Благодарю за внимание.

Обмен API AliExpress

См. также

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

Расширения позволяют взаимодействовать с личными кабинетами маркетплейсов WILDBERRIES, ОЗОН, ЯНДЕКС.МАРКЕТ и СБЕРМЕГАМАРКЕТ по схеме: FBS. Основным приоритетом в данной разработке является простота запуска и использования, а также увеличение скорости сборки и обклейки стикерами заказов при больших объемах отгрузок.

58800 руб.

22.03.2021    216685    1486    1816    

674

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

Расширение интеграции с маркетплейсами позволяет управлять своими аккаунтами ведущих маркетплейсов по принципу одного окна из своей базы 1С для УНФ, УТ, КА, ERP. Единый интерфейс работы для всех площадок. Отправка остатков по сопоставленным товарам по расписанию, гибкая настройка отправки.

49800 руб.

23.01.2023    40595    500    196    

160

Маркетплейсы Программист Пользователь Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Розничная и сетевая торговля (FMCG) Россия Управленческий учет Платные (руб)

Готовая интеграция и синхронизация с Озон ,Вайлдберриз и ЯндексМаркет для обычных форм. Конфигурация встраивается в типовую УТ10.3, КА 1.x, УПП 1.3 или самописные конфигурации. Программа осуществляет выгрузку карточек товаров в ОЗОН/Wildberries, загрузку и синхронизацию ранее загруженных в ОЗОН/Wildberries/ЯндексМаркет карточек с номенклатурой в 1С, гибкую настройку синхронизации по номенклатуре, характеристикам, сериям и единицам измерения, а также загрузку отправлений ОЗОН/ Сборочных заданий Wildberries/Заказов ЯндексМаркет и создание на их основании документов в 1С и управление статусами отправлений ОЗОН/ Сборочных заданий Wildberries/Заказов ЯндексМаркете. Два варианта документооборота: Заказ покупателя - Реализация и Внутренний заказ - Перемещение - Реализация. Минимальная платформа 8.3.10. С 09.01.2025г. планируется повышение цен обновления на 20%

28800 руб.

12.05.2021    96607    674    273    

299

Маркетплейсы Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Оптовая торговля, дистрибуция, логистика Ювелирная промышленность и торговля Фармацевтика, аптеки Легкая промышленность, мода и одежда Пищевая промышленность Бухгалтерский учет Налоговый учет Управленческий учет Платные (руб)

Расширение позволяет работать из 1С с площадкой Wildberries (Авторизированный сервис Wildberries), Яндекс Маркет (без публикации базы), СберМегамаркет по Схеме FBS и FBO. В FBO реализован механизм сборки коробов по штрих кодам в Wildberries. Отличительная особенность легкая настройка и информативный управленческий учет! Всего через 15 минут вы сможете полностью автоматизировать свои продажи на WB, ЯМ, Мегамаркет и узнать какую итоговую выручку вы получаете за вычетом всех комиссий ВБ, ЯМ, Мегамаркет. Исключите штрафы за продажу товара отсутствующего на складе и не своевременную передачу кодов маркировок, легкий и интуитивно понятный интерфейс позволит перенести всю работу с площадкой в 1С. Есть Демо.

39900 руб.

17.07.2023    11816    56    20    

41

SALE! 20%

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

Полноценный обмен со всеми маркетплейсами: МегаМаркет, Wildberries, Яндекс.Маркет, OZON, VK, ALI, Авито. Так же подключили сервис Dostavista, автоматическая отправка заказов на доставку. Данный модуль позволяет полностью интегрировать 1С:УТ11.4/11.5, 1С:КА 2.4/2.5 и 1С:ERP 2.4/2.5 по API с Wldberries, Яндекс.Маркет, OZON, ALI, VK и МегаМаркет. 1С:Розница 2.3/УНФ 1.6 и выше с МегаМаркет. Схемы работы: ВИТРИНА + ДОСТАВКА, ЗАКАЖИ И ЗАБЕРИ + ВИТРИНА, ДОСТАВКА СИЛАМИ ПРОДАВЦА, ЭКСПРЕСС-ДОСТАВКА. Модуль зарегистрирован в Реестре программного обеспечения, а также являемся технологическими партнерами МегаМаркет, что говорит о гарантиях использования решения.

60000 руб.

09.10.2020    56240    120    82    

118

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

Функциональное решение для торговли на всех популярных маркетплейсах. Работает со схемами FBO и FBS. Простое в использовании и установке, не вносит изменения в код программы. Существенно упрощает работу с товарным ассортиментом, обработку заказов с площадок, работу с поставками, а также ведение аналитики по продажам и остаткам.

119999 руб.

19.07.2024    2140    54    0    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. aximo 2102 23.06.20 17:43 Сейчас в теме
И давно у них там подобное имеется? А выгрузить что-то определенное можно по апи? Смотрели?
2. malikov_pro 1325 23.06.20 18:34 Сейчас в теме
(1) Для клиента реализована выгрузка товаров с картинками в привязке к категориям + пакетом цены остатки. В статье описал основу.
53. пользователь 03.11.21 15:39
Сообщение было скрыто модератором.
...
3. thd007 24.06.20 10:15 Сейчас в теме
"Итог
Рабочее API со своими требованиями и ограничениями" - А как его купить?
4. malikov_pro 1325 24.06.20 10:19 Сейчас в теме
(3) Пишите в личные сообщения, решим.
5. ilias1210 30.06.20 21:00 Сейчас в теме
(4) Добрый день. Мне не написать Вам в личные сообщения первым. Меня тоже интересует данная работа.
33. yzimin 04.06.21 09:02 Сейчас в теме
(4)
Пишите в личные сообщения, решим


Добрый день! Нас тоже заинтересовало. Нужно, что бы вы первые в ЛК написали)
63. aleonov 18.04.22 16:10 Сейчас в теме
(4)тоже хотел бы связаться
6. killnoob 13.07.20 18:13 Сейчас в теме
Доброго времени суток! Тоже интересует, не могу написать в л.с.
7. alexr&d2006 26.07.20 12:43 Сейчас в теме
Как получить полный код?
8. пользователь 07.08.20 10:14
Сообщение было скрыто модератором.
...
9. roman-1c 25.08.20 15:27 Сейчас в теме
Добрый день! Также интересует данная обработка
10. user1459374 05.09.20 22:01 Сейчас в теме
Добрый день! Также интересует , отпишитесь .
11. YoungHero 23.09.20 20:33 Сейчас в теме
Подскажите пожалуйста про callback url
Что туда нужно ввести?
Закончились идеи)
12. malikov_pro 1325 23.09.20 21:00 Сейчас в теме
(11) адрес сайта, по идее вашего, на него идет перенаправление, можно и сайт заглушку, https://postman-echo.com например.
При получении ключа так же его указать нужно.
req post https://oauth.aliexpress.com/token -> res 302 Location callback url/code=...
13. YoungHero 24.09.20 07:59 Сейчас в теме
(12) Это было не обязательно. Подробнее в личке могу рассказать)
22. user1450803 18.12.20 09:08 Сейчас в теме
(13) не могу вам написать в личные сообщения, не могли бы вы рассказать?
14. Angel_19 6 22.10.20 12:09 Сейчас в теме
Доброго.

Все запросы делаю через POST, формат по смыслу похож на SOAP. Формат "application/x-www-form-urlencoded"


Можете подсказать как верно формировать заголовки и тело?
15. malikov_pro 1325 22.10.20 15:26 Сейчас в теме
(14) Формирование тела в статье под спойлером "Формирование подписи и тела запроса"

Из заголовоков "Content-Type: application/x-www-form-urlencoded"

Пример запроса в Postman collection AliExpress.postman_collection.json

Отдельно модуль транспорта на 1С сделан, согласую, выложу в паблик думаю.
16. Angel_19 6 22.10.20 16:12 Сейчас в теме
При работе с POST запросом, данные запроса передаю вместе с адресом ресурса.
Т.е. что-то вроде этого:

HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса+"?"+стрДанныеДляЗапроса, Заголовки);


Проблема в том, что пока длинна запроса маленькая, то все норм, как только длинна становится большая я пробую данные передавать через тело запроса, что-то вроде этого:

HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, Заголовки);
HTTPЗапрос.УстановитьТелоИзСтроки(стрДанныеДляЗапроса);


Вот тут и начинаются проблемы, получаю ошибку:

Код: 25, описание: Invalid signature


Хотя код формирования не меняется кроме работы с HTTPЗапрос. Вот и не пойму что делаю не так.
17. Angel_19 6 22.10.20 17:06 Сейчас в теме
Разобрался почему не работало, нужно делать так:

HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, Заголовки);
HTTPЗапрос.УстановитьТелоИзСтроки(стрДанныеДляЗапроса,,ИспользованиеByteOrderMark.НеИспользовать);


Иначе при установки строки как тело запроса, 1с перед текстом вставляет маркер кодировки (EF BB BF).
85. djslon16 07.11.23 21:26 Сейчас в теме
(17)
ИспользованиеByteOrderMark

Спасибо, вот это мне помогло !
18. malikov_pro 1325 23.10.20 06:45 Сейчас в теме
(17) Обновил публикацию, в репо реализация транспорта с использованием HTTPКоннектор
19. Angel_19 6 26.10.20 15:28 Сейчас в теме
Отправка картинок.
Используется POST с "Content-Type", "multipart/form-data;charset=utf-8;boundary="


Подскажите как формировать части тела?
В том плане что все параметры делать отдельными частями, разделенными разделителем?

Или будут две части: основная (в которой все параметры кроме image_bytes) и вторая часть с файлом (image_bytes)?
20. malikov_pro 1325 26.10.20 15:31 Сейчас в теме
(19) Вариант решения описан в статье https://infostart.ru/1c/articles/1292904/
"Или будут две части: основная (в которой все параметры кроме image_bytes) и вторая часть с файлом (image_bytes)?" - да, так
image_bytes использовал как переменную для временного хранения картинки
21. user1450803 07.12.20 12:44 Сейчас в теме
добрый день! интересует готовый результат, не могу написать в лс
23. malikov_pro 1325 18.12.20 17:13 Сейчас в теме
(22) Предполагается что запрос посылает доверенный сайт и в дальнейшем обрабатывает запрос перед показом пользователю.
Поэтому при получении ключа нужно указывать адреc перенапрвления, который соответствует сайту перенаправления в настройках.
Более подбробно о получении токенов можно почитать в статьях про Oauth.
24. MamaevPM 28.12.20 07:43 Сейчас в теме
Александр, доброе утро. Таже интересует стоимость готового модуля. Не могу написать в ЛС :( пришлите пожалуйста офер.
25. instrument6625 27.03.21 08:29 Сейчас в теме
законченный вариант есть-можно купить?
26. rov_kvn 25.05.21 23:11 Сейчас в теме
Пытаюсь в консоли разработчика создать приложение, выбираю Self-Developer, но следующая страница, где нужно вводить данные, мелькает на секунду и сразу переходит на страницу дальше, где выводится ошибка: неверная электронная почта. А как ее верно ввести? Кто-нибудь сталкивался с такой ситуацией?
27. malikov_pro 1325 26.05.21 00:13 Сейчас в теме
(26) Попробовать из другого браузера, проблема с JS на странице.
28. rov_kvn 26.05.21 11:21 Сейчас в теме
(27) Пробовал: Лису, Хром, edge, Яндекс, Оперу, Вивальди - везде одно и то же. Тех. поддержка их молчит. Уже не знаю что еще попробовать.
29. bugagashenka 203 26.05.21 13:07 Сейчас в теме
Не могли бы Вы подробнее рассказать про орг моменты, чтобы тестировать? В доке написано, что нужно еще один аккаунт продавца создать для страны Италия. А приложение привязывается к боевому акку? Или нужно создать приложение именно на тестовый акк?
Опишите, пожалуйста, подробнее процесс получения тестового аккаунта и тестирования на кошках. Было бы замечательно
30. malikov_pro 1325 26.05.21 14:49 Сейчас в теме
(28) Проверить блокировку брандмауэром.
31. malikov_pro 1325 26.05.21 14:51 Сейчас в теме
(29) Присутствует рабочий магазин, с помощью self ключа получаем к нему доступ по API и на него грузим товары, по одному. В индекс сразу не попадает, на сколько понимаю, поэтому время на удаление через админку перекосов хватает.

На заметку: через self ключ можно получить токен к магазину на другом аккаунте.
32. bugagashenka 203 27.05.21 11:41 Сейчас в теме
34. Serg O. 298 20.07.21 14:44 Сейчас в теме
Большое Спасибо за публикацию.
Документация оригинала - на китайском с переводом на русский или английский очень тяжко "заходит".
Примеры для Java, PHP или .Net вроде даже есть, но не всё понятно... видно что MD5 шифрование надо всех параметров.
Нам же "просто" JSON вроде как надо "кинуть" на некий адрес... POST-запросом.
и как это попроще сделать в оригинальных инструкциях не очень понятно...

Из примера на PHP https://open.taobao.com/doc.htm?docId=131&docType=1
что такое ключ сессии (sessionkey) и зачем и как его "сделать" ?

в примере все ключи - тестовые...
$ appKey = 'тест';
$ appSecret = 'тест';
$ sessionkey = 'тест';

// Массив параметров
$ paramArr = массив (
'app_key' => $ appKey,
'session_key' => $ sessionkey,
'method' => 'taobao.user.seller.get',
* * *
35. malikov_pro 1325 22.07.21 10:02 Сейчас в теме
(34) Ссылка на документацию, в статье не полностью расписал
https://developers.aliexpress.com/en/doc.htm?docId=108969&docType=1

В кабинете разработчика получаем ключ приложения, проверяем callback_url, формируем строку запроса


строку запроса открываем в браузере, проходим аутентификацию в ali как клиент, подтверждаем использование ключа. Проходит редирект на callback_url, в строке запроса видим параметр code, фиксируем его у себя

формируем POST запрос на https://oauth.aliexpress.com/token

в теле запроса указываем (сам использую JSON объект, работает нормально)
client_id - лиз ЛК разработчика
client_secret - лиз ЛК разработчика
code - из предыдущего запроса

в результате получаем access_token, который используем для подписания рабочих запросов.
36. Serg O. 298 22.07.21 12:26 Сейчас в теме
37. user1652746 25.08.21 18:13 Сейчас в теме
Привет. Можно купить готовый скрипт?
38. unknown181538 158 17.10.21 18:25 Сейчас в теме
Отправляю запрос
https://oauth.aliexpress.com/authorize?response_type=code&client_id=000000&state=1212&view=web&sp=a­e&redirect_uri=https://auth.tools-indigolab.ru/oauth

Возвращает "Приложение с id 1212 не найдено."
Если убираю вообще параметр, то пишет, что недостаточно параметров. Хотя он, вроде опционален.
Что я не так делаю?
39. unknown181538 158 17.10.21 18:33 Сейчас в теме
(38) Разобрался - в настройках приложения поменял url на https://yandex.ru/, и в запросе соответственно
40. unknown181538 158 18.10.21 15:48 Сейчас в теме
Пытаюсь получить токен:

Appkey = "0000000";
	AppSecret = "ааааааааааааааааааааааа";
	УРЛ = "oauth.aliexpress.com";
	redirect_uri = "https://yandex.ru/";
	
	СТрокаПараметры = "/token?code=Code&state=181538&grant_type=authorization_code&client_­id="+Appkey+"&client_secret="+AppSecret+"&sp=ae&redirect_uri­="+redirect_uri;
	
	
	Заголовки = Новый Соответствие;
	Заголовки.Вставить("Content-Type", "application/json");
	
	
	Запрос = Новый HTTPЗапрос(СТрокаПараметры, Заголовки);
	
	ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL;
	Соединение 	 		 = Новый HTTPСоединение(УРЛ, , , , , , ЗащищенноеСоединение);
	Ответ = Соединение.ОтправитьДляОбработки(Запрос);
	СтрокаОтвета = Ответ.ПолучитьТелоКакСтроку();
	ЧтениеJSON = Новый ЧтениеJSON;
	ЧтениеJSON.УстановитьСтроку(СтрокаОтвета);
	СоответствиеОтвета = ПрочитатьJSON(ЧтениеJSON, Истина);
	Для Каждого КлЗн Из СоответствиеОтвета Цикл
		Сообщить(""+КлЗн.Ключ + " : "+КлЗн.Значение);
	КонецЦикла;
Показать

Получаю результат
"error_code : sys-auth.error
error_msg : top system error, please wait and retry later"
И так второй день. Это у них с сервером проблема, или у меня код кривой?
41. malikov_pro 1325 18.10.21 19:58 Сейчас в теме
(40)
откуда state=181538?
почему через строку а не через тело запроса?

Заголовки.Вставить("Content-Type", "application/json"); - это в каком формате шлешь данные, в данном запросе избыточно.
42. unknown181538 158 18.10.21 20:03 Сейчас в теме
(41)181538 я так понимаю, это число произвольное. Ставил его при получении первичного кода.
Ваши замечания принял, попробую разобраться.
Возможно, и не буду на 1с писать, использую скрипты из документации.
44. unknown181538 158 18.10.21 20:41 Сейчас в теме
(41) С
оотв = Новый Соответствие;
	Соотв.Вставить("code", "Code");
	Соотв.Вставить("grant_type", "authorization_code");
	Соотв.Вставить("client_id", Appkey);
	Соотв.Вставить("client_secret", AppSecret);
	Соотв.Вставить("sp", "ae");
	Соотв.Вставить("redirect_uri", redirect_uri);
	Соотв.Вставить("state", "181538");
	ЗаписьJSON = Новый ЗаписьJSON;
	ПараметрыJSON = Новый ПараметрыЗаписиJSON;
	ЗаписьJSON.УстановитьСтроку(ПараметрыJSON);
	ЗаписатьJSON(ЗаписьJSON, Соотв);
	СтрокаТело = ЗаписьJSON.Закрыть();
	
	Запрос = Новый HTTPЗапрос("token", Заголовки);
	Запрос.УстановитьТелоИзСтроки(СтрокаТело);
Показать

Что-то такое сделал. Он стал ругаться, что не заполнены параметры. Попробовал последовательно добавить в строку. Ругался на каждый следующий. А когда все подписал в строку, все равно сослался на ошибку top-сервера.
С postman не разбирался... Как бы тут не выяснилось, что у них реально сервер лежит просто.
43. malikov_pro 1325 18.10.21 20:05 Сейчас в теме
(42) в приложении к статье есть postman коллекция, через нее не получилось?
45. unknown181538 158 18.10.21 21:50 Сейчас в теме
(43) Протестили пример на PHP, возвращает тот же
error_code : sys-auth.error
error_msg : top system error, please wait and retry later
Похоже, правда на сервере проблема.
51. unknown181538 158 19.10.21 15:52 Сейчас в теме
(45) Оказывается, это я параметры неправильно заполнил
""/token?code=Code&state=181538&grant_type=authorization_code&client_­­id="+Appkey+"&client_secret="+AppSecret+"&sp=ae&redirect_ur­i­="+redirect_uri;"
надо было поменять на
""/token?code="+МойКод+"&state=181538&grant_type=authorization_code&c­lient_­id="+Appkey+"&client_secret="+AppSecret+"&sp=ae&redir­ect_uri­="+redirect_uri;"
И такая вот неинформативная ошибка вышла.
Теперь все работает. В том числе без тела запроса. Думаю, публикацию нарисовать, где все в обработку завернуто.
46. malikov_pro 1325 18.10.21 23:28 Сейчас в теме
(45) gate другой попробуйте, у них точек входа несколько.
49. unknown181538 158 18.10.21 23:37 Сейчас в теме
(46)
gate другой
Не могу найти про это информации? Какой gate пробовать?
47. malikov_pro 1325 18.10.21 23:29 Сейчас в теме
(44) "С postman не разбирался" - это must have для отладки http, в планах написать кодогенерацию в 1С из него.
unknown181538; +1 Ответить
48. unknown181538 158 18.10.21 23:31 Сейчас в теме
(47) Буду иметь в виду. Почитал про него пока первичную информацию. А в прикрепленном файле, как я понял, именно для токена нету запроса?
50. malikov_pro 1325 19.10.21 10:25 Сейчас в теме
(49) "https://eco.taobao.com/router/rest", в оф документации в примерах разные URL используются
(48) именно для получения токена, именно код получается только через браузер через подтверждение в аутентифицированной сессии али экспресса конкретного магазина.
52. malikov_pro 1325 19.10.21 16:14 Сейчас в теме
(51) Вариант через PullRequest добавить в https://github.com/malikov-pro/taobao_sdk_1c, в публикации описать изменения/нововведения.
unknown181538; +1 Ответить
54. unknown181538 158 08.11.21 22:04 Сейчас в теме
Спасибо, расширение с github очень помогло для написания получения заказов. Сам бы вечность разбирался в этих процедурах.
55. user1694717 08.11.21 22:26 Сейчас в теме
Всем привет! Не могу разобраться, как работать по API шаблоном "FBS: Почта России и AliExpress". Мне нужно научится получать ярлык и накладную для отправления. Ни один из испробованных методов(aliexpress.logistics.redefining.getprintinfos, cainiao.global.handover.pdf.get) не отрабатывает. Может кто то подсказать, как решить данную проблему!? Спасибо!
56. malikov_pro 1325 09.11.21 00:38 Сейчас в теме
(55) Вариант написать представителю Ali в России, думаю подскажет по бизнес процессу, возможно в нем пробел. Так же может быть что сервисы Ali отрабатывают с ошибкой, при этом ошибка зависит от данных (нет нормального описания ошибки).
57. user1694717 09.11.21 22:08 Сейчас в теме
(56) Спасибо! Я пытаюсь сделать следующее: Есть товар к которому привязан шаблон доставки "FBS: Почта России и AliExpress"; пользователь формирует заказ, содержащий этот товар; в админ панели я нажимаю кнопку собрать заказ; формирую ярлык и квитанцию в админ панели; передаю заказа в отделение почты. У меня есть в наличии: trade_order_id, warehouse_order_id, intl_tracking_no. Далее пытаюсь вызвать метод aliexpress.logistics.redefining.getprintinfos передаю в него warehouse_order_id, intl_tracking_no. Получаю следующий ответ: {"errorDesc":"You can only print pdfs of the same class per time."}. Вызываю метод cainiao.global.handover.pdf.get передаю в него: название магазина, локаль, тип необходимого документа, trade_order_id или warehouse_order_id (пробовал оба варианта для параметра HandoverContentId), поле top_user_key оставляю не заполненным. Получаю следующий ответ:
{ "result":{ "data":{"Content-Disposition" : "attachment;filename=************","StatusCode":200,"Content-Type":"application/x-zip-compressed"} "success":"true" } "request_id":"*******" }.
Понимаю что метод cainiao.global.handover.pdf.get скорее всего предназначен для других ситуаций. Больше методов для печати ярлыка и квитанции в документациях: https://business.aliexpress.ru/docs ; https://developers.aliexpress.com/en/doc.htm ; https://developer.alibaba.com/docs/api.htm я найти не смог. Спасибо, что откликнулись. Попробовал написать в чат поддержки, создали заявку для технических специалистов, но когда будет ответ не понятно, уже жду 3 дня. Может у Вас еще какие то мысли появились!? Всем спасибо!
58. UnNamsa 13.12.21 11:45 Сейчас в теме
(57) здесь на сайте где-то есть работающий пример. нам этот метод не подключали долго, спустя полгода проверили - а он заработал, молча, без уведомлений.
59. sanek_kop 15 09.02.22 13:38 Сейчас в теме
Подскажите, может кто сталкивался с такой проблемой. Пытаюсь обновить остатки через API. Когда в sku_code нет кириллицы, то все корректно отрабатывает, когда есть, то пишет "Invalid signature". Пробовал менять кодировку на UTF-8. Не помогает. Если меняю кодировку на Unicode то ругается на параметр mutiple_product_update_list. В чем проблема может быть?
60. malikov_pro 1325 09.02.22 19:53 Сейчас в теме
61. sanek_kop 15 14.02.22 10:57 Сейчас в теме
(60) Спасибо! Проблема была именно в unicode кодировке. При перекодировке символы были "большие", Перевод в нижний регистр решил проблему.
62. yura371 12.04.22 16:09 Сейчас в теме
Добрый день. Кто-нибудь сталкивался: Тестовая Api http://gw.api.tbsandbox.com/router/rest сейчас почему то не работает. Пытаюсь получить ключи(токен и т.п.) для выполнения тесовых запросов, но на сайте http://www.tbsandbox.com пишет по китайски "Запрашиваемая вами услуга не существует."
64. Miket78 33 07.05.22 09:40 Сейчас в теме
Коллеги подскажите, запрос получения токена выдает ответ:
{
"error_msg": "mainaccount not auth subAccount",
"error_code": "biz-auth.mainaccount-unauth-subaccount.invalid"
}

Это на последнем этапе где уже получен Code, приложение в консоли отображается.

Ресурс = "token?code=" + AppCode + "&grant_type=authorization_code&client_id=" + AppKey + "&client_secret=" + AppSecret + "&sp=ae&redirect_uri=" + callback_url;
	
	Попытка
		Запрос = Новый HTTPЗапрос(Ресурс, Заголовки);
		Сервер = "oauth.aliexpress.com";
		Соединение = Новый HTTPСоединение(Сервер, 443, , , , , Новый ЗащищенноеСоединениеOpenSSL());
		Ответ = Соединение.ОтправитьДляОбработки(Запрос);
	Исключение
		ТекстОшибки = ОписаниеОшибки();
		Сообщить("Ошибка при вызове метода API: " + ТекстОшибки);
		Возврат;
	КонецПопытки;
	
	Если Ответ.КодСостояния <> 200 Тогда
		Сообщить("Ошибка при вызове метода API, код ошибки: " + Ответ.КодСостояния);
		Возврат;
	КонецЕсли;
	
	JSON="";
	
	Попытка
		JSON = Ответ.ПолучитьТелоКакСтроку();
	Исключение
		ТекстОшибки = ОписаниеОшибки();
		Сообщить("Ошибка при обработке метода API: " + ТекстОшибки);
		Возврат;
	КонецПопытки;
	
	Сообщить("ОтветСервера: "+json);
Показать
65. malikov_pro 1325 07.05.22 12:06 Сейчас в теме
(64) с субаакаунтами не сталкивался, подключаетесь как self разработчик или как commerce?
66. Miket78 33 07.05.22 12:09 Сейчас в теме
Как self
Да никаких субаккаунтов я не создавал, все делал по описаниям в это ветке и еще в нескольких местах описано.

Каким то чудом запрос мне вернул несколько раз токен, но сейчас пытаюсь повторить и опять эта же ошибка.
67. malikov_pro 1325 07.05.22 15:34 Сейчас в теме
(66) Система работает не всегда стабильно, время жизни токена около года, и нет блокировки предыдущего при следующем запросе, на сколько знаю.
68. shchekalev-alexandr 21.05.22 06:39 Сейчас в теме
Добрый день, а как передать параметры составного типа такие как OrderDetailQuery, где в качестве ключа строка, а значение "объект".
69. malikov_pro 1325 21.05.22 08:22 Сейчас в теме
(68) С ходу, как помню: как JSON в виде строки, после добавляется в общую JSON структуру с экранированием. Нужная ссылка на документацию, тогда более точно подскажу.
shchekalev-alexandr; +1 Ответить
70. shchekalev-alexandr 21.05.22 11:20 Сейчас в теме
https://developers.aliexpress.com/en/doc.htm?docId=42707&docType=2

для получения объекта заказа.

Параметры, ключ-значение, есть параметры общие, есть параметры специфичные для запроса, параметры в структуру сортируем очередность по ключу и собираем строку делаем хеш из строки и записываем в поле sign. Если для запроса параметры "простые" такие же как и общие параметры ключ-значение, то у меня они просто добавляются в конец структуры и работает, простым обычным GET, как только параметры запроса становятся отдельной структурой тут не понятно как дальше работать:

то есть не понимаю как правильно соединить две структуры, в документации сказано что sign должен высчитываться от всех параметров: общих и специфичных для запроса. И приводят пример, но в примере все параметры "простые" ключ - значение, которые легко ложатся в 1 структуру и дальше все идет просто, вот что делать когда параметры для запроса выглядят так:
"param1" = {
order_id:123456,
ext_info_bit_flag:11111
}

то есть ключом является "param1" а значение (dictionary он же структура), как сложить эти две структуры , как передать в тело запроса или в строке запроса?
71. ildary 21 29.07.22 11:18 Сейчас в теме
Уважаемые специалисты, использующие новый локальный API, скажите пожалуйста, что надо сделать, чтобы метод /seller-api/v1/order/get-order-list возвращал список заказов. Само подключение проходит, но результат возвращается пустой: "{"data":{"total_count":0,"orders":[]},"error":null}".

Параметры заказа (взятые по умолчанию):
"{
"page": 1,
"page_size": 100
}"

пробовал играть с необязательными параметрами (даты, статусы) - не помогает.

При этом прочие методы этого API (выгрузка остатков, цен) - работают корректно.
72. malikov_pro 1325 02.08.22 22:14 Сейчас в теме
(71) возможно не обернули в param0

Функция ПолучитьСписокЗаказовПокупателей(НастройкаОбмена, НомерСтраницы, Отказ)
	
	СоответствиеПараметры = Новый Соответствие;
	СоответствиеПараметры.Вставить("page_size", 20);
	СоответствиеПараметры.Вставить("current_page", НомерСтраницы);
	
	// Время US pacific time
	
	//Добавляем секунду от последнего изменения чтобы не грузить одно и то же по нескольку раз
	СоответствиеПараметры.Вставить("modified_date_start", Формат(НастройкаОбмена.ДатаНачалаЗагрузкиЗаказов+1, "ДФ='yyyy-MM-dd HH:mm:ss'"));
	
	СтрокаПараметры = В_JSON(СоответствиеПараметры);
	
	ТЗ = аэ_СерверТранспорт.ПолучитьТаблицуПараметров(НастройкаОбмена);
	аэ_СерверТранспорт.ДобавитьВТаблицаПараметровЗапроса(ТЗ, "method", "aliexpress.solution.order.get");
	аэ_СерверТранспорт.ДобавитьВТаблицаПараметровЗапроса(ТЗ, "param0", СтрокаПараметры);
	
	СоответствиеОтвет = аэ_СерверТранспорт.ЗапросКСервису(ТЗ, Отказ, НастройкаОбмена);
	
	Возврат СоответствиеОтвет;

КонецФункции
Показать
73. ildary 21 02.08.22 22:19 Сейчас в теме
(72) спасибо за ответ, причина оказалась в другом - этот метод рассчитан на локальные заказы (они отличаются от глобальных первой цифрой - 2 и 5).
74. Miket78 33 29.08.22 17:56 Сейчас в теме
(73) У меня заказы начинаются на 5 и метод POST /seller-api/v1/order/get-order-list также выдает пустой ответ.
Проблема в том, что я для нового магазина не могу получить AppKey. В консоли подал заявку на разработчика и уже две недели висит "На рассмотрении" (в переводе с китайского) и не могу создать приложение. Остатки и цены обновляются нормально через локальное апи, а с заказами засада. На первом магазине все как-то гладко прошло.

Кто-нибудь получал последние дни-недели AppKey и AppSecret??? Даже не знаю куда писать в техподдержку, китайцам что-ли?
75. ildary 21 29.08.22 17:58 Сейчас в теме
(74) для работы новых методов нужен не AppKey и AppSecret, а токен JWH, получать здесь: seller.aliexpress.ru/token-management
76. ildary 21 29.08.22 18:00 Сейчас в теме
Токен передавать примерно так:

Заголовки = Новый Соответствие;
	Заголовки.Вставить("accept"           , "text/plain");
	Заголовки.Вставить("Content-Type", "application/json-patch+json");
	Заголовки.Вставить("x-auth-token"  , Токен);
	
	HTTPЗапрос = Новый HTTPЗапрос(ИмяМетода, Заголовки);
77. Miket78 33 29.08.22 18:01 Сейчас в теме
(75) Да я знаю, я новыми методами обновляю цены и остатки, токен есть. Но для получения заказов нужен глобальный апи, там процедура получения токена мудреная, и на ней у меня затык произошел. В console.aliexpress.com подал заявку на статус разработчика и висит уже больше 2х недель в статусе на рассмотрении. Почитал документацию, пишут что с 15 августа постепенно будут переводить всех на локальный апи, может поэтому не работает получение статуса разработчика для глобального апи
78. Miket78 33 29.08.22 18:02 Сейчас в теме
(75) Но новый метод не возвращает мои заказы, у них код начинается на 5.
79. ildary 21 29.08.22 18:07 Сейчас в теме
(77) как я понял - авторизация работает достаточно нестабильно - у меня неделю назад перестал работать access token, я его обновил по инструкции, но в эти выходные проблема повторилась (хотя ключа должно хватать на год), пришлось обновлять повторно.

А для обновления AppKey и AppSecret - советую написать в чат техподдержки, они обычно за два дня отвечают. Правда чат найти непросто - иконка "вопросительный знак" справа внизу, и затем "Обращения".
80. ildary 21 29.08.22 18:09 Сейчас в теме
(78) для испытания новых методов с заказами надо создать тестовый магазин. Для старых методов (как я понял) тестовых магазинов нет, тренируемся на кошках.
81. admin.orel 03.10.22 11:34 Сейчас в теме
Коллеги, добрый день.
Подскажите, на новом методе пытаюсь получить категорию товаров, выдаёт "route not found"
Прикрепленные файлы:
82. malikov_pro 1325 03.10.22 11:45 Сейчас в теме
(81) Сообщение только я увидел (как автор статьи), для "Коллеги" имеет смысл сделать тему на форуме.
Ссылка на документацию https://business.aliexpress.ru/docs/categories

В вашем случае ошибка в том что используете метод GET, Получить(), а в документации POST.
admin.orel; +1 Ответить
83. admin.orel 03.10.22 11:53 Сейчас в теме
Понял, спасибо большое!!!
84. пользователь 17.08.23 13:51
Сообщение было скрыто модератором.
...
Оставьте свое сообщение