Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Войти | Зарегистрироваться )



История благодарностей участнику dravva ::: Спасибо сказали: 4 раз
Дата поста: В теме: За сообщение: Спасибо сказали:
13.09.21, 18:38 Уведомление об отсутствии товара
при сканировании перед добавлением запросом прочитать остатки по товару и просуммировать ещё не проведенные заказы и вывести сообщение, только после каждого добавления накладную нужно записать
2510506,
03.08.21, 18:36 Liqpay API (интеграция)
Добрый день.
УТП. Необходимо отправить запрос на возврат средств по платежу. Документация здесь
Проблема - в ответ получаю - "{"code":"err_missing","err_code":"err_missing","err_description":"Required parameter not passed data","key":"data","result":"error","status":"error"}"

Фрагмент кода
УРЛСайта = "liqpay.ua";
    ПутьЗапроса = "/api/request";
    
    СтруктураЗапроса = Новый Структура;
        СтруктураЗапроса.Вставить("public_key",public_key);
        СтруктураЗапроса.Вставить("version","3");
        СтруктураЗапроса.Вставить("action","refund");
        СтруктураЗапроса.Вставить("amount","100");
        СтруктураЗапроса.Вставить("order_id","order_id_1");
    ЗаписьJSON = Новый ЗаписьJSON;
    ЗаписьJSON.УстановитьСтроку(Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет));    ЗаписатьJSON(ЗаписьJSON,СтруктураЗапроса);
    СтрокаJSON = ЗаписьJSON.Закрыть();
    
    ДвоичныеДанныеСтроки = ПолучитьДвоичныеДанныеИзСтроки(СтрокаJSON);
    ДатаBase64 = Base64Строка(ДвоичныеДанныеСтроки);
    ДатаBase64 = СтрЗаменить(ДатаBase64, Символы.ВК, ""); // убираем ВК
    ДатаBase64 = СтрЗаменить(ДатаBase64, Символы.ПС, ""); // убираем ПС
    
    ХД = Новый ХешированиеДанных(ХешФункция.SHA1);
    ХД.Добавить(private_key);
    ХД.Добавить(ДатаBase64);
    ХД.Добавить(private_key);

    ТипДвоичныеДанные = ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema", "base64Binary");
    ДвоичныеДанные = ФабрикаXDTO.Создать(ТипДвоичныеДанные,ХД.ХешСумма);
    СигнатураBase64 = ДвоичныеДанные.ЛексическоеЗначение;
    
    Заголовки = Новый Соответствие();
    Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");
    Соединение = Новый HTTPСоединение(УРЛСайта, , , , , , Новый ЗащищенноеСоединениеOpenSSL());
    HTTPЗапрос =
        Новый HTTPЗапрос(
                ПутьЗапроса
            ,    Заголовки
        )
;
    HTTPЗапрос.УстановитьТелоИзСтроки("data="+ДатаBase64+"&signature="+СигнатураBase64);
    HTTPОтвет = Соединение.ОтправитьДляОбработки(HTTPЗапрос);
    СтрокаОтвета = HTTPОтвет.ПолучитьТелоКакСтроку();
    Сообщить(СтрокаОтвета);



Думаю что проблема именно в передаче параметров, потому как та же ошибка и для других "action" - получение реестра или создание платежа
Может у кого-то есть опыт и может дать пример правильного составления запроса ?
Заранее спасибо !

dravva @ Сегодня, 17:42 * ,
похоже разобрался сам
вместо
HTTPЗапрос.УстановитьТелоИзСтроки("data="+ДатаBase64+"&signature="+СигнатураBase64);

нужно (добавить &)
HTTPЗапрос.УстановитьТелоИзСтроки("&data="+ДатаBase64+"&signature="+СигнатураBase64);
am_1c, andr_andrey, Vofka,

RSS Текстовая версия Сейчас: 29.03.24, 2:02
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!