Новый, поэтому размещение здесь
Будь моим рефери и наслаждаться этим демо
вариант явного
'#
'#
'# HELP РАЗДЕЛ
'#
'#
'
'
'1, Создать учетную запись cex.io из https://cex.io/r/0/rbillig/0/ ( обязательное )
'2, Tranfer Bitcoins на Ваш счет
'3, Под вашей учетной записи CEX, создать общественный и секретный ключ
'4, 3 Изменить ВАР ниже (G_USERNAME, G_APIKEY, G_APIKEY_SECRET)
'5, если десятичный разделитель в вашей стране нет ",", изменить "G_SeparateurDecimalDuSyteme" (например, "," для Франции)
'6, пример ниже показано, как отображать баланс и оформить заказ
'7, 0.01 Отправить Bitcoins для "1EfjFxXX31z7PQBKFHe7UQ7LduR64Vczf5" и использовать этот базовый код Exemple делать все больше и больше
'
"Использование (после создания ACount и ключа и секретного ключа настройки):
'
'1, Сохранить содержимое в файл с именем C: \ test.vbs
'2, откройте командную строку для Windows (Пуск / Выполнить / тип "CMD" )
'3, тип "Cscript C: \ test.vbs"
'
'
"Если вы что-то выиграть с этим кодом, помочь мне и пожертвовать некоторые Bitcoins следующему адресу:
'
'1EfjFxXX31z7PQBKFHe7UQ7LduR64Vczf5
'
'
"Создатель Remy Биллиг - billig_remy@hotmail.com - Декабрь 2013 - (Франция)
"Особая благодарность Demon ( http://demon.tw )
'
'
"Донорство: "1EfjFxXX31z7PQBKFHe7UQ7LduR64Vczf5"
' Спасибо
' Больше информации : https://cex.io/api
'
'#
'#
'# END OF HELP РАЗДЕЛА
'#
'#
тусклый G_USERNAME, G_APIKEY, G_APIKEY_SECRET
G_USERNAME = "rbillig"
G_APIKEY = "Ваш ключ от https://cex.io/r/0/rbillig/0/"
G_APIKEY_SECRET = "Ваш секретный ключ https://cex.io/r/0/rbillig/0/"
тусклый G_SeparateurDecimalDuSyteme
G_SeparateurDecimalDuSyteme = ","
тусклый G_xmlhttp
установить G_xmlhttp = CreateObject ("MSXML2.ServerXMLHTTP.6.0")
G_xmlhttp.open "ПОЛУЧИТЬ", "https://cex.io/api//ticker/GHS/BTC"
G_xmlhttp.setRequestHeader "Тип содержимого","применение / х-WWW-форм-urlencoded"
главный()
Функция основной ()
если G_USERNAME = "rbillig" тогда
wscript.echo vbnewline
wscript.echo " ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !"
wscript.echo vbnewline
wscript.echo "1, Создать учетную запись cex.io из https://cex.io/r/0/rbillig/0/ ( обязательное )"
wscript.echo "2, Под вашей учетной записи CEX, создать общественный и секретный ключ (API выделенный)"
wscript.echo "3, Изменение 3 VARS G_USERNAME, G_APIKEY, G_APIKEY_SECRET"
wscript.echo " (В этом с: \ test.vbs файл)"
wscript.echo "4, 0.01 Отправить Bitcoins для 1EfjFxXX31z7PQBKFHe7UQ7LduR64Vczf5 (обязательно)"
wscript.echo " и использовать этот основной Exemple делать все больше и больше"
wscript.echo vbnewline
wscript.echo " Пожалуйста, прочтите раздел справки из этого с: \ test.vbs файл !!!"
wscript.echo vbnewline
wscript.echo " ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !"
wscript.echo vbnewline
еще
'
'
"Получить баланс
'
'
тусклый ObjetMyBalance
Установите ObjetMyBalance = GetBalance ()
«DisplayJasonObject (ObjetMyBalance)
wscript.echo vbnewline
wscript.echo vbnewline
wscript.echo "#"
wscript.echo "# Баланс перед заказом"
wscript.echo "#"
wscript.echo ObjetMyBalance.item ("BTC") ("доступный") & " BTC"
wscript.echo ObjetMyBalance.item ("СГС") ("доступный") & " СГС"
'Carrefull относительно количества запросов в минуту
знак равно> подождите 5 секунды между запросами
wscript.sleep 5000
'
"Оформить заказ на покупку 1 СГС по текущему курсу (если удалить комментарий ...)
'
'NB, если десятичный разделитель й системы является "," а не "," изменить G_SeparateurDecimalDuSyteme в начале
'
wscript.echo "Разместить заказ если удалить комментарий"
«Set Order = PlaceOrder ("СГС", "BTC", "купить", "1" Левый (ObjetMyBalance.item ("спрашивает") (0) (0), 8))
'Carrefull относительно количества запросов в минуту
знак равно> подождите 5 секунды между запросами снова
wscript.sleep 5000
Установите ObjetMyBalance = GetBalance ()
«DisplayJasonObject (ObjetMyBalance)
wscript.echo "#"
wscript.echo "# Остаток после заказа"
wscript.echo "#"
wscript.echo ObjetMyBalance.item ("BTC") ("доступный") & " BTC"
wscript.echo ObjetMyBalance.item ("СГС") ("доступный") & " СГС"
конец, если
End Function
«»»
«»»API ПОСВЯЩЕННЫЙ ФУНКЦИИ
«»»
«»»
«»»
Функция GetOrderBook (CUR_FROM, CUR_TO)
тусклый нонс, StringToEncode, подпись, JSONObject
G_xmlhttp.open "ПОЛУЧИТЬ", "https://cex.io/api/order_book/" & CUR_FROM &"/"& CUR_TO, ложь
G_xmlhttp.send ""
Установить JSONObject = Новый VbsJson
«Wscript.echo G_xmlhttp.responseText
Установите GetOrderBook = JsonObject.Decode (G_xmlhttp.responseText)
конец функции
Функция GetBalance ()
тусклый нонс, подпись, JSONObject
Nonce = Get_Nonce ()
подпись = hash_sha256 (нонс & G_USERNAME & G_APIKEY, G_APIKEY_SECRET)
G_xmlhttp.open "ПОСЛЕ", "https://cex.io/api/balance/", ложный
G_xmlhttp.setRequestHeader "Тип содержимого","применение / х-WWW-форм-urlencoded"
G_xmlhttp.send "ключ =" & G_APIKEY & "&подпись =" & подпись & "&= нонс" & данное время
Установить JSONObject = Новый VbsJson
«Wscript.echo G_xmlhttp.responseText
Установите GetBalance = JsonObject.Decode (G_xmlhttp.responseText)
конец функции
Функция PlaceOrder (CUR_FROM, CUR_TO, buy_or_sell, количество, цена)
тусклый нонс, StringToEncode, подпись, JSONObject
сумма = заменить (количество, G_SeparateurDecimalDuSyteme, "," )
цена = заменить (цена, G_SeparateurDecimalDuSyteme, "," )
Nonce = Get_Nonce ()
подпись = hash_sha256 (нонс & G_USERNAME & G_APIKEY, G_APIKEY_SECRET)
G_xmlhttp.open "ПОСЛЕ", "https://cex.io/api/place_order/" & CUR_FROM &"/"& CUR_TO, ложь
G_xmlhttp.setRequestHeader "Тип содержимого","применение / х-WWW-форм-urlencoded"
G_xmlhttp.send "ключ =" & G_APIKEY & "&подпись =" & подпись & "&= нонс" & данное время & "&тип =" & buy_or_sell & "&сумма =" & заменить (количество, G_SeparateurDecimalDuSyteme,",") & "&цена =" & заменить (цена, G_SeparateurDecimalDuSyteme,",")
Установить JSONObject = Новый VbsJson
Wscript.echo G_xmlhttp.responseText
Установите PlaceOrder = JsonObject.Decode (G_xmlhttp.responseText)
конец функции
Функция DisplayJasonObject (о)
тусклый я, J, K
Для каждого я в o.keys
Wscript.echo я
если г ="отметка времени" тогда
Wscript.echo vbtab & я & "---" & o.item (я)
конец, если
если г ="предложения" тогда
при = LBound (o.item (I)) в 5 «UBound (o.item (I))
wscript.echo vbtab & o.item (я) (J) (0) & "---" & o.item (я) (к) (1)
следующий
конец, если
если г ="спрашивает" тогда
при = LBound (o.item (I)) в 5 «UBound (o.item (I))
wscript.echo vbtab & o.item (я) (J) (0) & "---" & o.item (я) (к) (1)
следующий
конец, если
если г ="BTC" или я ="NMC" или я ="СГС" тогда
wscript.echo vbtab & "доступный" & " --- " & o.item (я) ("доступный")
wscript.echo vbtab & "заказы " & " --- " & o.item (я) ("заказы")
конец, если
следующий
конец функции
Функция hash_sha256 (StringToHash, KeyForHash)
«На dйclare л переменный раб а Crypter
Dim sha256, ObjUTF8, HMAC
Набор ObjUTF8 = CreateObject ("System.Text.UTF8Encoding")
установить sha256 = CreateObject ("system.security.cryptography.HMACSHA256")
'Hachage
sha256.Key = ObjUTF8.GetBytes_4 (KeyForHash)
HMAC = sha256.ComputeHash_2 (ObjUTF8.GetBytes_4 (StringToHash))
«Libйration де Ressources
sha256.Clear ()
'Отсылка су формат строки де типа шестнадцатеричных
тусклый я, а, strText
Для г = 1 Для LenB (HMAC)
а = & Правильно("0" & Шестигранный (AscB (MidB (HMAC, я, 1))), 2)
следующий
hash_sha256 = LCase (а)
End Function
Функция Get_Nonce ()
Get_Nonce = INT (10 * 24 * 3600 * (дата () + время ()))
конец функции
«»»
«»»JSon выделенные функции - Особая благодарность Demon ( http://demon.tw )
«»»
«»»
«»»
Класс VbsJson
«Автор: Demon
«Дата: 2012/5/3
'Веб-сайт: http://demon.tw
Частный Пробелы, NumberRegex, StringChunk
Частный B, F, г, п, т
Private Sub Class_Initialize
Пробелы = " " & vbTab & vbCr & vbLf
б = ChrW (
е = vbFormFeed
г = vbCr
п = vbLf
т = vbTab
Установить NumberRegex = New RegExp
NumberRegex.Pattern = "(- (?: 0 | [1-9] \ d *)) (\ \ d +). ([ЕЕ] [- +] \ d +?)?"
NumberRegex.Global = False
NumberRegex.MultiLine = True
NumberRegex.IgnoreCase = True
Установить StringChunk = New RegExp
StringChunk.Pattern = "([\ S \ S] *?) ([""\\\ x00- \ x1f])"
StringChunk.Global = False
StringChunk.MultiLine = True
StringChunk.IgnoreCase = True
End Sub
«Возвращает строковое представление JSON структуры данных VBScript
«Поддержка следующих объектов и типов
«+ ------------------- + --------------- +
«| VBScript | JSON |
«+ =================== + =============== +
«| Словарь | объект |
«+ ------------------- + --------------- +
«| Массив | массив |
«+ ------------------- + --------------- +
«| Строка | строка |
«+ ------------------- + --------------- +
«| Количество | номер |
«+ ------------------- + --------------- +
«| Правда | правда |
«+ ------------------- + --------------- +
«| Ложные | ложь |
«+ ------------------- + --------------- +
«| Null | нуль |
«+ ------------------- + --------------- +
Public Function Encode (ByRef объект)
Тусклое BUF, I, C, G
Набор БУФ = CreateObject ("Scripting.Dictionary")
Выберите Case VarType (объект)
Дело vbNull
buf.Add buf.Count, "ноль"
Дело vbBoolean
Если OBJ Тогда
buf.Add buf.Count, "правда"
еще
buf.Add buf.Count, "ложный"
End If
Дело vbInteger, vbLong, vbSingle, vbDouble
buf.Add buf.Count, OBJ
Дело vbString
buf.Add buf.Count, """"
Для г = 1 Для Len (OBJ)
с = Mid (OBJ, я, 1)
Select Case с
случай """" buf.Add buf.Count, "\"""
случай "\" buf.Add buf.Count, "\\"
случай "/" buf.Add buf.Count, "/"
Случай б buf.Add buf.Count, "\ б"
Случай е buf.Add buf.Count, "\ е"
Случай г buf.Add buf.Count, "\р"
Случай п buf.Add buf.Count, "\ п"
Случай т buf.Add buf.Count, "\ т"
Case Else
Если AscW (с)>= 0 и AscW (с) <= 31 Тогда
с = Right ("0" & Шестигранный (AscW (с)), 2)
buf.Add buf.Count, "\ u00" & с
еще
buf.Add buf.Count, с
End If
End Select
следующий
buf.Add buf.Count, """"
Дело VBArray + vbVariant
г = True
buf.Add buf.Count, "["
Для каждого я в OBJ
Если г Тогда г = False Else buf.Add buf.Count, ","
buf.Add buf.Count, Закодировать (я)
следующий
buf.Add buf.Count, "]"
Дело vbObject
Если TypeName (объект) = "Словарь" затем
г = True
buf.Add buf.Count, "{"
Для каждого я в OBJ
Если г Тогда г = False Else buf.Add buf.Count, ","
buf.Add buf.Count, """" & я & """" & ":" & Кодирование (OBJ (я))
следующий
buf.Add buf.Count, "}"
еще
Err.Raise 8732 ,,"Отсутствует объект словаря"
End If
Case Else
buf.Add buf.Count, """" & CStr (OBJ) & """"
End Select
Кодировать = Join (buf.Items, "")
End Function
«Вернуть представление VBScript в` `ул (` `
«Выполняет следующие переводы в декодировании
«+ --------------- + ------------------- +
«| JSON | VBScript |
«+ =============== + =================== +
«| объект | Словарь |
«+ --------------- + ------------------- +
«| массив | Массив |
«+ --------------- + ------------------- +
«| строка | Строка |
«+ --------------- + ------------------- +
«| номер | Двухместный |
«+ --------------- + ------------------- +
«| правда | Правда |
«+ --------------- + ------------------- +
«| ложь | Ложные |
«+ --------------- + ------------------- +
«| нуль | Null |
«+ --------------- + ------------------- +
Public Function Decode (ByRef ул)
Dim IDX
IDX = SkipWhitespace (ул, 1)
Если Середина (ул, IDX, 1) = "{" затем
Установить Декодирование = Scanonce (ул, 1)
еще
Декодирование = Scanonce (ул, 1)
End If
End Function
Private Function Scanonce (ByRef, ул ByRef IDX)
Dim с, мс
IDX = SkipWhitespace (ул, IDX)
с = Mid (ул, IDX, 1)
Если с = "{" затем
IDX = IDX + 1
Набор Scanonce = ParseObject (ул, IDX)
Exit Function
ElseIf с = "[" затем
IDX = IDX + 1
Scanonce = ParseArray (ул, IDX)
Exit Function
ElseIf с = """" затем
IDX = IDX + 1
Scanonce = ParseString (ул, IDX)
Exit Function
ElseIf с = "N" И StrComp ("ноль", Среднего (ул, IDX, 4)) = 0, то
IDX = IDX + 4
Scanonce = Null
Exit Function
ElseIf с = "T" И StrComp ("правда", Среднего (ул, IDX, 4)) = 0, то
IDX = IDX + 4
Scanonce = True
Exit Function
ElseIf с = "е" И StrComp ("ложный", Среднего (ул, IDX, 5)) = 0, то
IDX = IDX + 5
Scanonce = False
Exit Function
End If
Набор мс = NumberRegex.Execute (середина (ул, IDX))
Если ms.Count = 1 Тогда
IDX = IDX + мс (0) .Length
Scanonce = CDbl (заменить (мс (0), ",", G_SeparateurDecimalDuSyteme))
Exit Function
End If
Err.Raise 8732 ,,"Ни один объект JSON не может быть ScanOnced"
End Function
Private Function ParseObject (ByRef, ул ByRef IDX)
Dim с, ключ, значение
Набор ParseObject = CreateObject ("Scripting.Dictionary")
IDX = SkipWhitespace (ул, IDX)
с = Mid (ул, IDX, 1)
Если с = "}" затем
Exit Function
ElseIf с <> """" затем
Err.Raise 8732 ,,"Ожидая имя свойства"
End If
IDX = IDX + 1
Делать
ключ = ParseString (ул, IDX)
IDX = SkipWhitespace (ул, IDX)
Если Mid (ул, IDX, 1) <> ":" затем
Err.Raise 8732 ,,"Ожидая: Разделитель"
End If
IDX = SkipWhitespace (ул, IDX + 1)
Если Середина (ул, IDX, 1) = "{" затем
Заданное значение = Scanonce (ул, IDX)
еще
Значение = Scanonce (ул, IDX)
End If
ключ ParseObject.Add, значение
IDX = SkipWhitespace (ул, IDX)
с = Mid (ул, IDX, 1)
Если с = "}" затем
Exit Do
ElseIf с <> "," затем
Err.Raise 8732 ,,"Ожидая, разделитель"
End If
IDX = SkipWhitespace (ул, IDX + 1)
с = Mid (ул, IDX, 1)
Если с <> """" затем
Err.Raise 8732 ,,"Ожидая имя свойства"
End If
IDX = IDX + 1
петля
IDX = IDX + 1
End Function
Private Function ParseArray (ByRef, ул ByRef IDX)
Дим с, значение, значение
Установка значения = CreateObject ("Scripting.Dictionary")
IDX = SkipWhitespace (ул, IDX)
с = Mid (ул, IDX, 1)
Если с = "]" затем
ParseArray = values.Items
Exit Function
End If
Делать
IDX = SkipWhitespace (ул, IDX)
Если Середина (ул, IDX, 1) = "{" затем
Заданное значение = Scanonce (ул, IDX)
еще
Значение = Scanonce (ул, IDX)
End If
values.Add values.Count, значение
IDX = SkipWhitespace (ул, IDX)
с = Mid (ул, IDX, 1)
Если с = "]" затем
Exit Do
ElseIf с <> "," затем
Err.Raise 8732 ,,"Ожидая, разделитель"
End If
IDX = IDX + 1
петля
IDX = IDX + 1
ParseArray = values.Items
End Function
Private Function ParseString (ByRef, ул ByRef IDX)
Dim куски, содержание, терминатор, мс, ESC, символ
Набор куски = CreateObject ("Scripting.Dictionary")
Делать
Набор мс = StringChunk.Execute (середина (ул, IDX))
Если ms.Count = 0 Тогда
Err.Raise 8732 ,,"Незавершенный строка Отправной"
End If
содержание = мс (0) .Submatches (0)
терминатор = мс (0) .Submatches (1)
Если Len (содержание)> 0 Тогда
chunks.Add chunks.Count, содержание
End If
IDX = IDX + мс (0) .Length
Если терминатор = """" затем
Exit Do
ElseIf терминатор <> "\" затем
Err.Raise 8732 ,,"Недопустимый символ управления"
End If
Esc = Mid (ул, IDX, 1)
Если ESC <> "U" затем
Select Case ESC
случай """" символ = """"
случай "\" символ = "\"
случай "/" символ = "/"
случай "б" символ = Ь
случай "е" символ = F
случай "N" символ = п
случай "р" символ = г
случай "T" символ = т
Case Else Err.Raise 8732 ,,"Invalid побег"
End Select
IDX = IDX + 1
еще
символ = ChrW ("&ЧАС" & Середина (ул, IDX + 1, 4))
IDX = IDX + 5
End If
chunks.Add chunks.Count, голец
петля
ParseString = Join (chunks.Items, "")
End Function
Private Function SkipWhitespace (ByRef ул, ByVal IDX)
Do While IDX <= Len (строка) и _
InStr (Пробелы, Середина (ул, IDX, 1))> 0
IDX = IDX + 1
петля
SkipWhitespace = IDX
End Function
End Class



