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

1С:Предприятие ::

Метки: 

Помогите с подключением к АПИ биржи

Я
   TimofeySin
 
15.01.18 - 20:28
Вот мануал по подключению: https://wex.nz/tapi/docs
Почему оно не работает то!
причем кодирование проверял по всяким сайтам из инета, с моим совпадает.
Написал вот такой код:
&НаСервере                                
Процедура ПолучениеМоегоБаланса()

    КлючАпи= "всякие буковки";       //Мой ключ API с сайта с правом info
    Секрет =  "всякие буковки";                ///Мой Secret с оттуда же
    постЗапрос =  "method=getInfo&nonce="+СтрЗаменить(Объект.nonce,Символы.НПП,"");    
    Соединение = Новый HTTPСоединение("wex.nz",,,,,,Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Неопределено));  ///https подключение
    HTTPЗапрос = Новый HTTPЗапрос("/tapi");                                          //запрос  к https://wex.nz/tapi
    HTTPЗапрос.Заголовки.Вставить("Key",КлючАпи);

    HTTPЗапрос.Заголовки.Вставить("Content-Type","application/x-www-form-urlencoded");
    
    Ключ = ЗашифроватьSHA512(постЗапрос,Секрет);         //   Вот тут шифрую строку   method=getInfo&nonce=1
    HTTPЗапрос.Заголовки.Вставить("Sign",Ключ);         //вставляю это всё в заголовок

    HTTPЗапрос.УстановитьТелоИзСтроки(постЗапрос,КодировкаТекста.UTF8);       //Делаю POST запрос со строкой method=getInfo&nonce=1
    Результат  = Соединение.ОтправитьДляОбработки(HTTPЗапрос);        
    СтрокаJson = Результат.ПолучитьТелоКакСтроку();    
    Сообщить(СтрокаJson);                                    //Вот тут получаю   {"success":0,"error":"invalid sign"}
    ///Да что не так то?
    ЧтениеJSON  = Новый ЧтениеJSON;
    ЧтениеJSON.УстановитьСтроку(СтрокаJson);
    Результат = ПрочитатьJSON(ЧтениеJSON);
    Объект.nonce = Объект.nonce + 1;            
КонецПроцедуры

&НаСервере
Функция ЗашифроватьSHA512(Строка, СекретныйКлюч)
    Текст = Новый COMОбъект("System.Text.UTF8Encoding");
    Криптография = Новый COMОбъект("System.Security.Cryptography.HMACSHA512");
    Криптография.Key = Текст.GetBytes_4(СекретныйКлюч);
    ХешБайт = Криптография.ComputeHash_2(Текст.GetBytes_4(Строка)).Выгрузить();  ///Вот тут массив байтиков
    // Преобразование хэш-суммы в строку.
    StringBuilder = Новый COMОбъект("System.Text.StringBuilder");
    Для Каждого Элемент Из ХешБайт Цикл
        StringBuilder.AppendFormat("{0:x2}", Элемент);      //вот тут преобразую в Hex
    КонецЦикла;    
    Стр = "";
    Для Индекс = 0 по ХешБайт.ВГраница() Цикл
        Стр = Стр + Символ(ХешБайт[Индекс]);
    КонецЦикла;    
    Возврат StringBuilder.ToString();    //строку возвращаю
КонецФункции
 
  Рекламное место пустует
   Волшебник
 
Модератор
1 - 15.01.18 - 20:32
1. Где текст ошибки?
2. Что говорят разработчики?
3. При чём тут миста?
   TimofeySin
 
2 - 15.01.18 - 20:40
Текст ошибки 
 Сообщить(СтрокаJson);                                    //Вот тут получаю   {"success":0,"error":"invalid sign"}


Разработчики молчат.

Ну может кто-то с таким сталкивался....
   tesseract
 
3 - 15.01.18 - 21:12
С учетом такого количества байтов и сторонних компонент - ты хоть дампь отправку. Хрень с символами - стандартная проблема всех HTTP-сервисов.
   TimofeySin
 
4 - 16.01.18 - 08:52
Из функции ЗашифроватьSHA512(Строка, СекретныйКлюч)
возвращается строка типа
"87086911ECB637326DAF420ED3622FC0720A2E1D9F8124770990B3EB7B2BF1A8CC357C8F163594278E0606799BD08DDF7CEA42404080661E02E54F7C1F86BDE8"

Я её сравнивал с сайтом генерации sha512, совпадает.
Я грешу может я что с "Заголовками" напутал или там с тем что шифрую... уже мыслей блин нет
   pablo_escobar
 
5 - 16.01.18 - 09:42
На инфостарте есть обработки по подключению к wex.nz
   TimofeySin
 
6 - 16.01.18 - 13:21
pablo_escobar, Спасибо тебе огромное! оказалось надо было еще post параметром слать apikey. Хоть бы где сволочи это написали бы...


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