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