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

Интеграция яндекс доставки в 1С

Интеграция яндекс доставки в 1С
Я
   Kelleron
 
26.02.20 - 15:39
Всем добрый день!
Появилась очень интересная задача по интеграции 1с и Яндекс доставки. Но не получается написать корректный запрос, возвращает следующее: "error":"ERROR_WRONG_PARAMS"

Тут читаю хелп: https://tech.yandex.ru/delivery/doc/dg/reference/get-sender-orders-docpage/#format , генерирую ключ и параметры согласно документации, значения параметров по алфавиту собираю в строку, добавляю API ключ, хеширую получившуюся строку в МД5.

вот код (но ключи ненастоящие, я их немного подправил чтобы реальные не выкладывать). Подскажите, пожалуйста, где косяк?

 

Функция ВыполнитьPOSTЗапрос()
    
    //Тело POST-запроса

    Параметр1=""//число    

    Параметр2=""//число

    //Параметр3="";//число

    Параметр4=""//сгенерированный

    ЗащищенноеСоединение=Истина;
    
    Параметр1 = "1234567";
    Параметр2 = "123456";
    APIkey = "1234567890f846ca9ebf7e1234567890";
    //Параметр3 = 

    
    Параметр4 = Параметр1+Параметр2;
    Параметр4 = ВычислитьMD5("" + Параметр1 + "" + Параметр2 + "" + APIkey);
    
    ТелоPOSTЗапроса = "";
    ТелоPOSTЗапроса = ТелоPOSTЗапроса + "&secret_key=" + Параметр4;    
    ТелоPOSTЗапроса = ТелоPOSTЗапроса + "&client_id=" + Параметр1;
    ТелоPOSTЗапроса = ТелоPOSTЗапроса + "&sender_id=" + Параметр2;    
    
    //POST-запрос на сервер-приёмник

    СерверПриемник = "delivery.yandex.ru";//имя сервера без протокола (http) и порта

    АдресСтраницыНаСервере = "/api/last/getSenderOrders";//

    
    ЗаголовкиHTTP = Новый Соответствие;
    ЗаголовкиHTTP.Вставить("Content-Type", "application/x-www-form-urlencoded");
    
    
    Таймаут = 120;
    SSL =  ?(ЗащищенноеСоединение, Новый ЗащищенноеСоединениеOpenSSL(), Неопределено);
    НТТР = Новый HTTPСоединение(СерверПриемник,, , , , Таймаут, SSL);    
    
    Попытка
    //Формируем HTTP запрос

    ЗапросHTTP = Новый HTTPЗапрос(АдресСтраницыНаСервере, ЗаголовкиHTTP);
    //HTTPЗапрос = Новый HTTPЗапрос("/test3.php", ЗаголовкиHTTP);

    ЗапросHTTP.УстановитьТелоИзСтроки(ТелоPOSTЗапроса, КодировкаТекста.UTF8);//Устанавливает строку, из которого будет прочитано тело POST-запроса.

    //Ответ от сервера получим в возвращаемом значении типа HTTPОтвет

    ОтветHTTP = НТТР.ОтправитьДляОбработки(ЗапросHTTP);
    Возврат ОтветHTTP.ПолучитьТелоКакСтроку();
Исключение
    ТекстСообщения = НСтр("ru = 'Неудачная попытка соединения с '")  + СерверПриемник + ": " + ОписаниеОшибки();
    Сообщить(ТекстСообщения); 
КонецПопытки;         
КонецФункции// ВыполнитьPOSTЗапрос()


 
Функция ВычислитьMD5(Данные) Экспорт
 
 ХэшированиеДанных = Новый ХешированиеДанных(ХешФункция.MD5);
 ХэшированиеДанных.Добавить(Данные);
 Хэш = НРег(СтрЗаменить(ХэшированиеДанных.ХешСумма, " ", ""));

 Возврат Хэш;

КонецФункции



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