Esempio n. 1
0
        /// <summary>
        /// Solicita el procesamiento de una transacción de retiro sin validar localmente. Se expone como internal con el fin de validar el comportamiento del servicio Aspen.
        /// </summary>
        /// <param name="docType">Tipo de documento del usuario.</param>
        /// <param name="docNumber">Número de documento del usuario.</param>
        /// <param name="token">Token transacional asociado con el usuario.</param>
        /// <param name="accountType">Tipo de cuenta de la que se toman los fondos.</param>
        /// <param name="amount">Valor del pago.</param>
        /// <param name="tags">Tags relacionados con la solicitud.</param>
        /// <param name="excludeAmount"></param>
        /// <param name="excludeAccountType"></param>
        /// <param name="excludeTags"></param>
        internal void WithdrawalAvoidingValidation(
            string docType,
            string docNumber,
            string token,
            string accountType,
            object amount,
            TagsInfo tags           = null,
            bool excludeAmount      = false,
            bool excludeAccountType = false,
            bool excludeTags        = false)
        {
            IRestRequest request = new AspenRequest(this, Routes.Financial.Withdrawal, Method.POST);
            dynamic      body    = new ExpandoObject();

            body.DocType   = docType;
            body.DocNumber = docNumber;
            body.Token     = token;

            if (!excludeAmount)
            {
                body.Amount = amount;
            }

            if (!excludeAccountType)
            {
                body.AccountType = accountType;
            }

            if (!excludeTags)
            {
                body.Tags = tags;
            }

            request.AddJsonBody(body);
            this.Execute(request);
        }
        /// <summary>
        /// Obtiene la lista de mensajes Push del usuario actual.
        /// </summary>
        /// <returns>Liata de mensajes push del usuario actual.</returns>
        public List <PushMessageInfo> GetMessages()
        {
            IRestRequest request = new AspenRequest(this, "/push", Method.GET);

            return(this.Execute <List <PushMessageInfo> >(request));
        }
Esempio n. 3
0
        /// <summary>
        /// Obtiene la información de las cuentas vinculadas para transferencia de saldos al usuario actual.
        /// </summary>
        /// <returns>
        /// Lista de instancias de <see cref="ITransferAccountInfo" /> con la información de las cuentas vinculadas al usuario actual.
        /// </returns>
        public IList <TransferAccountInfo> GetTransferAccounts()
        {
            IRestRequest request = new AspenRequest(Scope.Delegated, EndpointMapping.TransferAccountsFromCurrentUser);

            return(this.Execute <List <TransferAccountInfo> >(request) ?? Enumerable.Empty <TransferAccountInfo>().ToList());
        }
        /// <summary>
        /// Obtiene la lista de opciones que representan el menú de una aplicación móvil.
        /// </summary>
        /// <returns>
        /// Lista de opciones de menú.
        /// </returns>
        public IList <MenuItem> GetMenu()
        {
            IRestRequest request = new AspenRequest(this, Routes.Resources.Menu, Method.GET);

            return(this.Execute <List <MenuItem> >(request));
        }
        /// <summary>
        /// Obtiene los tipos de pagos que se pueden realizar a una cuenta.
        /// </summary>
        /// <returns>Lista de <see cref="TopUpInfo"/> con los valores admitidos de recarga por operador para la aplicación solicitante.</returns>
        public IList <TopUpInfo> GetTopUpValues()
        {
            IRestRequest request = new AspenRequest(this, Routes.Resources.TopUp, Method.GET);

            return(this.Execute <List <TopUpInfo> >(request));
        }
        /// <summary>
        /// Obtiene los tipos de pagos que se pueden realizar a una cuenta.
        /// </summary>
        /// <returns>
        /// Lista de <see cref="PaymentTypeInfo" /> con los tipos de pago para la aplicación solicitante.
        /// </returns>
        public IList <PaymentTypeInfo> GetPaymentTypes()
        {
            IRestRequest request = new AspenRequest(this, Routes.Resources.PaymentTypes, Method.GET);

            return(this.Execute <List <PaymentTypeInfo> >(request));
        }
        /// <summary>
        /// Obtiene la lista de operadores de telefonía móvil soportados por el servicio Aspen.
        /// </summary>
        /// <returns>
        /// Lista de operadores de telefonía soportados.
        /// </returns>
        public IList <Telco> GetTelcos()
        {
            IRestRequest request = new AspenRequest(this, Routes.Resources.Telcos, Method.GET);

            return(this.Execute <List <Telco> >(request));
        }
        /// <summary>
        /// Obtiene la información de las cuentas vinculadas para transferencias del usuario actual.
        /// </summary>
        /// <returns>Listado de cuentas inscritas.</returns>
        public IList <TransferAccountResponseInfo> GetTransferAccounts()
        {
            IRestRequest request = new AspenRequest(this, "/transfers/accounts", Method.GET);

            return(this.Execute <IList <TransferAccountResponseInfo> >(request));
        }
        /// <summary>
        /// Obtiene la lista de canales
        /// </summary>
        /// <returns>Lista de canales.</returns>
        public IList <ChannelInfo> GetChannels()
        {
            IRestRequest request = new AspenRequest(this, Routes.Tokens.Channels, Method.GET);

            return(this.Execute <List <ChannelInfo> >(request));
        }
        /// <summary>
        /// Obtiene los valores misceláneos soportados por el servicio Aspen.
        /// </summary>
        /// <returns>
        /// Colección de valores admitidos.
        /// </returns>
        public IList <KeyValuePair <string, object> > GetMiscellaneousValues()
        {
            IRestRequest request = new AspenRequest(this, Routes.Resources.Miscellaneous, Method.GET);

            return(this.Execute <IList <KeyValuePair <string, object> > >(request));
        }
Esempio n. 11
0
        /// <summary>
        /// Obtiene la información resumida de las cuentas asociadas con el usuario actual.
        /// </summary>
        /// <returns>Listado con la información de las cuentas del usuario actual.</returns>
        public IEnumerable <IAccountInfo> GetAccounts()
        {
            IRestRequest request = new AspenRequest(this, Routes.Inquires.Delegated.Accounts, Method.GET);

            return(this.Execute <List <AccountInfo> >(request).ConvertAll(item => (IAccountInfo)item));
        }
        /// <summary>
        /// Solicita el envío de un token transaccional por SMS para un usuario autenticado de forma asíncrona.
        /// </summary>
        /// <returns>
        /// Instancia de <see cref="Task" /> con la información de la ejecución.
        /// </returns>
        public async Task <IRestResponse> RequestSingleUseTokenAsync()
        {
            IRestRequest request = new AspenRequest(this, Routes.Tokens.RequestToken, Method.POST);

            return(await this.ExecuteAsync(request));
        }
        /// <summary>
        /// Solicita el envío de un token transaccional para un usuario autenticado.
        /// </summary>
        public void RequestSingleUseToken()
        {
            IRestRequest request = new AspenRequest(this, Routes.Tokens.RequestToken, Method.POST);

            this.Execute(request);
        }
        /// <summary>
        /// Solicita el envío de un código de activación a través de un mensaje SMS de forma asíncrona.
        /// </summary>
        /// <returns>Instancia de <see cref="Task"/> con la información de la ejecución.</returns>
        public async Task <IRestResponse> RequestActivationCodeAsync()
        {
            IRestRequest request = new AspenRequest(this, Routes.Users.ActivationCode, Method.POST);

            return(await this.ExecuteAsync(request));
        }
Esempio n. 15
0
        /// <summary>
        /// Obtiene la lista de tipos de documento predeterminados soportados por el servicio.
        /// </summary>
        /// <returns>
        /// Lista de tipos de documento predeterminados.
        /// </returns>
        public IList <DocTypeInfo> GetDefaultDocTypes()
        {
            IRestRequest request = new AspenRequest(Scope.Anonymous, EndpointMapping.DefaultDocTypes);

            return(this.Execute <List <DocTypeInfo> >(request));
        }
        /// <summary>
        /// Obtiene la lista de tipos de documento soportados por el servicio Aspen.
        /// </summary>
        /// <returns>Lista de tipos de documento soportados.</returns>
        public IList <DocType> GetDocTypes()
        {
            IRestRequest request = new AspenRequest(this, Routes.Resources.DocTypes, Method.GET);

            return(this.Execute <List <DocType> >(request));
        }
        /// <summary>
        /// Obtiene la información resumida de las cuentas asociadas al usuario actual.
        /// </summary>
        /// <returns>
        /// Lista de tipo <see cref="IAccountInfo" /> con la información de las cuentas del usuario actual.
        /// </returns>
        public IList <AccountExtendedInfo> GetAccounts()
        {
            IRestRequest request = new AspenRequest(Scope.Delegated, EndpointMapping.AccountsFromCurrentUser);

            return(this.Execute <List <AccountExtendedInfo> >(request));
        }
        /// <summary>
        /// Desvincula la información de una cuenta a las cuentas habilitadas para transferencias.
        /// </summary>
        /// <param name="alias">Nombre o alias con el que se vinculó la cuenta.</param>
        public void UnlinkTransferAccount(string alias)
        {
            IRestRequest request = new AspenRequest(this, $"/transfers/accounts/{alias}", Method.DELETE);

            this.Execute(request);
        }