public HttpResponseMessage Verifica_Estado_Transaccion(string pUsuario, string pID_Transaccion_Monedero) { HttpResponseMessage respuesta = null; try { CripMonEntities db = new CripMonEntities(); PA_bsc_Empresa_Result Empresa = db.PA_bsc_Empresa(Convert.ToInt32(ConfigurationManager.AppSettings["Empresa"].ToString())).FirstOrDefault(); var coinPayment = new CoinPayments(Empresa.Llave_Privada, Empresa.Llave_Publica); string jsonResult = null; SortedList <string, string> parms = new SortedList <string, string>(); parms.Add("txid", pID_Transaccion_Monedero); var result = coinPayment.Get_Tx_Info(parms, out jsonResult); if (result["error"].ToString() == "ok") { var ret = new Dictionary <string, object>(); Dictionary <string, object> res = result["result"] as Dictionary <string, object>; string vEstado_Transaccion = res["status_text"].ToString(); if (vEstado_Transaccion == "Complete") { db.PA_Actualiza_Estado(pUsuario, pID_Transaccion_Monedero); } respuesta = Request.CreateResponse(HttpStatusCode.OK, vEstado_Transaccion); } } catch (Exception ex) { respuesta = Request.CreateErrorResponse(HttpStatusCode.Conflict, (ex.InnerException == null) ? ex.Message : ex.InnerException.Message); } return(respuesta); }
public HttpResponseMessage Compra(CCompra pModelo) { HttpResponseMessage respuesta = null; try { CripMonEntities db = new CripMonEntities(); PA_bsc_Empresa_Result Empresa = db.PA_bsc_Empresa(Convert.ToInt32(ConfigurationManager.AppSettings["Empresa"].ToString())).FirstOrDefault(); CoinPayments payment = new CoinPayments(Empresa.Llave_Privada, Empresa.Llave_Publica); SortedList <string, string> parms = new SortedList <string, string>(); parms.Add("amount", pModelo.producto.Monto.ToString()); parms.Add("currency1", "ETH"); parms.Add("currency2", "ETH"); string jsonResult = null; Dictionary <string, object> result = payment.CreateTransaction(parms, out jsonResult); if (result["error"].ToString() == "ok") { CCoinPaymentMessage cpRespuesta = (jsonResult == null) ? null : JObject.Parse(jsonResult).ToObject <CCoinPaymentMessage>(); db.PA_Transaccion(cpRespuesta.result.txn_id, Convert.ToInt32(ConfigurationManager.AppSettings["Monedero"].ToString()), null, pModelo.persona.Usuario, jsonResult, pModelo.producto.Producto, cpRespuesta.result.amount, Convert.ToInt32(cpRespuesta.result.timeout), cpRespuesta.result.status_url, cpRespuesta.result.qrcode_url, cpRespuesta.result.address); respuesta = Request.CreateResponse(HttpStatusCode.OK, true); } else { string errResult = null; switch (result["error"].ToString()) { case "HMAC signature does not match": errResult = "Cartera no reconocida"; break; default: errResult = "Error desconocido."; break; } respuesta = Request.CreateResponse(HttpStatusCode.NotImplemented, errResult); } } catch (Exception ex) { respuesta = Request.CreateErrorResponse(HttpStatusCode.Conflict, (ex.InnerException == null) ? ex.Message : ex.InnerException.Message); } return(respuesta); }