|
Помогите с подключением к АПИ биржи | ☑ | ||
---|---|---|---|---|
0
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. При чём тут миста? |
|||
2
TimofeySin
15.01.18
✎
20:40
|
Текст ошибки
Сообщить(СтрокаJson); //Вот тут получаю {"success":0,"error":"invalid sign"} Разработчики молчат. Ну может кто-то с таким сталкивался.... |
|||
3
tesseract
15.01.18
✎
21:12
|
С учетом такого количества байтов и сторонних компонент - ты хоть дампь отправку. Хрень с символами - стандартная проблема всех HTTP-сервисов.
|
|||
4
TimofeySin
16.01.18
✎
08:52
|
Из функции ЗашифроватьSHA512(Строка, СекретныйКлюч)
возвращается строка типа "87086911ECB637326DAF420ED3622FC0720A2E1D9F8124770990B3EB7B2BF1A8CC357C8F163594278E0606799BD08DDF7CEA42404080661E02E54F7C1F86BDE8" Я её сравнивал с сайтом генерации sha512, совпадает. Я грешу может я что с "Заголовками" напутал или там с тем что шифрую... уже мыслей блин нет |
|||
5
pablo_escobar
16.01.18
✎
09:42
|
На инфостарте есть обработки по подключению к wex.nz
|
|||
6
TimofeySin
16.01.18
✎
13:21
|
pablo_escobar, Спасибо тебе огромное! оказалось надо было еще post параметром слать apikey. Хоть бы где сволочи это написали бы...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |