Пример #1
0
        public TestCommand()
        {
            this.IsCommand("test-api-access", "Visit https://developer.omniture.com/en_US/content_page/enterprise-api/c-get-web-service-access-to-the-enterprise-api to setup API access for a user and to find your API secret key.");

            Endpoint = new EndpointParameters();
            Endpoint.ApplyTo(this);
        }
        /// <summary>
        /// Solicita la anulación o cancelación de un token o clave transaccional.
        /// </summary>
        /// <param name="docType">El tipo de documento del usuario para el que fue emitido token transaccional.</param>
        /// <param name="docNumber">El número de documento del usuario para el que fue emitido token transaccional..</param>
        /// <param name="token">El valor del token que se desea cancelar.</param>
        /// <param name="appId">El identificador de la aplicación que emitió el token transaccional.</param>
        /// <param name="accountType">El identificador del tipo de cuenta que fue asociado al token transaccional.</param>
        /// <param name="amount">El valor de la transacción asociado al token que se desea cancelar.</param>
        /// <param name="channelKey">El código el canal por el que se redime el token transaccional.</param>
        /// <param name="metadata">Los metadatos personalizados que fueron asociados en el proceso de generación del token transaccional.</param>
        /// <remarks>Esta operación solo está disponible cuando el servicio ASPEN fue iniciado en modo de depuración o para ambiente de desarrollo.</remarks>
        internal void NullifyToken(
            string docType,
            string docNumber,
            string token,
            int appId,
            string accountType = null,
            int?amount         = null,
            string channelKey  = null,
            string metadata    = null)
        {
            Dictionary <string, object> body = new Dictionary <string, object>()
            {
                { "docType", docType },
                { "docNumber", docNumber },
                { "appId", appId },
                { "accountType", accountType },
                { "amount", amount },
                { "channelKey", channelKey },
                { "metadata", metadata }
            };

            EndpointParameters endpointParameters = new EndpointParameters()
                                                    .AddToken(token);

            IRestRequest request = new AspenRequest(
                Scope.Autonomous,
                EndpointMapping.NullifyToken,
                body,
                endpointParameters);

            this.Execute(request);
        }
        /// <summary>
        /// Valida la información de un token o clave transaccional generado y marca el token como utilizado.
        /// </summary>
        /// <param name="docType">El tipo de documento del usuario para el que se solicita la generación de un token transaccional.</param>
        /// <param name="docNumber">El número de documento del usuario para el que se solicita la generación de un token transaccional.</param>
        /// <param name="token">El valor del token que se desea redimir.</param>
        /// <param name="amount">El valor de la transacción para la que se utilizará el token.</param>
        /// <param name="metadata">Los metadatos personalizados para asociar al proceso de generación del token transaccional.</param>
        /// <returns>
        /// La información resultante del proceso de redención del token transaccional.
        /// </returns>
        public TokenRedeemedInfo RedeemToken(
            string docType,
            string docNumber,
            string token,
            int amount,
            string metadata = null)
        {
            Dictionary <string, object> body = new Dictionary <string, object>()
            {
                { "docType", docType },
                { "docNumber", docNumber },
                { "amount", amount },
                { "metadata", metadata }
            };

            EndpointParameters endpointParameters = new EndpointParameters()
                                                    .AddToken(token);

            IRestRequest request = new AspenRequest(
                Scope.Autonomous,
                EndpointMapping.RedeemToken,
                body,
                endpointParameters);

            return(this.Execute <TokenRedeemedInfo>(request));
        }
Пример #4
0
 /// <summary>
 /// This method is called when a Send Location is enabled.
 /// </summary>
 public override void Open(
     EndpointParameters endpointParameters,
     IPropertyBag handlerPropertyBag,
     string propertyNamespace)
 {
     this._propertyNamespace = propertyNamespace;
 }
        /// <summary>
        /// Desvincula la información de una cuenta de las cuentas inscritas de un usuario para transferencia de saldos.
        /// </summary>
        /// <param name="docType">El tipo de documento del cliente al cual se vinculó la cuenta.</param>
        /// <param name="docNumber">El número de documento del cliente al cual se vinculó la cuenta.</param>
        /// <param name="cardHolderDocType">El tipo de documento del titular de la cuenta.</param>
        /// <param name="cardHolderDocNumber">El número de documento del titular de la cuenta.</param>
        public void UnlinkTransferAccount(
            string docType,
            string docNumber,
            string cardHolderDocType,
            string cardHolderDocNumber)
        {
            if (!ServiceLocator.Instance.Runtime.IsDevelopment)
            {
                Throw.IfNullOrEmpty(docType, nameof(docType));
                Throw.IfNullOrEmpty(docNumber, nameof(docNumber));
                Throw.IfNullOrEmpty(cardHolderDocType, nameof(cardHolderDocType));
                Throw.IfNullOrEmpty(cardHolderDocNumber, nameof(cardHolderDocNumber));
            }

            EndpointParameters endpointParameters = new EndpointParameters
            {
                { "@[OwnerDocType]", docType },
                { "@[OwnerDocNumber]", docNumber },
                { "@[CardHolderDocType]", cardHolderDocType },
                { "@[CardHolderDocNumber]", cardHolderDocNumber }
            };
            IRestRequest request = new AspenRequest(Scope.Autonomous, EndpointMapping.UnlinkTransferAccountByUserIdentityAndCardHolder, endpointParameters);

            this.Execute(request);
        }
        /// <summary>
        /// Obtiene la información de saldos de una cuenta asociada al usuario actual.
        /// </summary>
        /// <param name="accountId">Identificador de la cuenta para la que se obtienen los saldos.</param>
        /// <returns>
        /// Lista de tipo <see cref="IBalanceInfo" /> con la información de saldos de las cuentas del usuario actual.
        /// </returns>
        public IList <BalanceExtendedInfo> GetBalances(string accountId)
        {
            EndpointParameters endpointParameters = new EndpointParameters().AddAccountId(accountId);
            IRestRequest       request            = new AspenRequest(Scope.Delegated, EndpointMapping.BalancesFromCurrentUser, endpointParameters);

            return(this.Execute <List <BalanceExtendedInfo> >(request));
        }
 /// <summary>
 /// This method is called when a Send Location is enabled.
 /// </summary>
 public void Open(
     EndpointParameters endpointParameters,
     IPropertyBag handlerPropertyBag,
     string propertyNamespace)
 {
     _propertyNamespace = propertyNamespace;
 }
Пример #8
0
        public GetCalculatedMetricsCommand()
        {
            this.IsCommand("get-metrics", "Lists calculated metrics.");
            this.HasRequiredOption("r=", "Report suite to use", v => Suite = v);

            Endpoint = new EndpointParameters();
            Endpoint.ApplyTo(this);
        }
Пример #9
0
        /// <summary>
        /// Obtiene la información resumida de las cuentas asociadas a un usuario a partir de su alias utilizado en el registro.
        /// </summary>
        /// <param name="channelId">El identificador del canal por el que se registró el usuario.</param>
        /// <param name="enrollmentAlias">El alias utilizado en el proceso de registro del usuario.</param>
        /// <returns>
        /// Lista de instancias de <see cref="IAccountInfo"/> con la información de las cuentas del usuario a partir del alias especificado.
        /// </returns>
        public IList <AccountInfo> GetAccountsByAlias(string channelId, string enrollmentAlias)
        {
            EndpointParameters endpointParameters = new EndpointParameters()
                                                    .AddChannelId(channelId)
                                                    .AddEnrollmentAlias(enrollmentAlias);
            IRestRequest request = new AspenRequest(Scope.Autonomous, EndpointMapping.AccountsByAlias, endpointParameters);

            return(this.Execute <List <AccountInfo> >(request));
        }
Пример #10
0
        /// <summary>
        /// Obtiene la información resumida de las cuentas asociadas a un usuario.
        /// </summary>
        /// <param name="docType">El tipo de documento del usuario.</param>
        /// <param name="docNumber">El número de documento del usuario.</param>
        /// <returns>
        /// Lista de instancias de <see cref="IAccountInfo"/> con la información del resultado por la solicitud de cuentas del usuario especificado.
        /// </returns>
        public IList <AccountInfo> GetAccounts(string docType, string docNumber)
        {
            EndpointParameters endpointParameters = new EndpointParameters()
                                                    .AddDocType(docType)
                                                    .AddDocNumber(docNumber);
            IRestRequest request = new AspenRequest(Scope.Autonomous, EndpointMapping.AccountsByUserIdentity, endpointParameters);

            return(this.Execute <List <AccountInfo> >(request));
        }
        /// <summary>
        /// Obtiene la información de los movimientos financieros de una cuenta asociada al usuario actual.
        /// </summary>
        /// <param name="accountId">El identificador de la cuenta para la que se obtienen los movimientos financieros.</param>
        /// <param name="accountTypeId">El identificador del tipo de cuenta que se desea filtrar o <see langword="null" /> para omitir el filtro.</param>
        /// <returns>
        /// Lista de tipo <see cref="IMiniStatementInfo" /> con la información de los movimientos financieros de la cuenta especificada del usuario actual.
        /// </returns>
        public IList <MiniStatementInfo> GetStatements(string accountId, string accountTypeId = null)
        {
            EndpointParameters endpointParameters = new EndpointParameters()
                                                    .AddAccountId(accountId)
                                                    .AddAccountTypeId(string.IsNullOrWhiteSpace(accountTypeId) ? "*" : accountTypeId);
            IRestRequest request = new AspenRequest(Scope.Delegated, EndpointMapping.StatementsFromCurrentUser, endpointParameters);

            return(this.Execute <List <MiniStatementInfo> >(request));
        }
        /// <summary>
        /// Obtiene la información de un token o clave transaccional en formato imagen (base64).
        /// </summary>
        /// <param name="channelId">El identificador del canal por el que se registró el usuario.</param>
        /// <param name="enrollmentAlias">El alias utilizado en el proceso de registro del usuario.</param>
        /// <returns>
        /// Cadena de texto que representa a la imagen del token transaccional en formato base64.
        /// </returns>
        public string GetTokenByAlias(string channelId, string enrollmentAlias)
        {
            EndpointParameters endpointParameters = new EndpointParameters()
                                                    .AddChannelId(channelId)
                                                    .AddEnrollmentAlias(enrollmentAlias);
            IRestRequest request = new AspenRequest(Scope.Autonomous, EndpointMapping.GenerateTokenByAlias, endpointParameters);

            return(this.Execute(request).Content);
        }
Пример #13
0
        /// <summary>
        /// Creates an <see cref="IEtpServer"/> instance.
        /// </summary>
        /// <param name="webSocket">The websocket to create the server for.</param>
        /// <param name="etpVersion">The ETP version for the session.</param>
        /// <param name="encoding">The ETP encoding for the session.</param>
        /// <param name="headers">The websocket headers.</param>
        /// <returns>The created server.</returns>
        protected override IEtpServer CreateServerCore(IEtpServerWebSocket webSocket, EtpVersion etpVersion, EtpEncoding encoding, IDictionary <string, string> headers)
        {
            var ws = webSocket as EtpServerWebSocket;

            if (ws == null)
            {
                throw new ArgumentException("Must be a WebSocket4Net websocket", nameof(webSocket));
            }

            return(new EtpServer(ws, etpVersion, encoding, EndpointInfo, parameters: EndpointParameters.CloneForVersion(etpVersion), headers: headers));
        }
        /// <summary>
        /// Obtiene la información de las cuentas vinculadas a un usuario para transferencia de saldos.
        /// </summary>
        /// <param name="docType">El tipo de documento del usuario para el que se obtienen las cuentas.</param>
        /// <param name="docNumber">El número de documento del usuario para el que se obtienen las cuentas.</param>
        /// <returns>
        /// Lista de instancias de <see cref="ITransferAccountInfo" /> con la información de las cuentas vinculadas al usuario especificado.
        /// </returns>
        public IList <TransferAccountInfo> GetTransferAccounts(string docType, string docNumber)
        {
            EndpointParameters endpointParameters = new EndpointParameters
            {
                { "@[OwnerDocType]", docType },
                { "@[OwnerDocNumber]", docNumber }
            };
            IRestRequest request = new AspenRequest(Scope.Autonomous, EndpointMapping.TransferAccountsByUserIdentity, endpointParameters);

            return(this.Execute <List <TransferAccountInfo> >(request) ?? Enumerable.Empty <TransferAccountInfo>().ToList());
        }
 /// <summary>
 /// Obtiene la información del resultado por la solicitud de los saldos de una cuenta asociada a un usuario de forma segura.B
 /// </summary>
 /// <param name="docType">El tipo de documento del propietario de la cuenta.</param>
 /// <param name="docNumber">El número de documento del propietario de la cuenta.</param>
 /// <param name="accountId">El identificador de la cuenta para la que se obtienen los saldos.</param>
 /// <returns>
 /// Lista de instancias de <see cref="IInquiryResultInfo{IBalanceInfo}" /> con la información del resultado por la solicitud de los saldos de una cuenta del usuario especificado.
 /// </returns>
 IList<BalanceResultInfo> IBalanceInquiries<BalanceResultInfo>.GetBalances(
     string docType,
     string docNumber,
     string accountId)
 {
     EndpointParameters endpointParameters = new EndpointParameters()
         .AddDocType(docType)
         .AddDocNumber(docNumber)
         .AddAccountId(accountId);
     IRestRequest request = new AspenRequest(Scope.Autonomous, EndpointMapping.BalancesByUserIdentity, endpointParameters);
     return this.Execute<List<BalanceResultInfo>>(request, "1.1");
 }
 /// <summary>
 /// Obtiene la información del resultado que encapsula los saldos de una cuenta asociada a un usuario a partir de su alias de registro procesada de forma segura.
 /// </summary>
 /// <param name="channelId">El identificador del canal por el que se registró el usuario.</param>
 /// <param name="enrollmentAlias">El alias utilizado en el proceso de registro del usuario.</param>
 /// <param name="accountId">El identificador de la cuenta para la que se obtienen los saldos.</param>
 /// <returns>
 /// Lista de instancias de <see cref="IInquiryResultInfo{IBalanceInfo}" /> con la información del resultado por la solicitud de los saldos de una cuenta del usuario especificado.
 /// </returns>
 IList<BalanceResultInfo> IBalanceInquiries<BalanceResultInfo>.GetBalancesByAlias(
     string channelId,
     string enrollmentAlias,
     string accountId)
 {
     EndpointParameters endpointParameters = new EndpointParameters()
         .AddChannelId(channelId)
         .AddEnrollmentAlias(enrollmentAlias)
         .AddAccountId(accountId);
     IRestRequest request = new AspenRequest(Scope.Autonomous, EndpointMapping.BalancesByAlias, endpointParameters);
     return this.Execute<List<BalanceResultInfo>>(request, "1.1");
 }
 /// <summary>
 /// Obtiene la información del resultado por la solicitud de los movimientos financieros de una cuenta asociada a un usuario de forma segura.
 /// </summary>
 /// <param name="docType">El tipo de documento del propietario de la cuenta.</param>
 /// <param name="docNumber">El número de documento del propietario de la cuenta.</param>
 /// <param name="accountId">El identificador de la cuenta para la que se obtienen los movimientos financieros.</param>
 /// <param name="accountTypeId">El identificador del tipo de cuenta (bolsillo) que se desea filtrar o <see langword="null" /> para omitir el filtro.</param>
 /// <returns>
 /// Lista de instancias de <see cref="IInquiryResultInfo{TData}" /> con la información del resultado por la solicitud de los saldos de una cuenta del usuario especificado.
 /// </returns>
 IList<MiniStatementResultInfo> IStatementInquiries<MiniStatementResultInfo>.GetStatements(
     string docType,
     string docNumber,
     string accountId,
     string accountTypeId)
 {
     EndpointParameters endpointParameters = new EndpointParameters()
         .AddDocType(docType)
         .AddDocNumber(docNumber)
         .AddAccountId(accountId)
         .AddAccountTypeId(string.IsNullOrWhiteSpace(accountTypeId) ? "*" : accountTypeId);
     IRestRequest request = new AspenRequest(Scope.Autonomous, EndpointMapping.StatementsByUserIdentity, endpointParameters);
     return this.Execute<List<MiniStatementResultInfo>>(request, "1.1");
 }
 /// <summary>
 /// Obtiene la información del resultado que encapsula los movimientos financieros de una cuenta asociada a un usuario a partir de su alias de registro procesado de forma segura.
 /// </summary>
 /// <param name="channelId">El identificador del canal por el que se registró el usuario.</param>
 /// <param name="enrollmentAlias">El alias utilizado en el proceso de registro del usuario.</param>
 /// <param name="accountId">El identificador de la cuenta para la que se obtienen los saldos.</param>
 /// <param name="accountTypeId">El identificador del tipo de cuenta (bolsillo) que se desea filtrar o <see langword="null" /> para omitir el filtro.</param>
 /// <returns>
 /// Lista de instancias de <see cref="IInquiryResultInfo{IMiniStatementInfo}" /> con la información del resultado por la solicitud de los movimientos de una cuenta del usuario especificado.
 /// </returns>
 IList<MiniStatementResultInfo> IStatementInquiries<MiniStatementResultInfo>.GetStatementsByAlias(
     string channelId,
     string enrollmentAlias,
     string accountId,
     string accountTypeId)
 {
     EndpointParameters endpointParameters = new EndpointParameters()
         .AddChannelId(channelId)
         .AddEnrollmentAlias(enrollmentAlias)
         .AddAccountId(accountId)
         .AddAccountTypeId(string.IsNullOrWhiteSpace(accountTypeId) ? "*" : accountTypeId);
     IRestRequest request = new AspenRequest(Scope.Autonomous, EndpointMapping.StatementsByAlias, endpointParameters);
     return this.Execute<List<MiniStatementResultInfo>>(request, "1.1");
 }
Пример #19
0
        /// <summary>
        /// Desvincula la información de una cuenta de las cuentas inscritas para transferencia de saldos del usuario actual.
        /// </summary>
        /// <param name="alias">El nombre o alias con el que se vinculó la cuenta.</param>
        public void UnlinkTransferAccount(string alias)
        {
            if (!ServiceLocator.Instance.Runtime.IsDevelopment)
            {
                Throw.IfNullOrEmpty(alias, nameof(alias));
            }

            EndpointParameters endpointParameters = new EndpointParameters
            {
                { "@[Alias]", alias }
            };
            IRestRequest request = new AspenRequest(Scope.Delegated, EndpointMapping.UnlinkTransferAccountFromCurrentUserByAlias, endpointParameters);

            this.Execute(request);
        }
Пример #20
0
        public async Task <OkObjectResult> SubmitClient([FromForm] EndpointParameters parameters,
                                                        CancellationToken cancellationToken)
        {
            var hash = parameters.Hash;
            var data = parameters.Data?.StringFromBase64() ?? string.Empty;

            _logger.LogTrace("Received hash: {Hash} endpoint: {Endpoint}", hash, data);

            try {
                var submitResult = await _submitClientRequestClient
                                   .GetResponse <SubmitClientSuccess, SubmitClientResult>(new { UserId = hash, Data = data }, cancellationToken);

                if (submitResult.Is(out Response <SubmitClientSuccess> submitClientSuccess))
                {
                    return(Ok(MenuHelper.FormatSubmitClientSuccessMessage(submitClientSuccess.Message)));
                }

                if (submitResult.Is(out Response <SubmitClientResult> result))
                {
                    return result.Message.ResultType switch {
                               SubmitClientResultType.OkWithMessage => Ok(result.Message.ResultValue),
                               SubmitClientResultType.ComingSoon => Ok(_menuHelper.ComingSoon),
                               SubmitClientResultType.NotSupportedEndpointFormat => Ok(_menuHelper.NotSupportedEndpointFormat),
                               SubmitClientResultType.AccessDenied => Ok(_menuHelper.AccessDenied),
                               SubmitClientResultType.NoEndpointsRegistered => Ok(_menuHelper.NoEndpointsRegistered),
                               SubmitClientResultType.HelpCommand => Ok(_menuHelper.HelpCommand),
                               SubmitClientResultType.ListEndpoints => Ok(
                                   MenuHelper.ListEndpoints((List <EndpointModel>)result.Message.ResultValue)),
                               _ => throw new ArgumentOutOfRangeException()
                    }
                }
                ;
            }
            catch (Exception ex) {
                _logger.LogError(ex, "Something went wrong {UserId}", hash);
            }

            return(Ok(string.Format(MenuHelper.SomethingWentWrong, hash)));
        }
        /// <summary>
        /// Vincula la información de una cuenta a las cuentas inscritas de un usuario para transferencia de saldos.
        /// </summary>
        /// <param name="docType">El tipo de documento del cliente al cual se vinculará la cuenta.</param>
        /// <param name="docNumber">El número de documento del cliente al cual se vinculará la cuenta.</param>
        /// <param name="accountInfo">La información de la cuenta a vincular.</param>
        /// <exception cref="ArgumentException">Se produce cuando <paramref name="docType"/> o <paramref name="docNumber"/> es nulo o vacío.</exception>
        /// <exception cref="ArgumentNullException">Se produce cuando <paramref name="accountInfo"/> es nulo.</exception>
        public void LinkTransferAccount(
            string docType,
            string docNumber,
            ILinkTransferAccountInfo accountInfo)
        {
            if (!ServiceLocator.Instance.Runtime.IsDevelopment)
            {
                Throw.IfNullOrEmpty(docType, nameof(docType));
                Throw.IfNullOrEmpty(docNumber, nameof(docNumber));
                Throw.IfNull(accountInfo, nameof(accountInfo));
            }

            EndpointParameters endpointParameters = new EndpointParameters
            {
                { "@[OwnerDocType]", docType },
                { "@[OwnerDocNumber]", docNumber }
            };
            IRestRequest request = new AspenRequest(Scope.Autonomous, EndpointMapping.LinkTransferAccountByUserIdentity, endpointParameters);

            request.AddJsonBody(accountInfo);
            this.Execute(request);
        }
 public override void Open(EndpointParameters endpointParameters, IPropertyBag handlerPropertyBag, string propertyNamespace)
 {
     actionEvent = EventReceivedFromEmbedded;
     GrabCaster.Framework.Library.Embedded.InitializeOffRampEmbedded(actionEvent);
     this.propertyNamespace = propertyNamespace;
 }