Изменение статуса заказа через API Есть решение

Подскажите, как правильно обращаться к API.

Пытаюсь вызвать shop.order.complete.

Лобовой подход GET  api.php?app=shop&method=order.complete&access_token=xxxxxxxxxxxxxxxxxxxxxxxx&id=987 возвращает

{"error":"invalid_request","error_description":"Method GET not allowed"}

что неудивительно.

Пробую POST:

$ua->post($url, [app=>'shop', method=>'order.complete', access_token=>$TOKEN id=>$OID, format=>'json']);

Получаю ответ (http 200): {"error":"invalid_request","error_description":"Application not exists"}

ShopScript 8.4.2.11, установка в облаке.

Запрос получается вот такой:

User-Agent: libwww-perl/6.34
Content-Length: 95
Content-Type: application/x-www-form-urlencoded

app=shop&method=order.complete&access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx&id=123&format=json

Что бы это всё значило? Как невозбранно добиться желаемого?-)

1 ответ

  • 2
    Алексей К 1 мая 2019 12:39 # Решение

    Дело вот в чем. Несмотря на то, что запрос должен передаваться методом POST, часть параметров должна быть передана через URL. В документации на это указано, если присмотреться . :-)

    Запрос должен иметь такой вид:


    POST https://domain/api.php?app=shop&method=order.complete&access_token=xxx...xxxx
    User-Agent: libwww-perl/6.34
    Content-Length: 6
    Content-Type: application/x-www-form-urlencoded
    
    id=978

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите