Вход | Регистрация
 

Кто-нибудь делал обмен с webasyst? Запросы получения данных проходят, а update неработают.

Кто-нибудь делал обмен с webasyst? Запросы получения данных проходят, а update неработают.
Я
   RetardedToBoot
 
30.12.20 - 00:28
Понадобилось тут сделать выгрузку на сайт остатков. Сайт на webasyst.
Делаю через REST (до этого я не знал что это такое, да и сейчас не очень).

Когда делаю запрос api.php/shop.product.getInfo?id=123456&access_token=XXX
он корректно возвращает сведенья о товаре.

Когда же пытаюсь сделать запрос на изменение
api.php/shop.product.update?id=123456&access_token=XXX
то на сайте ничего не меняется, хотя возвращает состояние 200 (successful).

Дополнительный параметр count=10 пытался и в запрос прилепить и в тело запроса
через json - ничего не помогает.
 
 Партнерская программа EFSOL Oblako
   RetardedToBoot
 
1 - 30.12.20 - 00:40
Причем в документации

https://developers.webasyst.ru/api/explorer/shop/shop.product.update/

про параметр id написано что он GET,
а параметр count он POST - как такое может быть в одном запросе?
   palsergeich
 
2 - 30.12.20 - 01:03
(1) Это не один запрос.
Даны параметры и к какомц виду операции он относится.
   palsergeich
 
3 - 30.12.20 - 01:04
Для обновления - тебе нужен POST
   RetardedToBoot
 
4 - 30.12.20 - 01:12
А как выполнить два запроса? Мне кажется только использования одного подключения здесь не достаточно. Через какой механизм, как мне его обозвать что бы гугл мне его нашел?
   palsergeich
 
5 - 30.12.20 - 01:13
(4) Сам то запрос как выглядит?
   RetardedToBoot
 
6 - 30.12.20 - 01:15
Как вариант пробовал так и через POST и через GET:

/api.php/shop.product.update?id=123456&access_token=XXX&count=10

плюс там еще в начале доменное имя. access_token это идентификатор доступа, что-то вроде аутентификации. Подобный вариант на запрос инфы с сайта проходит.
   RetardedToBoot
 
7 - 30.12.20 - 01:17
id=123456 - это идентификатор товара, который запрашиваю или меняю.
   palsergeich
 
8 - 30.12.20 - 01:22
Голоса в моей голове говорят.
Нужен пост запрос
То что помечено как гет - в адресную строку.
То что ПОСТ - Json с новыми значениями в теле запроса.
Ну так по крайней мере другие апи работают
   RetardedToBoot
 
9 - 30.12.20 - 01:28
Вопрос решился. Оказалось сайт хотел пост-параметры простым текстом, а я ему давал через json - с инета передрал такой вариант. Вместо application/json сделал application/x-www-form-urlencoded, и заработало.
   palsergeich
 
10 - 30.12.20 - 01:32
(9) Странное апи
   RetardedToBoot
 
11 - 30.12.20 - 01:33
>Странное апи

Полностью согласен.

т.е.:

Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");

ма = новый Массив;
для каждого пар из ОтправляемыеДанные цикл
    ма.Добавить(""+пар.ключ+"="+пар.Значение);
КонецЦикла;

СтрокаДляТела = СтрСоединить(ма, "&");
ЗапросHTTP.УстановитьТелоИзСтроки(СтрокаДляТела);
   RetardedToBoot
 
12 - 30.12.20 - 02:40
небольшое уточнение для будущих копи-паставщиков:

        ма = новый Массив;
        для каждого пар из ОтправляемыеДанные цикл
            ма.Добавить(""+пар.ключ+"="+КодироватьСтроку(пар.Значение, СпособКодированияСтроки.КодировкаURL));
        КонецЦикла;
        СтрокаДляТела = СтрСоединить(ма, "&");

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