Ejemplo n.º 1
0
        /// <inheritdoc />
        public async Task <TokenExchangeResult> ExchangeBankTokenAsync(string publicToken, string accountId)
        {
            Condition.Requires(publicToken).IsNotNullOrWhiteSpace();

            ExchangeTokenRequest exchangeRequest = new ExchangeTokenRequest(this.clientId, this.clientSecret, publicToken, accountId);
            HttpResponseMessage  response        = await this.httpClient.PostAsJsonAsync("exchange_token", exchangeRequest);

            string responseJson = await response.Content.ReadAsStringAsync();

            TokenExchangeResult result = new TokenExchangeResult();

            if (response.StatusCode == HttpStatusCode.OK)
            {
                ExchangeTokenResponse tokenResponse = JsonConvert.DeserializeObject <ExchangeTokenResponse>(responseJson);

                result.AccessToken      = new AccessToken(tokenResponse.AccessToken);
                result.BankAccountToken = tokenResponse.BankToken;

                return(result);
            }

            result.Exception = await this.ParseException(response, responseJson);

            return(result);
        }
Ejemplo n.º 2
0
        public async System.Threading.Tasks.Task <IActionResult> GetAccessTokenAsync([FromBody] PlaidLinkResponse bank_info)
        {
            var client = new PlaidClient(_clientId, _secrets, null, Acklann.Plaid.Environment.Sandbox);

            ExchangeTokenResponse response = await client.ExchangeTokenAsync(new ExchangeTokenRequest
            {
                ClientId    = _clientId,
                Secret      = _secrets,
                PublicToken = bank_info.PublicToken
            });

            UpdateAccessToken(response.AccessToken);

            return(Json(response));
        }
Ejemplo n.º 3
0
        public async Task ExchangePublicTokenAsync_should_retrieve_a_response_from_the_api_server()
        {
            // Arrange
            using PlaidClient client = new PlaidClient { Environment = Environment.Sandbox };

            // Act
            ExchangeTokenRequest request = new ExchangeTokenRequest {
            };
            ExchangeTokenResponse result = await client.ExchangeTokenAsync(request);

            // Assert
            result.Exception.ShouldBeNull();
            result.SuccessfulOutcome.ShouldBeTrue();
            result.AccessToken.ShouldNotBeNull();
        }
Ejemplo n.º 4
0
        public IActionResult GetAccessToken(Environment environment, [FromBody] PlaidLinkResponse metadata)
        {
            var client = new PlaidClient(environment);
            ExchangeTokenResponse result = client.ExchangeTokenAsync(new ExchangeTokenRequest()
            {
                Secret      = _credentials.Secret,
                ClientId    = _credentials.ClientId,
                PublicToken = metadata.PublicToken
            }).Result;

            _credentials.AccessToken = result.AccessToken;
            System.Diagnostics.Debug.WriteLine($"access_token: '{result.AccessToken}'");

            return(Ok(result));
        }