示例#1
0
        /// <summary>
        /// Obtiene un archivo en formato pdf (base 64) con el resumen de los estados de cuenta.
        /// </summary>
        /// <param name="channelId">Identificador del canal por el que se registró el usuario.</param>
        /// <param name="enrollmentAlias">Alias utilizado en el proceso de registro.</param>
        /// <returns>Cadena en formato base 64 que representa la información del resumen con los estados de cuenta.</returns>
        public string GetStatementsFile(string channelId, string enrollmentAlias)
        {
            Throw.IfNullOrEmpty(channelId, nameof(channelId));
            Throw.IfNullOrEmpty(enrollmentAlias, nameof(enrollmentAlias));
            PlaceholderFormatter formatter = new PlaceholderFormatter(Routes.Tokens.PfdStatements);

            formatter.Add("@[ChannelId]", channelId);
            formatter.Add("@[EnrollmentAlias]", enrollmentAlias);
            IRestRequest request = new AspenRequest(this, formatter.ToString(), Method.GET);

            return(this.ExecuteRaw(request));
        }
示例#2
0
        /// <summary>
        /// Obtiene la información de movimientos financieros de una cuenta.
        /// </summary>
        /// <param name="accountId">Identificador de la cuenta para la que se obtienen los movimientos financieros.</param>
        /// <param name="accountTypeId">Identificador del tipo de cuenta que se desea filtrar o  <see langword="null" /> para omitir el filtro.</param>
        /// <returns>Listado con la información de movimientos financieros de la cuenta especificada para el usuario actual.</returns>
        public IEnumerable <IMiniStatementInfo> GetStatements(string accountId, string accountTypeId = null)
        {
            Throw.IfNullOrEmpty(accountId, nameof(accountId));

            PlaceholderFormatter formatter = new PlaceholderFormatter(Routes.Inquires.Delegated.Statements);

            formatter.Add("@[AccountId]", accountId);
            formatter.Add("@[AccountTypeId]", string.IsNullOrWhiteSpace(accountTypeId) ? "*" : accountTypeId);

            IRestRequest request = new AspenRequest(this, formatter.ToString(), Method.GET);

            return(this.Execute <List <MiniStatementInfo> >(request).ConvertAll(item => (IMiniStatementInfo)item));
        }
示例#3
0
        /// <summary>
        /// Obtiene la información resumida de las cuentas asociadas del usuario especificado.
        /// </summary>
        /// <param name="docType">Tipo de documento del usuario.</param>
        /// <param name="docNumber">Número de documento del usuario.</param>
        /// <returns>Listado con la información de las cuentas del usuario especificado.</returns>
        public IEnumerable <IAccountInfo> GetAccounts(string docType, string docNumber)
        {
            Throw.IfNullOrEmpty(docType, nameof(docType));
            Throw.IfNullOrEmpty(docNumber, nameof(docNumber));

            PlaceholderFormatter formatter = new PlaceholderFormatter(Routes.Inquires.Autonomous.Accounts);

            formatter.Add("@[DocType]", docType);
            formatter.Add("@[DocNumber]", docNumber);

            IRestRequest request = new AspenRequest(this, formatter.ToString(), Method.GET);

            return(this.Execute <List <AccountInfo> >(request).ConvertAll(item => (IAccountInfo)item));
        }
示例#4
0
        /// <summary>
        /// Obtiene la información de saldos de las cuentas asociadas.
        /// </summary>
        /// <param name="channelId">Identificador del canal por el que se registró el usuario.</param>
        /// <param name="enrollmentAlias">Alias utilizado en el proceso de registro.</param>
        /// <param name="accountId">Identificador de la cuenta para la que se obtienen los saldos.</param>
        /// <returns>Listado con la información de saldos de las cuentas.</returns>
        public IEnumerable <IBalanceInfo> GetBalancesByAlias(string channelId, string enrollmentAlias, string accountId)
        {
            Throw.IfNullOrEmpty(channelId, nameof(channelId));
            Throw.IfNullOrEmpty(enrollmentAlias, nameof(enrollmentAlias));
            Throw.IfNullOrEmpty(accountId, nameof(accountId));

            PlaceholderFormatter formatter = new PlaceholderFormatter(Routes.Inquires.Autonomous.BalancesByAlias);

            formatter.Add("@[ChannelId]", channelId);
            formatter.Add("@[EnrollmentAlias]", enrollmentAlias);
            formatter.Add("@[AccountId]", accountId);

            IRestRequest request = new AspenRequest(this, formatter.ToString(), Method.GET);

            return(this.Execute <List <BalanceInfo> >(request).ConvertAll(item => (IBalanceInfo)item));
        }
示例#5
0
        /// <summary>
        /// Obtiene la información resumida de las cuentas asociadas del usuario especificado a partir de su alias utilizado en el registro.
        /// </summary>
        /// <param name="channelId">Identificador del canal por el que se registró el usuario.</param>
        /// <param name="enrollmentAlias">Alias utilizado en el proceso de registro.</param>
        /// <returns>Listado con la información de las cuentas del usuario especificado.</returns>
        public IEnumerable <IAccountInfo> GetAccountsByAlias(string channelId, string enrollmentAlias)
        {
            Throw.IfNullOrEmpty(channelId, nameof(channelId));
            Throw.IfNullOrEmpty(enrollmentAlias, nameof(enrollmentAlias));

            PlaceholderFormatter formatter = new PlaceholderFormatter(Routes.Inquires.Autonomous.AccountsByAlias);

            formatter.Add("@[ChannelId]", channelId);
            formatter.Add("@[EnrollmentAlias]", enrollmentAlias);

            IRestRequest       request  = new AspenRequest(this, formatter.ToString(), Method.GET);
            List <AccountInfo> response = this.Execute <List <AccountInfo> >(request);

            return(response == null?
                   Enumerable.Empty <IAccountInfo>().ToList() :
                       response.ConvertAll(item => (IAccountInfo)item));
        }
示例#6
0
        /// <summary>
        /// Comprueba la validez de un token transaccional.
        /// </summary>
        /// <param name="docType">Tipo de documento del usuario para el que se generó el token transaccional.</param>
        /// <param name="docNumber">Número de documento del usuario para el que se generó el token transaccional.</param>
        /// <param name="token">Token que se desea validar.</param>
        /// <param name="metadata">Metadatos que se asociaron al token al momento de su generación.</param>
        /// <param name="amount">Valor para el que se generó el token.</param>
        /// <param name="accountType">Bolsillo para el que se generó el token.</param>
        public void ValidateSingleUseToken(string docType, string docNumber, string token, string metadata = null, int?amount = null, string accountType = null)
        {
            Throw.IfNullOrEmpty(token, nameof(token));
            PlaceholderFormatter formatter = new PlaceholderFormatter(Routes.Tokens.Redeem);

            formatter.Add("@[Token]", token);
            IRestRequest request = new AspenRequest(this, formatter.ToString(), Method.PUT);

            request.AddJsonBody(new { Metadata = metadata, DocType = docType, DocNumber = docNumber, Amount = amount, AccountType = accountType });
            this.Execute(request);
        }
示例#7
0
        /// <summary>
        /// Obtiene la información de saldos de las cuentas asociadas con el usuario actual.
        /// </summary>
        /// <param name="accountId">Identificador de la cuenta para la que se obtienen los saldos.</param>
        /// <returns>Listado con la información de saldos de las cuentas del usuario actual.</returns>
        public IEnumerable <IBalanceInfo> GetBalances(string accountId)
        {
            Throw.IfNullOrEmpty(accountId, nameof(accountId));

            PlaceholderFormatter formatter = new PlaceholderFormatter(Routes.Inquires.Delegated.Balances);

            formatter.Add("@[AccountId]", accountId);

            IRestRequest request = new AspenRequest(this, formatter.ToString(), Method.GET);

            return(this.Execute <List <BalanceInfo> >(request).ConvertAll(item => (IBalanceInfo)item));
        }
        /// <summary>
        /// Reemplaza valores en una cadena.
        /// </summary>
        /// <param name="template">Cadena donde se reemplazan los valores</param>
        /// <param name="tokens">Colección de tokens para reemplazar.</param>
        /// <returns>Cadena con los tokens reemplazados.</returns>
        public static string ReplaceTokens(this string template, IDictionary <string, string> tokens)
        {
            Throw.IfNullOrEmpty(template, nameof(template));
            PlaceholderFormatter phf = new PlaceholderFormatter(template);

            foreach (KeyValuePair <string, string> pair in tokens)
            {
                Throw.IfNullOrEmpty(pair.Key, "pair.Key");
                Throw.IfNullOrEmpty(pair.Value, "pair.Value");
                phf.Add(pair.Key, pair.Value);
            }

            return(phf.ToString());
        }
示例#9
0
        public void ValidateSingleUseTokenAvoidingValidation(
            string docType,
            string docNumber,
            string token,
            string metadata         = null,
            object amount           = null,
            string accountType      = null,
            bool excludeAmount      = false,
            bool excludeAccountType = false,
            bool excludeMetadata    = false)
        {
            dynamic body = new ExpandoObject();

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

            if (!excludeMetadata)
            {
                body.Metadata = metadata;
            }

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

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

            PlaceholderFormatter formatter = new PlaceholderFormatter(Routes.Tokens.Redeem);

            formatter.Add("@[Token]", token);
            IRestRequest request = new AspenRequest(this, formatter.ToString(), Method.PUT);

            request.AddJsonBody(body);
            this.Execute(request);
        }