public async Task <CreatePaymentResponse> CreateInboundPayment(ClaimsPrincipal principal, CreatePaymentRequestViewModel request) { { var currentUserId = principal.FindFirst(ClaimTypes.NameIdentifier).Value; var user = _dbContext.Users.FirstOrDefault(x => x.Id == currentUserId); if (user == null) { throw new UserNotFoundException(); } var paymentRequest = new CreateInboundPaymentRequest { Culture = request.Culture, RedirectUrl = GetPaymentRedirectUrl(), Payment = new InboundPaymentRequest { Amount = new PaymentAmountRequest { Value = request.Amount }, } }; return(await CallApi <CreatePaymentResponse>($"v1/accounts/{request.SourceAccountId}/payments/inbound", paymentRequest, HttpMethod.Post, user.AiiaTokenType, user.AiiaAccessToken)); } }
public async Task <ActionResult <CreatePaymentResultViewModel> > CreateInboundPayment( [FromBody] CreatePaymentRequestViewModel body) { if (_environment.IsProduction()) { return(NotFound()); } var result = new CreatePaymentResultViewModel(); try { var createPaymentResult = await _aiiaService.CreateInboundPayment(User, body); result.PaymentId = createPaymentResult.PaymentId; result.AuthorizationUrl = createPaymentResult.AuthorizationUrl; } catch (AiiaClientException e) { result.ErrorDescription = e.Message; } return(Ok(result)); }
public async Task <CreatePaymentResponse> CreateOutboundPayment(ClaimsPrincipal principal, CreatePaymentRequestViewModel request) { var currentUserId = principal.FindFirst(ClaimTypes.NameIdentifier).Value; var user = _dbContext.Users.FirstOrDefault(x => x.Id == currentUserId); if (user == null) { throw new UserNotFoundException(); } var paymentRequest = new CreateOutboundPaymentRequest { Culture = request.Culture, RedirectUrl = GetPaymentRedirectUrl(), Payment = new PaymentRequest { Message = request.message, TransactionText = request.TransactionText, Amount = new PaymentAmountRequest { Value = request.Amount }, Destination = new PaymentDestinationRequest(), PaymentMethod = request.PaymentMethod, }, }; paymentRequest.Payment.Destination.RecipientFullname = request.RecipientFullname; if (!string.IsNullOrWhiteSpace(request.Iban)) { paymentRequest.Payment.Destination.IBan = request.Iban; } else if (!string.IsNullOrWhiteSpace(request.BbanAccountNumber)) { paymentRequest.Payment.Destination.BBan = new PaymentBBanRequest { BankCode = request.BbanBankCode, AccountNumber = request.BbanAccountNumber }; } else { paymentRequest.Payment.Destination.InpaymentForm = new PaymentInpaymentFormRequest { Type = request.InpaymentFormType, CreditorNumber = request.InpaymentFormCreditorNumber }; } if (!string.IsNullOrEmpty(request.Ocr)) { paymentRequest.Payment.Identifiers = new PaymentIdentifiersRequest { Ocr = request.Ocr } } ; if (!string.IsNullOrEmpty(request.AddressStreet)) { paymentRequest.Payment.Destination.Address = new PaymentAddressRequest { Street = request.AddressStreet, BuildingNumber = request.AddressBuildingNumber, PostalCode = request.AddressPostalCode, City = request.AddressCity, Country = request.AddressCountry, }; } return(await CallApi <CreatePaymentResponse>($"v1/accounts/{request.SourceAccountId}/payments/outbound", paymentRequest, HttpMethod.Post, user.AiiaTokenType, user.AiiaAccessToken)); }