/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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); }
/// <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()); }
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); }