private async Task CompletaRecarga3DSec(string idopenpaytr) { wsac.CargaOpenPay1aVezResponse v1r = new wsac.CargaOpenPay1aVezResponse(); wsac.Tarjeta t = Session["TarjetaParaRecargar"] as wsac.Tarjeta; r = Session["RecargaParaRecargar"] as wsac.Recarga; rvm = Session["rvm"] as RecargasViewModel; v1r = await ws.CargaOpenPay1aVezAsync(r, null, t, idopenpaytr, rvm.OpenPayDeviceId); errRecarga err = JsonConvert.DeserializeObject <errRecarga>(v1r.Body.CargaOpenPay1aVezResult); if (err.err > 0) { jsonErr = ws.GetCatalogo(6, ""); List <catErrores> lserr = JsonConvert.DeserializeObject <List <catErrores> >(jsonErr); string msg = ""; switch (err.err) { case 1: //RecargaSell msg = lserr.Where(x => x.iderror == err.errRs).FirstOrDefault().error; break; case 2: //Vesta msg = lserr.Where(x => x.iderror == err.errVs).FirstOrDefault().error; break; case 3: //Comunicaciones msg = lserr.Where(x => x.iderror == 9).FirstOrDefault().error; break; } if (!String.IsNullOrEmpty(err.tresp.rcode_description)) { msg += "\\n" + err.tresp.rcode_description; } //spnJS.Text = "<script>msgError('Ocurrio un error: " + ce.error + (!String.IsNullOrEmpty(err.tresp.printDatam_data) ? " " + err.tresp.printDatam_data : "") + "');</script>"; spnJS.Text = "<script>msgError('Ocurrio un error: " + msg + "');</script>"; } else { rvm = Session["rvm"] as RecargasViewModel; rvm.IdTarjeta = err.idtarjeta; Session["rvm"] = rvm; string ticket = ""; ticket += "TRANSACCIÓN " + err.tresp.transaction_id + "<br />"; ticket += "FECHA " + DateTime.Now.ToString("dd/MMM/yyyy") + "<br />"; ticket += "TRANSACCIÓN EXITOSA DE: " + (Session["catOperadora"] as catOperadora).operadora + "<br />"; ticket += "<b>MONTO: " + (Session["catPaquete"] as catPaquete).monto.ToString("c") + "</b><br />"; ticket += "celular: " + rvm.NumeroRecarga + "<br />"; ticket += "AUTORIZACIÓN: " + err.tresp.op_authorization + "<br />"; ticket += err.tresp.printDatam_data; spnJS.Text = "<script>ticket('" + ticket + "');</script>"; } }
private wsac.Tarjeta ConvierteTarjTemp(TarjetasViewModel tvm) { wsac.Tarjeta t = new wsac.Tarjeta() { titularFN = tvm.TitularFN, titularLN = tvm.TitularLN, calleynumero = tvm.CalleyNum, idestado = tvm.IdEstado, idciudad = tvm.IdCiudad, codigopostal = tvm.CP, idusuario = tvm.Idusuario, }; return(t); }
private wsac.Tarjeta ConvierteTarjTemp(TarjetasViewModel tvm) { wsac.Tarjeta t = new wsac.Tarjeta() { //idpais = tvm.idpais, //idemisor = tvm.idemisor, //numero = tvm.NumeroTarjeta, //expiramm = tvm.ExpiraMM, //expirayy = tvm.ExpiraYY, //cvv = tvm.Cvc, titularFN = tvm.TitularFN, titularLN = tvm.TitularLN, calleynumero = tvm.CalleyNum, idestado = tvm.IdEstado, idciudad = tvm.IdCiudad, codigopostal = tvm.CP, idusuario = tvm.Idusuario, }; return(t); }
private async Task Recargar() { rvm = Session["rvm"] as RecargasViewModel; tvm = Session["tvm"] as TarjetasViewModel; if (rvm.idFormaPago == 2) //tarjeta { if (rvm.TipoTrans == TipoTransaccion.PrimeraVez) { wsac.Tarjeta t = new wsac.Tarjeta() { idusuario = tvm.Idusuario, idpais = tvm.idpais, idemisor = tvm.idemisor, permtoken = tvm.NumeroTarjeta, Last4 = tvm.Last4, titularFN = tvm.TitularFN, titularLN = tvm.TitularLN, calleynumero = tvm.CalleyNum, idestado = tvm.IdEstado, idciudad = tvm.IdCiudad, codigopostal = tvm.CP, expirationMMYY = tvm.ExpiraMM + tvm.ExpiraYY, }; wsac.AltaRecargaMonederoResponse ar = new wsac.AltaRecargaMonederoResponse(); wsac.CargaOpenPay1aVezResponse v1r = new wsac.CargaOpenPay1aVezResponse(); rm = new wsac.RecargaMonedero() { idusuario = rvm.IdUsuario, idtarjeta = (rvm.idFormaPago == 2) ? rvm.IdTarjeta : -1, monto = rvm.MontoRecargaMonedero, fecha = DateTime.Now, TransactionID = Guid.NewGuid().ToString(), os = Request.UserAgent, ip = Request.UserHostAddress, err = -1 // -1 es una recarga recien creada q aun no ha sido procesada (pagada) }; try { ws = Session["wsac"] as wsac.IsacClient; ar = await ws.AltaRecargaMonederoAsync(rm); GetSessionTags tags = JsonConvert.DeserializeObject <GetSessionTags>(ar.Body.AltaRecargaMonederoResult); FingerP(tags.OrgID, tags.WebSessionID); await Task.Delay(TimeSpan.FromSeconds(10)); tk = await TempToken(tvm); if (tk.ResponseCode == 0) { t.permtoken = tk.ChargeAccountNumberToken; t.Last4 = tk.PaymentDeviceLast4; rm.idrecargamonedero = tags.idrecarga; v1r = await ws.CargaOpenPay1aVezAsync(null, rm, t, tags.WebSessionID, ""); errRecarga err = JsonConvert.DeserializeObject <errRecarga>(v1r.Body.CargaOpenPay1aVezResult); if (err.err > 0) { jsonErr = ws.GetCatalogo(6, ""); List <catErrores> lserr = JsonConvert.DeserializeObject <List <catErrores> >(jsonErr); string msg = ""; switch (err.err) { case 1: //RecargaSell msg = lserr.Where(x => x.iderror == err.errRs).FirstOrDefault().error; break; case 2: //Vesta msg = lserr.Where(x => x.iderror == err.errVs).FirstOrDefault().error; break; case 3: //Comunicaciones msg = lserr.Where(x => x.iderror == 9).FirstOrDefault().error; break; } if (!String.IsNullOrEmpty(err.tresp.rcode_description)) { msg += "\\n" + err.tresp.rcode_description; } //spnJS.Text = "<script>msgError('Ocurrio un error: " + ce.error + (!String.IsNullOrEmpty(err.tresp.printDatam_data) ? " " + err.tresp.printDatam_data : "") + "');</script>"; spnJS.Text = "<script>msgError('Ocurrio un error: " + msg + "');</script>"; } else { rvm = Session["rvm"] as RecargasViewModel; rvm.IdTarjeta = err.idtarjeta; Session["rvm"] = rvm; string ticket = ""; ticket += "TRANSACCIÓN " + err.tresp.transaction_id + "<br />"; ticket += "FECHA " + DateTime.Now.ToString("dd/MMM/yyyy") + "<br />"; ticket += "TRANSACCIÓN EXITOSA<br />"; ticket += "<b>MONTO: " + rvm.MontoRecargaMonedero.ToString("c") + "</b><br />"; spnJS.Text = "<script>ticket('" + ticket + "');</script>"; } } else { spnJS.Text = "<script>msgError('Ocurrio un error');</script>"; } } catch (Exception ex) { spnJS.Text = "<script>msgError('Ocurrio un error');</script>"; } } //----------------------------------------------------------------------------------- if (rvm.TipoTrans == TipoTransaccion.SegundaVez) { rm = new wsac.RecargaMonedero() { idusuario = rvm.IdUsuario, idtarjeta = (rvm.idFormaPago == 2) ? rvm.IdTarjeta : -1, monto = rvm.MontoRecargaMonedero, fecha = DateTime.Now, TransactionID = Guid.NewGuid().ToString(), os = Request.UserAgent, ip = Request.UserHostAddress, err = -1 // -1 es una recarga recien creada q aun no ha sido procesada (pagada) }; wsac.CargaVesta2aVezResponse v2r = new wsac.CargaVesta2aVezResponse(); try { ws = Session["wsac"] as wsac.IsacClient; v2r = await ws.CargaVesta2aVezAsync(null, rm, ""); errRecarga err = JsonConvert.DeserializeObject <errRecarga>(v2r.Body.CargaVesta2aVezResult); if (err.err > 0) { jsonErr = ws.GetCatalogo(6, ""); List <catErrores> lserr = JsonConvert.DeserializeObject <List <catErrores> >(jsonErr); string msg = ""; switch (err.err) { case 1: //RecargaSell msg = lserr.Where(x => x.iderror == err.errRs).FirstOrDefault().error; break; case 2: //Vesta msg = lserr.Where(x => x.iderror == err.errVs).FirstOrDefault().error; break; case 3: //Comunicaciones msg = lserr.Where(x => x.iderror == 9).FirstOrDefault().error; break; } if (!String.IsNullOrEmpty(err.tresp.rcode_description)) { msg += "\\n" + err.tresp.rcode_description; } spnJS.Text = "<script>msgError('Ocurrio un error: " + msg + "');</script>"; } else { string ticket = ""; ticket += "TRANSACCIÓN " + err.tresp.transaction_id + "<br />"; ticket += "FECHA " + DateTime.Now.ToString("dd/MMM/yyyy") + "<br />"; ticket += "TRANSACCIÓN EXITOSA<br />"; ticket += "<b>MONTO: " + rvm.MontoRecargaMonedero.ToString("c") + "</b><br />"; spnJS.Text = "<script>ticket('" + ticket + "');</script>"; } } catch (Exception ex) { spnJS.Text = "<script>msgError('Ocurrio un error');</script>"; } } // if segundavez } // if formapago = 2 }
private async Task Recargar() //btnRecargar.Click += async (s, ea) => { rvm = Session["rvm"] as RecargasViewModel; tvm = Session["tvm"] as TarjetasViewModel; if (rvm.idFormaPago == 1) //monedero { r = new wsac.Recarga() { idusuario = rvm.IdUsuario, idpais = rvm.idpais, idoperadora = rvm.idoperadora, idpaquete = rvm.idpaquete, idformapago = rvm.idFormaPago, idtarjeta = (rvm.idFormaPago == 2) ? rvm.IdTarjeta : -1, numerorecarga = rvm.NumeroRecarga, contactorecarga = rvm.ContactoRecarga, fecha = DateTime.Now, TransactionID = Guid.NewGuid().ToString(), err = -1, // -1 es una recarga recien creada q aun no ha sido procesada (pagada) os = Request.UserAgent, ip = Request.UserHostAddress, }; wsac.AltaRecargaViaWalletResponse vwr = new wsac.AltaRecargaViaWalletResponse(); try { ws = Session["wsac"] as wsac.IsacClient; vwr = await ws.AltaRecargaViaWalletAsync(r); errRecarga err = JsonConvert.DeserializeObject <errRecarga>(vwr.Body.AltaRecargaViaWalletResult); if (err.err > 0) { jsonErr = ws.GetCatalogo(6, ""); List <catErrores> lserr = JsonConvert.DeserializeObject <List <catErrores> >(jsonErr); string msg = ""; switch (err.err) { case 1: //RecargaSell msg = lserr.Where(x => x.iderror == err.errRs).FirstOrDefault().error; break; case 2: //Vesta msg = lserr.Where(x => x.iderror == err.errVs).FirstOrDefault().error; break; case 3: //Comunicaciones msg = lserr.Where(x => x.iderror == 9).FirstOrDefault().error; break; } if (!String.IsNullOrEmpty(err.tresp.rcode_description)) { msg += "\\n" + err.tresp.rcode_description; } spnJS.Text = "<script>msgError('Ocurrio un error: " + msg + "');</script>"; } else { string ticket = ""; ticket += "TRANSACCIÓN " + err.tresp.transaction_id + "<br />"; ticket += "FECHA " + DateTime.Now.ToString("dd/MMM/yyyy") + "<br />"; ticket += "TRANSACCIÓN EXITOSA DE: " + (Session["catOperadora"] as catOperadora).operadora + "<br />"; ticket += "<b>MONTO: " + (Session["catPaquete"] as catPaquete).monto.ToString("c") + "</b><br />"; ticket += "celular: " + rvm.NumeroRecarga + "<br />"; ticket += "AUTORIZACIÓN: " + err.tresp.op_authorization + "<br />"; ticket += err.tresp.printDatam_data; spnJS.Text = "<script>ticket('" + ticket + "');</script>"; } //spnJS.Text = "<script>ticket('prueba');</script>"; } catch (Exception ex) { //Aqui modifico Pablo y se regreso como estaba, aqui no esta el detalle spnJS.Text = "<script>msgError('Ocurrio un error');</script>"; } } //------------------------------------------------------------------------------ if (rvm.idFormaPago == 2) //tarjeta { if (rvm.TipoTrans == TipoTransaccion.PrimeraVez) { wsac.Tarjeta t = new wsac.Tarjeta() { idusuario = tvm.Idusuario, idpais = tvm.idpais, idemisor = tvm.idemisor, permtoken = tvm.NumeroTarjeta, Last4 = tvm.Last4, titularFN = tvm.TitularFN, titularLN = tvm.TitularLN, calleynumero = tvm.CalleyNum, idestado = tvm.IdEstado, idciudad = tvm.IdCiudad, codigopostal = tvm.CP, expirationMMYY = tvm.ExpiraMM + tvm.ExpiraYY, }; r = new wsac.Recarga() { idusuario = rvm.IdUsuario, idpais = rvm.idpais, idoperadora = rvm.idoperadora, idpaquete = rvm.idpaquete, idformapago = rvm.idFormaPago, idtarjeta = (rvm.idFormaPago == 2) ? rvm.IdTarjeta : -1, numerorecarga = rvm.NumeroRecarga, contactorecarga = rvm.ContactoRecarga, fecha = DateTime.Now, TransactionID = Guid.NewGuid().ToString(), err = -1, // -1 es una recarga recien creada q aun no ha sido procesada (pagada) os = Request.UserAgent, ip = Request.UserHostAddress, }; try { ws = Session["wsac"] as wsac.IsacClient; r.idrecarga = ws.AltaRecarga(r); t.permtoken = rvm.OpenPayTokenId; t.Last4 = (!String.IsNullOrEmpty(tvm.NumeroTarjeta) ? tvm.NumeroTarjeta.Substring(tvm.NumeroTarjeta.Length - 4, 4) : ""); var response3d = await ws.Carga3DSecureAsync(r, null, rvm.OpenPayDeviceId, t, 1); var redirect = JsonConvert.DeserializeObject <Response3dSecure>(response3d.Body.Carga3DSecureResult); if (!redirect.err) { Session["TarjetaParaRecargar"] = t; Session["RecargaParaRecargar"] = r; Response.Redirect(redirect.desc, false); return; } else { string strerrcard = ""; int errcard = 0; int.TryParse(redirect.desc, out errcard); switch (errcard) { case 3001: strerrcard = "La tarjeta fue declinada."; break; case 3002: strerrcard = "La tarjeta ha expirado."; break; case 3003: strerrcard = "La tarjeta no tiene fondos suficientes."; break; case 3004: strerrcard = "La tarjeta ha sido identificada como una tarjeta robada."; break; case 3005: strerrcard = "La tarjeta ha sido rechazada por el sistema antifraudes."; break; case 3006: strerrcard = "La operación no esta permitida para este cliente o esta transacción."; break; case 3007: strerrcard = "Deprecado. La tarjeta fue declinada."; break; case 3008: strerrcard = "La tarjeta no es soportada en transacciones en línea."; break; case 3009: strerrcard = "La tarjeta fue reportada como perdida."; break; case 3010: strerrcard = "El banco ha restringido la tarjeta."; break; case 3011: strerrcard = "El banco ha solicitado que la tarjeta sea retenida. Contacte al banco."; break; case 3012: strerrcard = "Se requiere solicitar al banco autorización para realizar este pago."; break; } spnJS.Text = "<script>msgError('Ocurrio un error: " + strerrcard + "');</script>"; } } //Este es el exception que salta catch (Exception ex) { spnJS.Text = "<script>msgError('Ocurrio un error: " + r.err.ToString() + "');</script>"; } } //----------------------------------------------------------------------------------- if (rvm.TipoTrans == TipoTransaccion.SegundaVez) { wsac.Tarjeta t = new wsac.Tarjeta() { idtarjeta = rvm.IdTarjeta }; r = new wsac.Recarga() { idusuario = rvm.IdUsuario, idpais = rvm.idpais, idoperadora = rvm.idoperadora, idpaquete = rvm.idpaquete, idformapago = rvm.idFormaPago, idtarjeta = (rvm.idFormaPago == 2) ? rvm.IdTarjeta : -1, numerorecarga = rvm.NumeroRecarga, contactorecarga = rvm.ContactoRecarga, fecha = DateTime.Now, TransactionID = Guid.NewGuid().ToString(), err = -1, // -1 es una recarga recien creada q aun no ha sido procesada (pagada) os = Request.UserAgent, ip = Request.UserHostAddress, }; try { ws = Session["wsac"] as wsac.IsacClient; r.idrecarga = ws.AltaRecarga(r); var response3d = await ws.Carga3DSecureAsync(r, null, rvm.OpenPayDeviceId, t, 2); var redirect = JsonConvert.DeserializeObject <Response3dSecure>(response3d.Body.Carga3DSecureResult); if (!redirect.err) { Session["TarjetaParaRecargar"] = t; Session["RecargaParaRecargar"] = r; Response.Redirect(redirect.desc, false); return; } else { string strerrcard = ""; int errcard = 0; int.TryParse(redirect.desc, out errcard); switch (errcard) { case 3001: strerrcard = "La tarjeta fue declinada."; break; case 3002: strerrcard = "La tarjeta ha expirado."; break; case 3003: strerrcard = "La tarjeta no tiene fondos suficientes."; break; case 3004: strerrcard = "La tarjeta ha sido identificada como una tarjeta robada."; break; case 3005: strerrcard = "La tarjeta ha sido rechazada por el sistema antifraudes."; break; case 3006: strerrcard = "La operación no esta permitida para este cliente o esta transacción."; break; case 3007: strerrcard = "Deprecado. La tarjeta fue declinada."; break; case 3008: strerrcard = "La tarjeta no es soportada en transacciones en línea."; break; case 3009: strerrcard = "La tarjeta fue reportada como perdida."; break; case 3010: strerrcard = "El banco ha restringido la tarjeta."; break; case 3011: strerrcard = "El banco ha solicitado que la tarjeta sea retenida. Contacte al banco."; break; case 3012: strerrcard = "Se requiere solicitar al banco autorización para realizar este pago."; break; } spnJS.Text = "<script>msgError('Ocurrio un error: " + strerrcard + "');</script>"; } } catch (Exception ex) { spnJS.Text = "<script>msgError('Ocurrio un error: " + r.err.ToString() + "');</script>"; } } // if segundavez } // if formapago = 2 }