public static bool IsValidBitAddress(string bitAddress, out int satoshi) { satoshi = 0; if (string.IsNullOrWhiteSpace(bitAddress)) { return(false); } var apiEndpoint = "https://blockchain.info/it/q/addressbalance/" + bitAddress; HttRequestData requestData = new HttRequestData(); requestData.Method = HttpConstant.RequestMethod.GET; requestData.Endpoint = apiEndpoint; string result = string.Empty; try { result = HttpUtils.MakeRequest(requestData); } catch { } // nếu đúng địa chỉ bit address thì response là số integer thể hiện lượng BTC Amount (Đơn vị Satoshi) try { satoshi = int.Parse(result); return(true); } catch { return(false); } }
/// <summary> /// Chuyển đổi tiền tệ thành BTC. /// Ví dụ muốn đổi 500 USD sang BTC => currencyCode = USD, value = 500 /// </summary> /// <param name="currencyCode">Mã đơn vị tiền tệ</param> /// <param name="value">Số tiền cần chuyển</param> /// <returns></returns> public static double ConvertCurrencyToBTC(string currencyCode, float value) { string apiEndpoint = string.Format("https://blockchain.info/tobtc?currency={0}&value={1}", currencyCode, value); HttRequestData requestData = new HttRequestData(); requestData.Method = HttpConstant.RequestMethod.GET; requestData.Endpoint = apiEndpoint; string jsonResult = HttpUtils.MakeRequest(requestData); return(double.Parse(jsonResult)); }
/// <summary> /// Lấy tỉ giá BTC theo từng đơn vị tiền tệ /// </summary> /// <returns></returns> public static List <BTCRateWrapper> GetBTCRates() { List <BTCRateWrapper> rates = new List <BTCRateWrapper>(); BTCRateWrapper btcRate = null; HttRequestData requestData = new HttRequestData(); requestData.Method = HttpConstant.RequestMethod.GET; requestData.Endpoint = "https://blockchain.info/vi/ticker"; string jsonResult = HttpUtils.MakeRequest(requestData); //@"{""key1"":""value1"",""key2"":""value2""}"; var o = JObject.Parse(jsonResult); foreach (JToken child in o.Children()) { btcRate = new BTCRateWrapper(); var currencyProperty = child as JProperty; btcRate.CurrencyCode = currencyProperty.Name; foreach (JToken grandChild in child) { foreach (JToken grandGrandChild in grandChild) { var property = grandGrandChild as JProperty; if (property != null) { //Console.WriteLine(property.Name + ":" + property.Value); string value = property.Value.ToString(); switch (property.Name) { case "15m": // 15 phút delay trên chợ Bitcoin break; case "last": btcRate.Last = value; break; case "buy": btcRate.Buy = value; break; case "sell": btcRate.Sell = value; break; case "symbol": btcRate.Symbol = value; break; default: break; } } } } rates.Add(btcRate); } //Dictionary<string, string> rateDics = JsonConvert.DeserializeObject<Dictionary<string, string>>(jsonResult); //foreach (var pair in rateDics) //{ // BTCRateWrapper wrapper = new BTCRateWrapper { CurrencyCode = pair.Key }; // BTCRateDetail detail = JsonConvert.DeserializeObject<BTCRateDetail>(pair.Value); // lỗi éo parse được do json format không có key // wrapper.Details = detail; // rates.Add(wrapper); //} return(rates); }