public void ReturnCreatedActionResult() { //Arrange var paymentRepo = new Mock <IPaymentRepository>(); var profile = new MerchantPaymentProfile(); var mapperConfig = new MapperConfiguration(x => x.AddProfile(profile)); var paymentPublisher = new Mock <IPaymentPublisher>(); var mapper = new Mapper(mapperConfig); var paymentRequest = new MerchantPaymentRequest { Amount = 9.99, Currency = "USD", MerchantId = "1", PaymentMethod = new PaymentMethod { Cvv = "123", ExpirationMonth = "05", ExpirationYear = "2021", Number = "4319487612345678", PaymentMethodId = new Guid(), Type = "Visa" } }; var controller = new PaymentController(paymentRepo.Object, mapper, paymentPublisher.Object); //Act var result = controller.SubmitPayment(paymentRequest); //Assert Assert.That(result.Result, Is.TypeOf <CreatedAtActionResult>()); }
public MerchantPaymentResponse EstimateTransactionDetails(MerchantPaymentRequest request) { try { return(Payment.EstimateTransactionDetails(request)); } catch (Exception ex) { throw ex; } }
public IActionResult EstimateTransactionDetails([FromBody] MerchantPaymentRequest request) { MerchantPaymentResponse response = new MerchantPaymentResponse(); response.Amount = new Amount(); response.Amount.ServiceFees = Constants.Constants.TransactionFees; response.Amount.Commission = request.Amount - 1; response.Amount.Total = request.Amount + Constants.Constants.TransactionFees; response.TransactionId = request.TransactionId + "--" + "\n" + "Basic Info:" + request.BasicInfo.ToString(); return(Ok(response)); }
public MerchantPaymentResponse EstimateTransactionDetails(MerchantPaymentRequest request) { HttpResponseMessage response = MockupsAPIsCaller.CallAPI(request, "api/Payment/MerchantToSR/EstimateTransactionDetails"); if (response.StatusCode == HttpStatusCode.OK) { string ResponseString = (response.Content.ReadAsStringAsync()).Result; MerchantPaymentResponse merchantPaymentResponse = JsonConvert.DeserializeObject <MerchantPaymentResponse>(ResponseString); return(merchantPaymentResponse); } else if (response.StatusCode == (HttpStatusCode)490) { throw MockupsAPIsCaller.GenerateError(response); } throw new Exception(); }
public async Task <IActionResult> SubmitPayment([FromBody] MerchantPaymentRequest paymentRequest) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); //log - bad request } var payment = _mapper.Map <MerchantPayment>(paymentRequest); await _paymentRepository.Add(payment); //log payment added to db with {id} _paymentPublisher.PublishPaymentSubmitted(payment); //log payment submitted to bank with {id} return(CreatedAtAction(nameof(GetPayment), new { id = payment.Id }, _mapper.Map <MerchantPaymentResponse>(payment))); }
public async Task <ActionResult <PaymentResponse> > Post(MerchantPaymentRequest request) { var paymentRequest = new PaymentRequest { TrackId = Guid.NewGuid().ToString(), Amount = request.Amount, Currency = request.Currency, Card = new CardRequest { Name = "Merchant Test User", Number = "4953089013607", ExpiryMonth = 11, ExpiryYear = 2022, Cvv = "123" } }; try { var response = await _httpClient.CreatePaymentAsync(paymentRequest, _gatewayOptions.ApiKey); return(Ok(response)); } catch (ApiException ex) { // Exception handling logic should be moved somewhere else to keep method clean. if (ex.StatusCode == HttpStatusCode.BadRequest) { throw new BadRequestException(ex.Message); } if (ex.StatusCode == HttpStatusCode.Unauthorized) { throw new UnauthorizedException(ex.Message); } throw new GatewayException(ex.Message); } }
public IActionResult EstimateTransactionDetails([FromBody] MerchantPaymentRequest request) { if (!request.ValidateObject()) { try { ExceptionHandeling.FireError((int)ErrorCode.General_Error, (int)GeneralError.Nullable_Request, Constants.Constants.GeneralErrorDic[GeneralError.Nullable_Request]); } catch (CodeLabException codelabExp) { return(ExceptionHandeling.GenerateErrorResponse(codelabExp)); } } MerchantPaymentResponse response = new MerchantPaymentResponse(); response.Amount = new Amount(); response.Amount.ServiceFees = Constants.Constants.TransactionFees; response.Amount.Commission = (long)request.Amount - 1; response.Amount.Total = (long)request.Amount + Constants.Constants.TransactionFees; response.TransactionId = request.TransactionId + "--" + "\n" + "Basic Info:" + request.BasicInfo.ToString(); return(Ok(response)); }
public void ReturnCorrectValuesInResponse() { //Arrange var paymentRepo = new Mock <IPaymentRepository>(); var profile = new MerchantPaymentProfile(); var mapperConfig = new MapperConfiguration(x => x.AddProfile(profile)); var paymentPublisher = new Mock <IPaymentPublisher>(); var mapper = new Mapper(mapperConfig); var paymentRequest = new MerchantPaymentRequest { Amount = 9.99, Currency = "USD", MerchantId = "1", PaymentMethod = new PaymentMethod { Cvv = "123", ExpirationMonth = "05", ExpirationYear = "2021", Number = "4319487612345678", PaymentMethodId = new Guid(), Type = "Visa" } }; var controller = new PaymentController(paymentRepo.Object, mapper, paymentPublisher.Object); //Act var result = controller.SubmitPayment(paymentRequest); var value = ((CreatedAtActionResult)result.Result).Value as MerchantPaymentResponse; //https://github.com/dotnet/AspNetCore.Docs/issues/12533 - ew. //Assert Assert.That(value.Amount, Is.EqualTo(9.99)); Assert.That(value.Currency, Is.EqualTo("USD")); Assert.That(value.MerchantId, Is.EqualTo("1")); }
public void StatusIsSetToADefaultStateOfSubmittedWhenRequestIsMadeByMerchant() { //Arrange var paymentRepo = new Mock <IPaymentRepository>(); var profile = new MerchantPaymentProfile(); var mapperConfig = new MapperConfiguration(x => x.AddProfile(profile)); var paymentPublisher = new Mock <IPaymentPublisher>(); var mapper = new Mapper(mapperConfig); var paymentRequest = new MerchantPaymentRequest { Amount = 9.99, Currency = "USD", MerchantId = "1", PaymentMethod = new PaymentMethod { Cvv = "123", ExpirationMonth = "05", ExpirationYear = "2021", Number = "4319487612345678", PaymentMethodId = new Guid(), Type = "Visa" } }; var controller = new PaymentController(paymentRepo.Object, mapper, paymentPublisher.Object); //Act var result = controller.SubmitPayment(paymentRequest); var value = ((CreatedAtActionResult)result.Result).Value as MerchantPaymentResponse; //Assert Assert.That(value.Status, Is.EqualTo(Status.Submitted)); Assert.That(value.Status, Is.Not.EqualTo(Status.Declined)); }
private async void DoPaymentService(bool ok) { if (!ok) { return; } if (IsBusy || IsLoading) { //Message Toast ShowSnackBarWithAction(TranslateManagerHelper.Convert("loading_please_wait"), null, TranslateManagerHelper.Convert("ok").ToUpperInvariant()); return; } IsLoading = true; AccountModel accountSelected; if (Currency.Value == _accountLRD.Currency) { accountSelected = _accountLRD; } else if (Currency.Value == _accountUSD.Currency) { accountSelected = _accountUSD; } else { var parameters1 = new NavigationParameters { { Constants.PopupIsSucces, false }, { Constants.PopupMessage, TranslateManagerHelper.Convert("operation_failed") }, { Constants.PopupNextPage, FunctionName.MerchantPayment } }; await NavigationService.NavigateAsync(PopupName.SuccessfullPopup, parameters1).ConfigureAwait(false); IsLoading = false; return; } // call service feature MerchantPaymentRequest mpr = new MerchantPaymentRequest() { TargetAccountNumber = accountSelected.AccountNumber }; featureDTO f = new featureDTO() { FeatureName = "MERCHANT_PAYMENT", SenderId = ApiConstants.CountryPrefix + _userInformation.UserName, SenderPassword = _userInformation.Password, Amount = decimal.Parse(Amount.Value), TargetId = MerchantId.Value, jsonObjString = JsonConvert.SerializeObject(mpr) }; bool issuccess = false; string message = ""; var mkp = await _makepayment.Execute <featureDTO, MerchantPaymentResponse>(_authentication.GetToken(), f, ApiConstants.SystemId); if (mkp != null) { if (mkp.isuccess) { issuccess = true; var mk = mkp.data; UpdateUserAccount(new AccountModel { AccountNumber = mk.AccountUpdate.AccountNumber, Balance = mk.AccountUpdate.Balance.ToString(), Currency = mk.AccountUpdate.CurrencyISO, Type = mk.AccountUpdate.AccountType }); message = TranslateManagerHelper.Convert("operation_successfully"); } else { issuccess = false; switch (mkp.errcode) { case "EXCEPTION": message = TranslateManagerHelper.Convert("operation_failed"); break; case "WrongPincode": message = mkp.msg; break; default: message = !string.IsNullOrEmpty(mkp?.msg) ? mkp.msg : TranslateManagerHelper.Convert("error_occured"); break; } } } else { issuccess = false; message = TranslateManagerHelper.Convert("error_occured"); } var parameters = new NavigationParameters { { Constants.PopupIsSucces, issuccess }, { Constants.PopupMessage, message }, { Constants.PopupNextPage, FunctionName.MerchantPayment } }; await NavigationService.NavigateAsync(PopupName.SuccessfullPopup, parameters).ConfigureAwait(false); IsLoading = false; }