private Exception JsonError(JObject obj) { if (obj.Property("error_code") == null || obj.Property("error_code").ToString() == "") { return(new Exception("\"error_code\" not found in raw json string!")); } else { return(new Exception(SpotErrcode2Msg.Prase(obj["error_code"].ToString()))); } }
public List <Order> GetOrdersStatus(string tradingpair, out string rawresponse) { CheckSet(); Order order = null; string url = GetPublicApiURL("", "order_info.do"); RestClient rc = new RestClient(url); if (_proxy != null) { rc.Proxy = new WebProxy(_proxy.IP, Convert.ToInt32(_proxy.Port)); } RestRequest rr = new RestRequest(Method.POST); rr.AddParameter("api_key", _key); rr.AddParameter("symbol", tradingpair); rr.AddParameter("order_id", -1); Dictionary <String, String> paras = new Dictionary <String, String>(); paras.Add("api_key", _key); paras.Add("symbol", tradingpair); paras.Add("order_id", "-1"); String sign = MD5Util.buildMysignV1(paras, _secret); rr.AddParameter("sign", sign); var response = new RestClient(url).Execute(rr); rawresponse = response.Content; try { JObject obj = JObject.Parse(rawresponse); if (obj.Property("error_code") != null) { throw (new Exception(SpotErrcode2Msg.Prase(obj["error_code"].ToString()))); } if (!Convert.ToBoolean(obj["result"])) { throw (new Exception("error:" + rawresponse)); } JArray orders = JArray.Parse(obj["orders"].ToString()); if (orders.Count > 0) { List <Order> orders_array = new List <Order>(); for (int i = 0; i < orders.Count; i++) { order = new Order(); order.Id = orders[i]["order_id"].ToString(); order.Amount = Convert.ToDouble(orders[i]["amount"].ToString()); order.DealAmount = Convert.ToDouble(orders[i]["deal_amount"].ToString()); order.Price = Convert.ToDouble(orders[i]["price"].ToString()); order.Type = GetOrderTypeFromString(orders[i]["type"].ToString()); order.Status = GetOrderStatus(orders[i]["status"].ToString()); order.TradingPair = orders[i]["symbol"].ToString(); order.CreatDate = CommonLab.TimerHelper.ConvertStringToDateTime(Convert.ToDouble(orders[i]["create_date"].ToString()) / 1000); orders_array.Add(order); } return(orders_array); } } catch (Exception e) { Exception err = new Exception("订单获取解析json失败" + e.Message); throw err; } return(null); }
protected string Trade(OrderType type, string tradingpair, double price, double amount) { CheckSet(); string url = GetPublicApiURL("", "trade.do"); RestClient rc = new RestClient(url); if (_proxy != null) { rc.Proxy = new WebProxy(_proxy.IP, Convert.ToInt32(_proxy.Port)); } RestRequest rr = new RestRequest(Method.POST); rr.AddParameter("api_key", _key); rr.AddParameter("symbol", tradingpair); Dictionary <String, String> paras = new Dictionary <String, String>(); paras.Add("api_key", _key); paras.Add("symbol", tradingpair); switch (type) { case OrderType.ORDER_TYPE_BUY: paras.Add("type", "buy"); paras.Add("price", price.ToString()); rr.AddParameter("type", "buy"); rr.AddParameter("price", price.ToString()); break; case OrderType.ORDER_TYPE_SELL: paras.Add("type", "sell"); paras.Add("price", price.ToString()); rr.AddParameter("type", "sell"); rr.AddParameter("price", price.ToString()); break; case OrderType.ORDER_TYPE_MARKETBUY: paras.Add("type", "buy_market"); rr.AddParameter("type", "buy_market"); break; case OrderType.ORDER_TYPE_MARKETSELL: paras.Add("type", "sell_market"); rr.AddParameter("type", "sell_market"); break; } paras.Add("amount", amount.ToString()); rr.AddParameter("amount", amount.ToString()); String sign = MD5Util.buildMysignV1(paras, _secret); rr.AddParameter("sign", sign); var response = new RestClient(url).Execute(rr); string rawresponse = response.Content; try { JObject obj = JObject.Parse(rawresponse); if (!Convert.ToBoolean(obj["result"])) { throw (new Exception("error:" + SpotErrcode2Msg.Prase(obj["error_code"].ToString()))); } return(obj["order_id"].ToString()); } catch (Exception e) { throw e; } }