コード例 #1
0
        private string TerminarTransaccionCorrecta(int codigoRequireComprobar, string requestId, string autorizacion)
        {
            string resultadoConfirmarEnvioRecibido = "";

            if (codigoRequireComprobar == 10) // requiere comprobación
            {
                ProxyPagoServicios.TResponse infoResponseDoc = this.DoC(requestId, this.credenciales.UserName);
                if (infoResponseDoc.rcode == 0) // comprobación exitosa
                {
                    resultadoConfirmarEnvioRecibido = this.DoA(requestId, this.credenciales.UserName, autorizacion);
                }
            }
            else // no require comprobacion
            {
                if (codigoRequireComprobar == 0 || codigoRequireComprobar == 1) // comprobación exitosa
                {
                    resultadoConfirmarEnvioRecibido = this.DoA(requestId, this.credenciales.UserName, autorizacion);
                }
            }
            return(resultadoConfirmarEnvioRecibido);
        }
コード例 #2
0
 private ProxyPagoServicios.TResponse GetDot(string requestId, string userName, string skuCode, string numeroCuenta, float monto, int numeroCaja, ProxyPagoServicios.Form form)
 {
     ProxyPagoServicios.TResponse respuesta = transact.DoT(requestId, userName, skuCode, numeroCuenta, monto, numeroCaja, form);
     return(respuesta);
 }
コード例 #3
0
 private ProxyPagoServicios.TResponse ChecarTransaccion(string requestId, string userName)
 {
     ProxyPagoServicios.TResponse response = transact.CheckTransaction(requestId, userName);
     return(response);
 }
コード例 #4
0
 private ProxyPagoServicios.TResponse DoC(string requestId, string userName)
 {
     ProxyPagoServicios.TResponse response = transact.DoC(requestId, userName);
     return(response);
 }
コード例 #5
0
        /// <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;
            }));
        }