Beispiel #1
0
        public override DataContract.Common.IMovilwayApiResponse PerformKinacuOperation(DataContract.Common.IMovilwayApiRequest requestObject, KinacuWebService.SaleInterface kinacuWS, string sessionID)
        {
            // throw new NotImplementedException();

            SecurityResponseBody response = new SecurityResponseBody();

            try
            {
                response = dummyKinacuImplementation(requestObject, kinacuWS, sessionID);
            }
            catch (Exception ex)
            {
                response.ResponseCode    = 500;
                response.ResponseMessage = ex.Message;//_GenericError;
                response.TransactionID   = 0;

                string mensaje = String.Concat("[API] " + base.LOG_PREFIX + "[UpdateAgentProvider] ", ". Exception: ", ex.Message, ". ", ex.StackTrace);
                logger.ErrorLow(mensaje);
            }
            return(response);
        }
Beispiel #2
0
        public override DataContract.Common.IMovilwayApiResponse PerformKinacuOperation(DataContract.Common.IMovilwayApiRequest requestObject, KinacuWebService.SaleInterface kinacuWS, string sessionID)
        {
            //throw new NotImplementedException();
            AddTrustedDeviceRequestBody  request  = (AddTrustedDeviceRequestBody)requestObject;
            AddTrustedDeviceResponseBody response = new AddTrustedDeviceResponseBody();

            try
            {
                if (request.DeviceType != (int)cons.ACCESS_POSWEB)
                {
                    response.ResponseCode    = 90;
                    response.ResponseMessage = "NO ESTA AUTORIZADO PARA ACCEDER A ESTE SERVICIO";//"ERROR INESPERADO";
                    response.TransactionID   = 0;
                    return(response);
                }

                //desnecriptar
                //String jsonString = request.InfoTokken;


                //int idUser = Utils.GetUserId(request.AuthenticationData.Username, cons.ACCESS_POSWEB);

                String jsonDecrypt = Cryptography.decrypt(request.InfoTokken);


                Dictionary <string, string> dictionary = Newtonsoft.Json.JsonConvert.DeserializeObject <Dictionary <string, string> >(jsonDecrypt);

                bool status = Convert.ToBoolean(dictionary["status"]);
                int  type   = Convert.ToInt32(dictionary["type"]);

                TrustedDevice device = new TrustedDevice()
                {
                    UserId       = request.AuthenticationData.Username,
                    Token        = dictionary["cookieMonster"],
                    Hash         = dictionary["hash"],
                    IdType       = type,
                    FriendlyName = dictionary["friendlyName"],
                    Description  = dictionary["description"],
                    Status       = status? cons.DEVICE_ACTIVE: cons.DEVICE_TEMPORAL,//cons.DEVICE_ACTIVE, //status? cons.DEVICE_ACTIVE: cons.DEVICE_TEMPORAL,
                    Secure       = status,
                    //IsActive = true,
                    DateActivated = DateTime.MinValue,
                    Model         = dictionary["model"],
                    OS            = dictionary["os"],
                    DateCreated   = DateTime.Now,
                    Ticks         = Convert.ToInt64(dictionary["ticks"])
                };



                if (!device.IsValid())
                {
                    response.ResponseCode    = 90;
                    response.ResponseMessage = "LOS DATOS DEL DISPOSITIVO ESTAN INCOMPLETOS";//"ERROR INESPERADO";
                    response.TransactionID   = 0;
                    //
                    return(response);
                }


                GenericApiResult <bool> result = Utils.AddTrustedDeviceNuevo(device);


                response.ResponseCode    = result.ResponseCode;
                response.ResponseMessage = result.ResponseMessage;
                response.Result          = result.ObjectResult;
            }
            catch (Exception ex)
            {
                response.ResponseCode    = 500;
                response.ResponseMessage = ex.Message;//"ERROR INESPERADO";
                response.TransactionID   = 0;

                string mensaje = String.Concat("[API] ", base.LOG_PREFIX, " [AddTrustedDeviceProvider]  [", ex.GetType().FullName, "] . Exception: ", ex.Message, ". ", ex.StackTrace);
                logger.ErrorLow(mensaje);
            }
            return(response);
        }
Beispiel #3
0
        public override DataContract.Common.IMovilwayApiResponse PerformKinacuOperation(DataContract.Common.IMovilwayApiRequest requestObject, KinacuWebService.SaleInterface kinacuWS, string sessionID)
        {
            DeleteTrustedDeviceResponseBody response = new DeleteTrustedDeviceResponseBody();
            DeleteTrustedDeviceRequestBody  request  = (DeleteTrustedDeviceRequestBody)requestObject;

            try {
                if (sessionID.Equals("0"))
                {
                    response.ResponseMessage = "error session";
                    response.ResponseCode    = 90;
                    return(response);
                }


                if (request.DeviceType != (int)cons.ACCESS_POSWEB)
                {
                    response.ResponseCode    = 90;
                    response.ResponseMessage = "NO ESTA AUTORIZADO PARA ACCEDER A ESTE SERVICIO";//"ERROR INESPERADO";
                    response.TransactionID   = 0;
                    return(response);
                }

                //throw new NotImplementedException();

                bool result = Utils.SetStatusDevice(new TrustedDevice()
                {
                    ID     = request.DeviceID,
                    Status = cons.DEVICE_DELETE
                });
                //si resultado y

                //ok
                response.Result = result;
                if (response.Result)
                {
                    response.ResponseCode    = 0;
                    response.ResponseMessage = "OK";
                }
                else
                {
                    response.ResponseCode    = 101;
                    response.ResponseMessage = string.Concat("NO SE PUDO BORRAR DISPOSITIVO ", request.DeviceID);
                }
            }
            catch (Exception ex)
            {
                response.ResponseCode    = 500;
                response.ResponseMessage = string.Concat("ERROR INESPERADO AL BORRAR DISPOSITIVO ", request.DeviceID, " ", ex.Message, " ", ex.StackTrace);

                logger.ErrorLow(String.Concat("[QRY] ", LOG_PREFIX, " [DeleteTrustedDeviceProvider] ", "-", response.ResponseCode, "-", response.ResponseMessage, ". Exception: ", ex.Message, ". ", ex.StackTrace));
            }

            return(response);
        }
        public override DataContract.Common.IMovilwayApiResponse PerformKinacuOperation(DataContract.Common.IMovilwayApiRequest requestObject, KinacuWebService.SaleInterface kinacuWS, string sessionID)
        {
            LoginAvailableResponseBody response = new LoginAvailableResponseBody();

            if (sessionID.Equals("0"))
            {
                response.ResponseCode    = 90;
                response.ResponseMessage = "SESIÓN INVALIDA";
                return(response);
            }


            LoginAvailableRequestBody request = requestObject as LoginAvailableRequestBody;

            bool result = false;

            try
            {
                if (request.AgenteId.HasValue && request.AgenteId.Value > -1m)
                {
                    result = Utils.LoginDispobible(request.Login, request.AgenteId.Value);
                }
                else
                {
                    result = Utils.LoginDispobible(request.Login);
                }

                if (result)
                {
                    response.ResponseCode    = 0;
                    response.ResponseMessage = "LOGIN ESTA DISPONIBLE";
                }
                else
                {
                    response.ResponseCode    = 1;
                    response.ResponseMessage = "LOGIN NO ESTA DISPONIBLE";
                }
            }
            catch (Exception ex)
            {
                response.ResponseCode    = 2;
                response.ResponseMessage = String.Concat("ERROR INESPERADO. Exception:", ex.Message, " - ", ex.StackTrace);
            }


            return(response);
        }
Beispiel #5
0
        public override DataContract.Common.IMovilwayApiResponse PerformKinacuOperation(DataContract.Common.IMovilwayApiRequest requestObject, KinacuWebService.SaleInterface kinacuWS, string sessionID)
        {
            // throw new NotImplementedException();
            ValidateDepositRequestBody  request  = (ValidateDepositRequestBody)requestObject;
            ValidateDepositResponseBody response = new ValidateDepositResponseBody();

            try
            {
                //OK
                response.ResponseCode    = 0;
                response.ResponseMessage = "OK";
                response.DepositResult   = Utils.GetDepositStatus(request.Date.ToString("yyyyMMdd"), request.Amount, request.TransactionReference, request.BankName);
                response.TransactionID   = new Random().Next(100000, 999999);
            }
            catch (Exception ex)
            {
                response.ResponseCode    = 500;
                response.ResponseMessage = ex.Message;//"ERROR INESPERADO";
                response.DepositResult   = "EX";
                response.TransactionID   = 0;

                string mensaje = String.Concat("[API] ", base.LOG_PREFIX, "[ValidateDepositProvider] ", ". Exception: ", ex.Message, ". ", ex.StackTrace);
                logger.ErrorLow(mensaje);
            }
            return(response);
        }
        public override DataContract.Common.IMovilwayApiResponse PerformKinacuOperation(DataContract.Common.IMovilwayApiRequest requestObject, KinacuWebService.SaleInterface kinacuWS, string sessionID)
        {
            logger.InfoHigh("[KIN] " + base.LOG_PREFIX + "INICIO");
            if (!IsThereProducts())
            {
                logger.ErrorHigh("[KIN] " + base.LOG_PREFIX + "[QueryPaymentProvider] NO SE HAN CARGADO PRODUCTOS PARA REALIZAR CONSULTAS");
                return(new QueryPaymentResponseBody()
                {
                    ResponseCode = 99,
                    ResponseMessage = "El producto a comprar no esta configurado para la consulta."
                });
            }

            var response = new QueryPaymentResponseBody()
            {
                ResponseCode    = 99,
                ResponseMessage = "Ocurrio un error, realizando la consulta del pago intente mas tarde."
            };

            try
            {
                QueryPaymentRequestBody request = requestObject as QueryPaymentRequestBody;

                if (request == null)
                {
                    throw new Exception("EL REQUEST A PROCESAR NO PUEDE SER NULO");
                }

                var product = MapMNOtoProductId(request.MNO);

                ProductInfo productInfo = null;
                if (!_productsInfo.TryGetValue(product, out productInfo))
                {
                    response.ResponseMessage = "El producto a comprar no esta configurado para la consulta.";

                    return(response);
                }

                int userid;
                int agencyid;

                string pdv = "";
                // KinacuLogisticsWebService.LogisticsInterface client = new KinacuLogisticsWebService.LogisticsInterface();
                KinacuManagementWebService.ManagementInterface client = new KinacuManagementWebService.ManagementInterface();

                int Id; string UserName = null; string UserLastName = null; string UserAddress = null; long SessionTimeOut = 0; string Message = null;

                client.GetUserInfo(int.Parse(sessionID), out Id, out UserName, out UserLastName, out UserAddress, out SessionTimeOut, out Message);

                userid = Id;

                logger.InfoHigh("[KIN] " + base.LOG_PREFIX + "Obteniendo usuario " + userid);

                int _RetailerId; string _RetailerName; string _RetailerAddress; string _RetailerLegalId; int _VoucherQuantityDownload; string _TicketHeader; string _CurrentTime; string _Message = "";

                client.GetRetailerInfo(int.Parse(sessionID), out _RetailerId, out _RetailerName, out _RetailerAddress, out _RetailerLegalId, out _VoucherQuantityDownload, out _TicketHeader, out _CurrentTime, out _Message);

                agencyid = _RetailerId;


                logger.InfoHigh("[KIN] " + base.LOG_PREFIX + "Obteniendo agencia " + userid);

                //var agentInfo = Utils.GetAgentInfoById(agencyid.ToString());

                GetAgentInfoResponseBody balanceResponse = new ServiceExecutionDelegator <GetAgentInfoResponseBody, GetAgentInfoRequestBody>().ResolveRequest(new GetAgentInfoRequestBody() //GetAgentInfoResponseBody
                {
                    AuthenticationData = request.AuthenticationData,
                    DeviceType         = request.DeviceType,
                    SearchById         = true,
                    AgentId            = agencyid.ToString()
                }, ApiTargetPlatform.Kinacu, ApiServiceName.GetAgentInfo);


                pdv = balanceResponse.AgentInfo.PDVID;//.PDVID;

                var ApiReference = (System.Threading.Thread.CurrentThread.ManagedThreadId * 10).ToString() + DateTime.Now.Ticks.ToString();



                QueryPaymentReference.Input input = new QueryPaymentReference.Input()
                {
                    Amount          = "",
                    Client          = request.Recipient,
                    Product         = product,
                    DateTime        = DateTime.UtcNow.ToString("yyyyMMdd HH:mm:ss"),
                    ReferenceNumber = ApiReference,
                    ExtendedData    = new QueryPaymentReference.Input.ArrayOfString()
                    {
                        pdv,
                        request.TerminalID,
                        agency_prefix + agencyid.ToString(),
                        user_prefix + userid,
                        request.ExternalTransactionReference,
                        request.DeviceType.ToString()
                    }
                };


                QueryPaymentReference.queriesClient clientquery = new QueryPaymentReference.queriesClient();



                clientquery.Endpoint.Address = new EndpointAddress(productInfo.Url);

                clientquery.Endpoint.Binding.SendTimeout = TimeSpan.FromMilliseconds(productInfo.Timeout);

                logger.InfoHigh("[KIN] " + base.LOG_PREFIX + " [QueryPaymentProvider] SEND-DATA " +
                                "Amount =" + input.Amount + "|" +
                                "Client =" + input.Client + "|" +
                                "Product =" + input.Product + "|" +
                                "DateTime =" + input.DateTime + "|" +
                                "ReferenceNumber =" + input.ReferenceNumber + "|" +
                                "ExtendedData =" + String.Join(",", input.ExtendedData));


                QueryPaymentReference.OutputQuery queryresponse = clientquery.Query(input);



                if (queryresponse != null)
                {
                    logger.InfoHigh("[KIN] " + base.LOG_PREFIX + "[QueryPaymentProvider] REC-DATA "
                                    + "Id = " + queryresponse.Id + "|"
                                    + "IdAutorization = " + queryresponse.IdAutorization + "|");

                    response.ResponseCode         = queryresponse.Result ? 0 : 99;
                    response.ResponseMessage      = queryresponse.Result ? "OK" : "Error en la consulta";
                    response.TransactionID        = Convert.ToInt32(queryresponse.Id);
                    response.Fee                  = queryresponse.Fee;
                    response.ResponseCodeOpetator = queryresponse.ResponseCode;
                    response.DetailsOperator      = queryresponse.Details;
                    response.Data                 = queryresponse.Data;
                    response.DataDescriptor       = queryresponse.DataDescriptor;
                    response.Result               = queryresponse.Result;
                    response.QueryResultType      = queryresponse.QueryResultType.ToString();
                    response.IdAutorization       = queryresponse.IdAutorization;
                    response.Amount               = queryresponse.Amount;
                }
                else
                {
                    logger.ErrorHigh("[KIN] " + base.LOG_PREFIX + "[QueryPaymentProvider] REC-DATA OutputQuery [null]");

                    return(new QueryPaymentResponseBody()
                    {
                        ResponseCode = 99,
                        ResponseMessage = "No se recibio respuesta, de la consulta intente mas tarde."
                    });
                }
            }
            catch (Exception ex)
            {
                logger.ErrorHigh("[KIN] " + base.LOG_PREFIX + "[QueryPaymentProvider] ERROR EN LA CONSULTA DEL PAGO. " + ex.GetType().Name + " " + ex.Message + " " + ex.StackTrace);

                response = new QueryPaymentResponseBody()
                {
                    ResponseCode = 99,

                    ResponseMessage = "Ocurrio un error, realizando la consulta del pago intente mas tarde."
                };
            }
            return(response);
        }
Beispiel #7
0
        public override DataContract.Common.IMovilwayApiResponse PerformKinacuOperation(DataContract.Common.IMovilwayApiRequest requestObject, KinacuWebService.SaleInterface kinacuWS, string sessionID)
        {
            // throw new NotImplementedException();
            ValidateDeviceRequestBody  request  = (ValidateDeviceRequestBody)requestObject;
            ValidateDeviceResponseBody response = new ValidateDeviceResponseBody();

            response.LastVersion = "";

            try
            {
                // int idUser = Utils.GetUserId(request.AuthenticationData.Username, cons.ACCESS_POSWEB);


                GenericApiResult <TrustedDevice> device = Utils.GetDeviceByKey(request.TokenToValidate, requestObject.AuthenticationData.Username);


                if (device.IsObjectValidResult())
                {
                    GenericApiResult <bool> result = Utils.IsActiveDevice(device.ObjectResult); //Utils.ValidateDevice(request.TokenToValidate, idUser);

                    response.IsValid         = result.ObjectResult;
                    response.ResponseCode    = result.ResponseCode;
                    response.ResponseMessage = result.ResponseMessage;//"ERROR INESPERADO";

                    /// SE CAMBIO A A ESTADO SI NO ES ACTIVO Y SI ES TEMPORAL
                    if (!result.ObjectResult && device.ObjectResult.Status == cons.DEVICE_TEMPORAL)
                    {
                        //CAMBIAR A SERVICE EXCUTE DELEGATOR
                        string ERROR = "[NO SE PUDO CAMBIAR ESTADO A DISPOSITIVO TEMPORAL]";
                        try
                        {
                            //SE CAMBIA EL ESTADO BORRANDO
                            device.ObjectResult.Status = cons.DEVICE_DELETE;
                            if (!
                                Utils.SetStatusDevice(device.ObjectResult)//;
                                )
                            {
                                string mensaje = String.Concat("[API] ", base.LOG_PREFIX, "[ValidateDeviceProvider] ", ERROR);
                                logger.InfoLow(mensaje);
                            }
                        }
                        catch (Exception ex)
                        {
                            string mensaje = String.Concat("[API] ", base.LOG_PREFIX, "[ValidateDeviceProvider] ", ERROR, ". Exception: ", ex.Message, ". ", ex.StackTrace);
                            logger.ErrorLow(mensaje);
                            response.ResponseMessage = String.Concat(response.ResponseMessage, " ", ERROR);
                        }
                    }



                    if (device.ObjectResult.IdType != cons.DEVICE_TYPE_WEB)
                    {
                        response.LastVersion = System.Configuration.ConfigurationManager.AppSettings[String.Concat("VERSION_APP_", device.ObjectResult.IdType)] ?? System.Configuration.ConfigurationManager.AppSettings["VERSION_APP"] ?? "0";
                    }
                }
                else
                {
                    // RESPONSE CODE


                    response.ResponseCode    = 100;
                    response.ResponseMessage = device.ResponseMessage; //"ERROR INESPERADO";
                                                                       // response.LastVersion =   System.Configuration.ConfigurationManager.AppSettings["VERSION_APP"] ?? "0";
                }
            }
            catch (Exception ex)
            {
                response.ResponseCode    = 500;
                response.ResponseMessage = ex.Message;//"ERROR INESPERADO";
                response.TransactionID   = 0;

                string mensaje = String.Concat("[API] ", base.LOG_PREFIX, "[ValidateDeviceProvider] ", ". Exception: ", ex.Message, ". ", ex.StackTrace);
                logger.ErrorLow(mensaje);
            }
            return(response);
        }