Привет Sapphire / все,
Я действительно, начиная с "просто" GetInfo или TransHistory, надеюсь, позже я мог бы ввести или отменить сделку ... Но теперь мой ответ по умолчанию {"успех": 0,"ошибка":"недопустимый знак"}. Самое странное: вчера я попытался запустить его, и вдруг я получил положительный ответ обратно дважды: {"успех": 1,"вернуть": {"фонды": {"доллар США": 0, и т.д ...), между этими ответами были некоторые 20 не удалось пробегов точно той же макро ... Я проверил мой Hasher с вашим примером (и тот, который я смог найти в Интернете), и мой хэш-функции теперь работает как Шарм.
То, что я пробовал:
-сгенерировать новую пару ключей на BTC-е
-пытался GetInfo и TransHistory
-Я даже пытался "Метод = BogusMethod&Nonce = 12345678", Что тоже вернулся с {"успех": 0,"ошибка":"недопустимый знак"}
Поэтому я полагаю, что мой SHA512 мясорубка делает что-то неправильно, но 2 успешных ответы странно ...
Любой ключ?
Благодаря,
Koen
Мой полный VBA-код (копия вставить в любой Excel, вы, возможно, придется установить некоторые ссылки на VBA, чтобы, например, Microsoft WinHttp Services)
Sub TestPOSTBTCe ()
Dim APIkey As String
Dim SecretKey As String
Dim NonceUnique As Long
Dim PostData As String
Тусклое SecretKeyByte () As Byte
Дим messagebyte () As Byte
Dim Вход As String
NonceUnique = DateDiff ("s", "1/1/1970", Теперь)
«BTC-е
TradeApiSite = "https://btc-e.com/tapi/"
APIkey = "Это где ваш API-ключ идет"
SecretKey = "И здесь идет закрытый ключ"
PostData = "Метод = GetInfo&= нонс" & NonceUnique
Вход = HexHash (PostData, SecretKey, "SHA512")
'Создание объекта WinHttpRequest и открыть его
Набор objHTTP = CreateObject ("WinHttp.WinHttpRequest.5.1")
objHTTP.Open "ПОСЛЕ", TradeApiSite, Ложные
objHTTP.SetRequestHeader "Тип содержимого", "применение / х-WWW-форм-urlencoded"
objHTTP.SetRequestHeader "ключ", APIkey
objHTTP.SetRequestHeader "Знак", Знак
objHTTP.Send (PostData)
objHTTP.WaitForResponse
Debug.Print PostData, "-", objHTTP.ResponseText
не указан objHTTP = Nothing
«{"успех": 0,"ошибка":"недопустимый знак"}
«{"успех": 1,"вернуть": {"фонды": {"доллар США": 0, и т.д.
End Sub
Функция HexHash (ByVal ClearText As String, ByVal ключ As String, Meth As String) As String
Dim hashedBytes () As Byte
Dim I As Integer
hashedBytes = computeHash (ClearText, ключ, Мет)
HexHash = ""
Для I = 0 до UBound (hashedBytes)
HexHash = HexHash & LCase (НЕХ (hashedBytes (я)))
следующий
End Function
Функция computeHash (ByVal ClearText As String, ByVal ключ As String, Meth As String) As Byte ()
Тусклое Bkey () As Byte
Тусклое BTxt () As Byte
BTxt = StrConv (ClearText, vbFromUnicode)
Bkey = StrConv (ключ, vbFromUnicode)
Если Meth = "SHA512" затем
Набор SHAhasher = CreateObject ("System.Security.Cryptography.HMACSHA512")
SHAhasher.key = Bkey
computeHash = SHAhasher.computeHash_2 (BTxt)
ElseIf Мет = "SHA256" затем
Набор SHAhasher = CreateObject ("System.Security.Cryptography.HMACSHA256")
SHAhasher.key = Bkey
computeHash = SHAhasher.computeHash_2 (BTxt)
еще
Набор SHAhasher = CreateObject ("System.Security.Cryptography.HMACSHA1")
SHAhasher.key = Bkey
computeHash = SHAhasher.computeHash_2 (BTxt)
End If
End Function