Я могу подписать каждый отдельный вызов API, кроме ордера на покупку / продажу.Это единственный вызов с запросом JSON.Все остальные звонки имеют форму URL в кодировке.Всегда возвращается «ошибка подписи» или «невозможно сериализовать в JSON».
Конечная точка информации о балансе «/ баланс / информация»
Конечная точка ордера размещения «/ ордер / лимит»
ref: Документ CoinEx API doc
Ключ API: 09D8485F15B145F5B48D79B8E0FF4C8D
Секрет API: 2F27E476B09140AA8E0B0F80CA4832A5F013 * 1401мой ключ.Я удалю его после, но ключ / секрет действителен
Private CoinEXAPIurl As String = "https://api.coinex.com/v1"
Private Function PrivateApiAsync(ByVal requestEndPoint As String, ByVal RequestType As HttpMethod, ByVal Params As Dictionary(Of String, String), Optional ByVal IncludeST As Boolean = True) As CallResult
Dim ErrMSG As String = "Unknown Error"
Try
Dim xhttp As New HttpClient()
Dim request As New HttpRequestMessage
Dim sign As String = ""
Dim Parameters As String = ""
Dim tonce = Int(DateTime.Now.ToUniversalTime.Subtract(New DateTime(1970, 1, 1)).TotalMilliseconds)
Dim newparam As New Dictionary(Of String, String)
newparam.Add("access_id", _Credentials.APIKey)
For Each entry In Params
newparam.Add(entry.Key, entry.Value)
Next
newparam.Add("tonce", tonce)
Dim FormURLEncodedSTR = New FormUrlEncodedContent(newparam).ReadAsStringAsync.Result
sign = GetHash(FormURLEncodedSTR & "&" & "secret_key=" & _Credentials.APISecret)
With request
.Headers.Add("authorization", sign)
.Headers.UserAgent.ParseAdd("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36")
.Method = RequestType
If RequestType = HttpMethod.Post Then
.RequestUri = New Uri(CoinEXAPIurl & requestEndPoint)
.Content = New StringContent(Json_.Serialize(newparam), Encoding.UTF8, "application/json")
Else
.RequestUri = New Uri(CoinEXAPIurl & requestEndPoint & "?" & FormURLEncodedSTR)
End If
End With
Dim result = xhttp.SendAsync(request).Result
Dim xcontent = result.Content.ReadAsStringAsync.Result
Dim jData = Json_.DeserializeObject(xcontent)
Dim Success As Boolean = False
If jData("code") <> 0 Then
ErrMSG = jData("message")
Else
Success = True
Return New CallResult With {.Data = Json_.Serialize(jData("data")), .ErrorMSG = "", .Success = Success}
End If
Catch ex As Exception
Return New CallResult With {.Data = "", .ErrorMSG = ex.Message.ToString, .Success = False}
End Try
Return New CallResult With {.Data = "", .ErrorMSG = ErrMSG, .Success = False}
End Function