public void ThenValidPaymentAndOrderBody(AuthoriseRequest request, AuthoriseResponse response) { Assert.That(response.Amount, Is.EqualTo(request.Amount)); Assert.That(response.CurrencyCode, Is.EqualTo(request.CurrencyCode)); Assert.That(response.CardDetails.CardNumber, Is.EqualTo(GetFirstSixAndLastFour(response.CardDetails.CardNumber))); Assert.IsNull(response.CardDetails.SecurityCode); Assert.That(response.CardDetails.ExpiryDate, Is.EqualTo(request.CardDetails.ExpiryDate)); }
public AuthoriseResponse ToAuthResponse() { var response = new AuthoriseResponse { Amount = Amount, AuthStatus = AuthStatus, CardNetwork = CardNetwork, CardNumberEnding = CardNumberEnding, CurrencyCode = CurrencyCode, TimeStampUtc = TimeStampUtc, RetryAttempts = RetryAttempts, ProcessingTimeMs = ProcessingTimeMs, TransactionId = TransactionId }; return(response); }
public AuthoriseResponse Authorise(AuthoriseRequest request) { AuthoriseResponse response = new AuthoriseResponse(); var options = new PaymentIntentCreateOptions { Amount = Convert.ToInt64(request.amount * 100), Currency = request.currency, PaymentMethodTypes = new List <string> { "card", }, CaptureMethod = "manual", //Metadata = request.metadata as Dictionary<string, string>, }; var service = new PaymentIntentService(); service.Create(options); return(response); }
public static Transaction Create(AuthoriseResponse authoriseResponse, CardNumber cardNumber, UserAccount userAccount) { var transaction = new Transaction { TransactionId = authoriseResponse.TransactionId, Amount = authoriseResponse.Amount, AuthStatus = authoriseResponse.AuthStatus, CardNetwork = authoriseResponse.CardNetwork, CardNumber = cardNumber, CardNumberEnding = cardNumber.Last4Digits(), ClientId = userAccount.ClientId, UserId = userAccount.Id, CurrencyCode = authoriseResponse.CurrencyCode, TimeStampUtc = authoriseResponse.TimeStampUtc, RetryAttempts = authoriseResponse.RetryAttempts, ProcessingTimeMs = authoriseResponse.ProcessingTimeMs }; return(transaction); }
public async Task <AuthoriseResponse> AuthoriseAsync(AuthoriseRequest request) { var json = JsonSerializer.Serialize(request); var content = new StringContent(json, System.Text.Encoding.UTF8, "application/json"); var pollyContext = new Context(); var httpResponse = await PolicyHandlers.CountRetryPolicy() .ExecuteAsync(c => _client.PostAsync("api/authorise", content), pollyContext); if (!httpResponse.IsSuccessStatusCode) { var errorResponse = AuthoriseResponse.CreateFailedResponse( request, pollyContext.GetRetryCount()); return(errorResponse); } var result = await httpResponse.Content.DeserializeAsync <AuthoriseResponse>(); result.RetryAttempts = pollyContext.GetRetryCount(); return(result); }