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 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 }
public Procesar(RecargasViewModel _r, TarjetasViewModel _t, TipoTransaccion tt) { try { InitializeComponent(); rvm = _r; tvm = _t; tipotran = tt; Title = "Detalle de la orden"; CargaLabels(); NavigationPage.SetBackButtonTitle(this, ""); rvm.RecargaAltaErr += async(s, e) => { UserDialogs.Instance.HideLoading(); if (e != null) { //if (!String.IsNullOrEmpty(e.printdata)) // await DisplayAlert("Error", "Ocurrio un error, vuelva a intentar\n" + e.printdata, "OK"); //else string msg = ""; switch (e.err) { case 1: //RecargaSell msg = rvm.lsErrores().Where(x => x.iderror == rvm.Err.errRs).FirstOrDefault().error; break; case 2: //Vesta msg = rvm.lsErrores().Where(x => x.iderror == rvm.Err.errVs).FirstOrDefault().error; break; case 3: //Comunicaciones msg = rvm.lsErrores().Where(x => x.iderror == 9).FirstOrDefault().error; break; } if (!String.IsNullOrEmpty(e.msg)) { msg = e.msg; } await DisplayAlert("Error", "Ocurrio un error, vuelva a intentar\n" + msg, "OK"); } else { await DisplayAlert("Error", "Ocurrio un error, vuelva a intentar", "OK"); } }; rvm.CargaFinger += (s, e) => { FingerP(e.url, e.orgid, e.webses); }; av = async(s, ea) => { rvm.ProcesadoEnVesta1aVez -= av; UserDialogs.Instance.HideLoading(); if (ea.Error != null || ea.Cancelled) { await DisplayAlert("Error", "Ocurrio un error, vuelva a intentar", "OK"); } else { string msg = ""; if (rvm.Err.err > 0) { if (rvm.Tiporecarga == TipoRecarga.RecargaTA) { switch (rvm.Err.err) { case 1: //RecargaSell msg = rvm.lsErrores().Where(x => x.iderror == rvm.Err.errRs).FirstOrDefault().error; break; case 2: //Vesta msg = rvm.lsErrores().Where(x => x.iderror == rvm.Err.errVs).FirstOrDefault().error; break; case 3: //Comunicaciones msg = rvm.lsErrores().Where(x => x.iderror == 9).FirstOrDefault().error; break; } errRecarga err = JsonConvert.DeserializeObject <errRecarga>(ea.Result); msg += "\n" + err.tresp.rcode_description; } if (rvm.Tiporecarga == TipoRecarga.Monedero) { if (rvm.Err.err == 2) { msg = rvm.lsErrores().Where(x => x.iderror == rvm.Err.errVs).FirstOrDefault().error; } if (rvm.Err.err == 1) // err de RS, en este caso no es RS es monedero, se usa el mismo campo { msg = rvm.lsErrores().Where(x => x.iderror == rvm.Err.errRs).FirstOrDefault().error; } errRecarga err = JsonConvert.DeserializeObject <errRecarga>(ea.Result); msg += "\n" + err.tresp.rcode_description; } await DisplayAlert("Error", msg, "OK"); } else { await App.Nav.PushAsync(new Ticket(rvm), Constantes.animated); } } }; av2 = async(s, ea) => { rvm.ProcesadoEnVesta2aVez -= av2; UserDialogs.Instance.HideLoading(); if (ea.Error != null || ea.Cancelled) { await DisplayAlert("Error", "Ocurrio un error, vuelva a intentar", "OK"); } else { string msg = ""; if (rvm.Err.err > 0) { if (rvm.Tiporecarga == TipoRecarga.RecargaTA) { switch (rvm.Err.err) { case 1: //RecargaSell msg = rvm.lsErrores().Where(x => x.iderror == rvm.Err.errRs).FirstOrDefault().error; break; case 2: //Vesta msg = rvm.lsErrores().Where(x => x.iderror == rvm.Err.errVs).FirstOrDefault().error; break; case 3: //Comunicaciones msg = rvm.lsErrores().Where(x => x.iderror == 9).FirstOrDefault().error; break; } errRecarga err = JsonConvert.DeserializeObject <errRecarga>(ea.Result); msg += "\n" + err.tresp.rcode_description; } if (rvm.Tiporecarga == TipoRecarga.Monedero) { if (rvm.Err.err == 2) { msg = rvm.lsErrores().Where(x => x.iderror == rvm.Err.errVs).FirstOrDefault().error; } if (rvm.Err.err == 1) { msg = rvm.lsErrores().Where(x => x.iderror == 10).FirstOrDefault().error; } } await DisplayAlert("Error", msg, "OK"); } else { await App.Nav.PushAsync(new Ticket(rvm), Constantes.animated); } } }; aw = async(s, ea) => { rvm.AltaViaWallet -= aw; UserDialogs.Instance.HideLoading(); if (ea.Error != null || ea.Cancelled) { await DisplayAlert("Error", "Ocurrio un error, vuelva a intentar", "OK"); //await App.Nav.PopAsync(Constantes.animated); } else { string msg = ""; if (rvm.Err.err > 0) { switch (rvm.Err.err) { // 1 error no hay suficiente saldo // 2 error de sistema (BD) // 3 error de RS case 1: msg = "No se cuenta con suficiente saldo"; break; case 2: msg = "Error de sistema"; break; case 3: msg = "Error en la plataforma, contacte al número de soporte para atención"; break; } errRecarga err = JsonConvert.DeserializeObject <errRecarga>(ea.Result); msg += "\n" + err.tresp.rcode_description; await DisplayAlert("Error", msg, "OK"); //await App.Nav.PopAsync(Constantes.animated); } else { //await App.Nav.PopAsync(Constantes.animated); await App.Nav.PushAsync(new Ticket(rvm), Constantes.animated); } } }; btnProcesar.Clicked += async(sender, ea) => { nip n = new nip(); n.NipCorrecto += async(s, e) => { if (rvm.Tiporecarga == TipoRecarga.Monedero) { UserDialogs.Instance.ShowLoading("Recargando..."); await App.Nav.PopAsync(Constantes.animated); if (tt == TipoTransaccion.PrimeraVez) { rvm.TipoTrans = TipoTransaccion.PrimeraVez; rvm.ProcesadoEnVesta1aVez += av; rvm.AltaMonedero(tvm); } else { rvm.TipoTrans = TipoTransaccion.SegundaVez; rvm.ProcesadoEnVesta2aVez += av2; rvm.AltaMonedero(tvm); } } if (rvm.Tiporecarga == TipoRecarga.RecargaTA) { UserDialogs.Instance.ShowLoading("Recargando..."); await App.Nav.PopAsync(Constantes.animated); if (tt == TipoTransaccion.PrimeraVez) { rvm.TipoTrans = TipoTransaccion.PrimeraVez; if (rvm.idFormaPago == 1) { rvm.AltaViaWallet += aw; } if (rvm.idFormaPago == 2) { rvm.ProcesadoEnVesta1aVez += av; } rvm.Alta(tvm); } else { rvm.TipoTrans = TipoTransaccion.SegundaVez; if (rvm.idFormaPago == 1) { rvm.AltaViaWallet += aw; } if (rvm.idFormaPago == 2) { rvm.ProcesadoEnVesta2aVez += av2; } rvm.Alta(tvm); } } }; await App.Nav.PushAsync(n, Constantes.animated); }; btnMedios.Clicked += async(sender, ea) => { NuevaTarjeta nt = App.Nav.NavigationStack.OfType <NuevaTarjeta>().FirstOrDefault(); if (nt != null) { await App.Nav.PopAsync(Constantes.animated); } else { RegPago rp = App.Nav.NavigationStack.OfType <RegPago>().FirstOrDefault(); if (rp != null) { await App.Nav.PopAsync(Constantes.animated); } else { await App.Nav.PushAsync(new RegPago(rvm), Constantes.animated); } } }; } catch (Exception ex) { } }
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 }