public ResponseBussiness <PagoServiciosResponse> OpcionesAdicionales(InfoElementosRequest pagoServiciosRequest) { SecurityCCK.encripta encripta = new encripta(); return(tryCatch.SafeExecutor(() => { object cuenta = pagoServiciosRequest.Cuenta; var cuanteEncripatada = encripta.Encrypt(ref cuenta); string xmlDevDat = ""; if (pagoServiciosRequest.InfoAdicional != null) { xmlDevDat = this.Form2_xmlDevData(this.ObtenerElementosAdicionales(pagoServiciosRequest.InfoAdicional, pagoServiciosRequest.InfoAdicional.ModuloId)); } ProxyPagoServicios.InfoResponse infoResponse = GetInfo(pagoServiciosRequest.SkuCode, cuanteEncripatada.ToString(), xmlDevDat); PagoServiciosResponse pagos = new PagoServiciosResponse(); pagos.ModuloId = infoResponse.m_moduleId; pagos.ElementosFormulario = this.ObtenerElementos(infoResponse.m_form).ToArray(); return pagos; })); }
/// <summary> /// Constructor de tiempo aire /// </summary> public AdministracionPagoServiciosBusiness(TokenDto token) { this.token = token; repository = new PagoServiciosRepository(token); inforService = new InfoService(); externosRepository = new InformacionServiciosExternosRepository(); inforService = externosRepository.ObtenerInfoServicioExterno(12); transact = new ProxyPagoServicios.transactSoapClient(); transact.Endpoint.Address = new System.ServiceModel.EndpointAddress(inforService.UrlService); credenciales = new CredencialesServicioExterno(); credenciales = new InformacionServiciosExternosBusiness().ObtenerCredencialesPagoServicios(); SecurityCCK.encripta encripta = new encripta(); object userName = credenciales.UserName; object pwd = credenciales.Password; var obj = encripta.Encrypt(ref userName); var obje2 = encripta.Encrypt(ref pwd); this.credenciales.UserName = obj.ToString(); this.credenciales.Password = obje2.ToString(); }
/// <summary> /// Pago de servicio /// </summary> /// <returns></returns> public ResponseBussiness <OperationResponse> PagoServicio(PagoServiciosRequest pagoServiciosRequest, float monto, string folio) { SecurityCCK.encripta encripta = new encripta(); int intento = 1; string resultadoConfirmarEnvioRecibido = ""; return(tryCatch.SafeExecutor(() => { OperationResponse operation = new OperationResponse(); string requestId = string.Empty; requestId = GetRequestId(0); if (requestId != "") { object cuenta = pagoServiciosRequest.Cuenta; var cuanteEncripatada = encripta.Encrypt(ref cuenta); ProxyPagoServicios.Form formulario = this.ObtenerElementosAdicionales(pagoServiciosRequest.InfoAdicional, pagoServiciosRequest.InfoAdicional.ModuloId); ProxyPagoServicios.TResponse respuestaDot = GetDot(requestId, this.credenciales.UserName, pagoServiciosRequest.SkuCodePagoServicio, cuanteEncripatada.ToString(), monto, this.token.CodeBox, formulario); if (respuestaDot.rcode == 2)//En proceso { while (intento <= this.credenciales.NumeroIntentos) { Thread.Sleep(5000 * 1); ProxyPagoServicios.TResponse respuestaVerificarTransaccion = this.ChecarTransaccion(requestId, this.credenciales.UserName); //si la respuesta es qeu no esta en proceso if (respuestaVerificarTransaccion.rcode != 2) { resultadoConfirmarEnvioRecibido = this.TerminarTransaccionCorrecta(respuestaDot.rcode, requestId, respuestaVerificarTransaccion.op_authorization); intento = 1000; } intento++; } if (resultadoConfirmarEnvioRecibido == "") { ProxyPagoServicios.ReverseResponse respuestaDor = this.DoR(requestId, this.credenciales.UserName); operation.CodeNumber = respuestaDor.rcode.ToString(); operation.CodeDescription = respuestaDor.rcode_description; } else { operation.CodeNumber = "1"; operation.CodeDescription = resultadoConfirmarEnvioRecibido; } } else if (respuestaDot.rcode == 0 || respuestaDot.rcode == 1) //termino correctamente con รณ sin autorizacion { resultadoConfirmarEnvioRecibido = this.TerminarTransaccionCorrecta(respuestaDot.rcode, requestId, respuestaDot.op_authorization); operation.CodeNumber = "1"; operation.CodeDescription = resultadoConfirmarEnvioRecibido; this.repository.RegistrarAutorizacionPago(pagoServiciosRequest.SkuCodePagoServicio, pagoServiciosRequest.SkuCode, folio, respuestaDot.op_authorization); } else { operation.CodeNumber = "0"; operation.CodeDescription = respuestaDot.rcode_description; } } else { operation.CodeDescription = "Error del Web Service, contactar a Administrador del Sistema"; operation.CodeNumber = "0"; } return operation; })); }