Привет, ребята я пытаюсь создать графический интерфейс для BTER в VBNET.
Я использую следующие функции для получения информации о доступных средствах
Private Function StringToSHA512 (содержание ByVal As String) As String
Dim M5 As New SHA512Managed
DIM байт (байт) As = Encoding.UTF8.GetBytes (содержание)
байтовая строка = M5.ComputeHash (байтовая строка)
Dim подписавшего Как Строка = Nothing
Для каждого Б.Т. As Byte В байтовой строки
подписавшийся &= Bt.ToString ("x2")
следующий
Возвращение подписывающий
End Function
Private Function GetUnixTimestamp (ByVal currDate Как DateTime) Как дважды
«Создать TimeSpan путем вычитания значения, поступающего из Unix Epoch
Dim пролет Как TimeSpan = (currDate - Новый DateTime (2012, 1, 1, 0, 0, 0, 0) .ToLocalTime ())
«Возвращает общее количество секунд (который является метка времени UNIX)
Возврат span.TotalSeconds
End Function
Отдельная функция отклика (ByVal PostData As String) As String
Dim postReq Как HttpWebRequest
Пытаться
postReq = DirectCast (WebRequest.Create ("https://bter.com/api/1/private/getfunds"), HttpWebRequest)
Dim кейер As String = LCASE ("85XXXC8-9CXD-4X0-8X4A-95XXXXXX515") «Ключ здесь идет
Dim секрет As String = "f87f4XXXXXb956bcfdXXXXXe19e9120XXXXXX6c8a" «Ваш секрет здесь идет
DIM KeyByte () As Byte = Encoding.ASCII.GetBytes (секретные)
Dim HMAcSha As New HMACSHA512 (Encoding.ASCII.GetBytes (секрет))
Дим messagebyte () As Byte = Encoding.ASCII.GetBytes (PostData)
Дим hashmessage () As Byte = HMAcSha.ComputeHash (messagebyte)
Dim Вход As String = BitConverter.ToString (hashmessage)
Вход = Sign.Replace ("-", "")
postReq.Method = "ПОСЛЕ"
postReq.KeepAlive = False
postReq.Headers.Add ("ключ", Кейер)
postReq.Headers.Add ("Знак", LCase (Вход))
postReq.ContentType = "применение / х-WWW-форм-urlencoded"
postReq.UserAgent = "Mozilla / 5.0 (Windows; U; Windows NT 6.1; RU; с.в.: 1.9.2.3) Gecko / 20100401 Firefox / 4.0 (.NET CLR 3.5.30729)"
postReq.ContentLength = messagebyte.Length
Дим postreqstream как поток = postReq.GetRequestStream ()
postreqstream.Write (messagebyte, 0, messagebyte.Length)
postreqstream.Dispose ()
Dim Postres Как HttpWebResponse = DirectCast (postReq.GetResponse (), HttpWebResponse)
Dim postreqreader As New StreamReader (PostRes.GetResponseStream ())
ответ = postreqreader.ReadToEnd.Replace (Chr (34), Chr (39))
postreqreader.Dispose ()
PostRes.Close ()
Поймайте бывший в качестве исключения
ответ = ""
End Try
End Function
Когда я вызвать выше функцию "ответ"
TextBox1.Text = ответ ("= нонс" & GetUnixTimestamp (сейчас))
Он печатает { «результат»: «ложный», «сообщение»: «Ошибка: недостоверные данные»}
Что я делаю не так?
Вы можете найти документацию для выше API здесь https://bter.com/api#trade
В bootom страницы есть PHP пример
Tyvm