static void Main(string[] args) { var order = new Order(); order.LineItems.Add(new Item("ATOMOSV", "Atomos Ninja V", 499), 2); order.LineItems.Add(new Item("EOSR", "Canon EOS R", 1799), 1); order.SelectedPayments.Add(new Payment { PaymentProvider = PaymentProvider.Paypal, Amount = 1000 }); order.SelectedPayments.Add(new Payment { PaymentProvider = PaymentProvider.Invoice, Amount = 1797 }); Console.WriteLine(order.AmountDue); Console.WriteLine(order.ShippingStatus); var handler = new PaymentHandler( new PaypalHandler(), new InvoiceHandler(), new CreditCardHandler() ); handler.Handle(order); Console.WriteLine(order.AmountDue); Console.WriteLine(order.ShippingStatus); }
public void GivenAPaymentProcessingRequestIsProvided_WhenHandlingItAndTheBankingReturnsAFailedTransactionResponse_ThenItReturnsAFailedPaymentProcessingResponse() { // Given var mockedLogger = Substitute.For <ILogger <PaymentHandler> >(); var mockedBankingHandler = Substitute.For <IBankingHandler>(); var mockedPaymentRepository = Substitute.For <IPaymentRepository>(); var realPaymentHandler = new PaymentHandler(mockedLogger, mockedBankingHandler, mockedPaymentRepository); var request = new PaymentProcessingRequest(); mockedBankingHandler .Handle(request) .Returns(new BankingResponse { Success = false, TransactionId = Guid.NewGuid() }); // When var response = realPaymentHandler.Handle(request).GetAwaiter().GetResult(); // Then response.Should().NotBeNull(); response.Should().BeOfType <PaymentProcessingResponse>(); response.Success.Should().BeFalse(); mockedPaymentRepository.Received(2).Upsert(Arg.Any <PaymentRecord>()); mockedBankingHandler.Received(1).Handle(request); }
private async void OnPayClick(object sender, RoutedEventArgs e) { var product = new Order { OrderId = Guid.NewGuid().ToString(), Amount = item.SaleInfo.Price * 100, Title = item.VolumeInfo.Title, Description = item.VolumeInfo.Description, CustomerKey = App.CustomerKey, }; var paymentListener = new PaymentHandler { SucceededCallback = paymentId => { Frame.Navigate(typeof(ConfirmationView), item.SaleInfo.Price); }, CancelledCallback = () => { }, FailedCallback = async exception => { var messageDialog = new MessageDialog("Платёж отклонён банком. Убедитесь, что на карте достаточно средств и попробуйте снова.", "Платёж отклонён"); await messageDialog.ShowAsync(); } }; await AcquiringUI.ShowPaymentViewAsync(product, paymentListener); }
private async void OnPayClick(object sender, RoutedEventArgs e) { var items = Items; if (!items.Any()) { return; } var order = new Order { OrderId = Guid.NewGuid().ToString(), Amount = total * 100, Title = items.Count == 1 ? items.First().Item.VolumeInfo.Title : "Покупка книг", Description = string.Join(", ", items.Select(item => item.Item.VolumeInfo.Description)), CustomerKey = App.CustomerKey }; var paymentListener = new PaymentHandler { SucceededCallback = paymentId => { Items.Clear(); Frame.Navigate(typeof(ConfirmationView), total); }, CancelledCallback = () => { }, FailedCallback = async exception => { var messageDialog = new MessageDialog("Платёж отклонён банком. Убедитесь, что на карте достаточно средств и попробуйте снова.", "Платёж отклонён"); await messageDialog.ShowAsync(); } }; await AcquiringUI.ShowPaymentViewAsync(order, paymentListener); }
public void GivenABankingExceptionIsThrown_WhenHandlingIt_ThenItReturnsAPaymentProcessingException() { // Given var mockedLogger = Substitute.For <ILogger <PaymentHandler> >(); var mockedBankingHandler = Substitute.For <IBankingHandler>(); var mockedPaymentRepository = Substitute.For <IPaymentRepository>(); var realPaymentHandler = new PaymentHandler(mockedLogger, mockedBankingHandler, mockedPaymentRepository); var request = new PaymentProcessingRequest(); var exception = new BankingException("test"); mockedBankingHandler .Handle(request) .Throws(exception); // When var response = Assert.Throws <PaymentProcessingException>(() => realPaymentHandler.Handle(request).GetAwaiter().GetResult()); // Then response.Should().NotBeNull(); response.Should().BeOfType <PaymentProcessingException>(); response.Message.Should().Be($"There was an issue when processing the transaction with the bank. Details: {exception.Message}"); mockedPaymentRepository.Received(1).Upsert(Arg.Any <PaymentRecord>()); mockedBankingHandler.Received(1).Handle(request); }
public void PaytmTest() { //Arrange UserDetails userDetails; PaymentMethodDetails paymentMethodDetails, returnedDetails; //Act userDetails = new UserDetails(); userDetails._userName = "******"; userDetails._registeredMobileNumber = "8975759698"; string paymentMethod = "paytm"; paymentMethodDetails = new PaymentMethodDetails(userDetails, paymentMethod); PaymentHandler paymentHandler = new PaymentHandler(paymentMethodDetails); returnedDetails = paymentHandler.DoPayment(); paymentMethodDetails.confirmationStatus = true; paymentMethodDetails.paymentReceiptStatus = true; //Assert Assert.Equal(paymentMethodDetails.confirmationStatus, returnedDetails.confirmationStatus); Assert.Equal(paymentMethodDetails.paymentMethod, returnedDetails.paymentMethod); Assert.Equal(paymentMethodDetails.userDetails._registeredMobileNumber, returnedDetails.userDetails._registeredMobileNumber); Assert.Equal(paymentMethodDetails.userDetails._userName, returnedDetails.userDetails._userName); Assert.Equal(paymentMethodDetails.userDetails._upiPaymentId, returnedDetails.userDetails._upiPaymentId); Assert.Equal(paymentMethodDetails.userDetails._cardNumber, returnedDetails.userDetails._cardNumber); }
private PurchaseManagement(PaymentHandler paymentHandler, DeliveryHandler deliveryHandler) { ClearAll(); this.storeManagment = StoreManagment.Instance; this.paymentHandler = paymentHandler; this.deliveryHandler = deliveryHandler; this.userManager = UserManager.Instance; }
public void IfUPIPaymenttMethodSucceeds() { UserDetails UPIUserDetails = new UserDetails("Shravan", "", "1234", ""); PaymentHandler paymentHandler = new PaymentHandler(new UPIPayment(), UPIUserDetails); string notificationMessage = paymentHandler.GetPaymentConfirmation(); Assert.AreEqual("Payment done using UPI", notificationMessage); }
public void Setup() { _payRepository = new Mock <IRepository <PayDetails> >(); _payStatusRepository = new Mock <IRepository <PaymentStatus> >(); _cheapPaymentGateway = new Mock <ICheapPaymentGateway>(); _expensivePaymentGateway = new Mock <IExpensivePaymentGateway>(); _premiumPaymentGateway = new Mock <IPremiumPaymentGateway>(); _handler = new PaymentHandler(_payRepository.Object, _payStatusRepository.Object, _cheapPaymentGateway.Object, _expensivePaymentGateway.Object, _premiumPaymentGateway.Object); }
private IEnumerable <BankTran> FilterTransactions(PaymentHandler filter, IEnumerable <BankTran> trans) { foreach (var item in trans) { if (filter(item.RecoveryPaymentType)) { yield return(item); } } }
/// <summary> /// Setup the dependencies of this class for tests purposes /// </summary> public void SetupDependencies( StoreManagment storeManagment, PaymentHandler paymentHandler, DeliveryHandler deliveryHandler, UserManager userManager) { this.storeManagment = storeManagment; this.userManager = userManager; this.paymentHandler = paymentHandler; this.deliveryHandler = deliveryHandler; }
public void IfPayTmPaymentMethodSucceeds() { UserDetails PayTmUserDetails = new UserDetails("Shravan", "9763328133", "", ""); PaymentHandler paymentHandler = new PaymentHandler(new PayTm(), PayTmUserDetails); string notificationMessage = paymentHandler.GetPaymentConfirmation(); string message = "Payment done using Paytm"; string m2 = message.ToLowerInvariant(); Assert.AreEqual(message, notificationMessage); }
public HomeController() { configuration = new NGeniusConfiguration() { IsTest = true, APIKey = "xxxxxxxxxxx", OutletId = "xxxxx", RedirectUrl = "http://sriajith.info/redirect", CancelUrl = "http://sriajith.info/cancel" }; paymentHandler = new PaymentHandler(); }
/// <summary> /// Открывает экран оплаты. Позволяет посмотреть данные платежа, ввести данные карты для оплаты, проходить в случае необходимости 3DS, управлять ранее сохраненными картами. /// </summary> /// <param name="order">Параметры заказа.</param> /// <param name="handler">Обработчик результата платежа.</param> /// <returns> /// The asynchronous results of the operation. Use this to determine when the async call is complete. /// </returns> public static async Task ShowPaymentViewAsync(Order order, PaymentHandler handler) { if (shown) { throw new InvalidOperationException("The dialog is already shown."); } await SetStatusBar(); try { shown = true; Subscribe(); dismissTaskSource = new TaskCompletionSource <object>(); var container = new Grid(); var frame = new Frame(); container.Children.Add(frame); popup = new Popup { Child = container, IsLightDismissEnabled = false, IsOpen = true }; ResizeLayoutRoot(); if (frame.Navigate(typeof(PaymentView), order)) { var paymentView = (PaymentView)frame.Content; if (paymentView != null) { paymentView.Succeeded += async _ => await HideAsync(); paymentView.Succeeded += handler.SucceededCallback; paymentView.Cancelled += async() => await HideAsync(); paymentView.Cancelled += handler.CancelledCallback; paymentView.Failed += async _ => await HideAsync(); paymentView.Failed += handler.FailedCallback; await dismissTaskSource.Task; } } } finally { popup.IsOpen = false; popup.Child = null; popup = null; Unsubscribe(); shown = false; } }
public static Response DeletePaymentType(int id) { PaymentType pt = PaymentHandler.DeletePaymentType(id); if (pt == null) { return(new Response(false, "to-be-deleted product cannot be referenced in another table in the database")); } else { return(new Response(true)); } }
public static CompletedPaymentLog GetTransactionIfExistsCreateOtherwise(PaymentProcessor paymentProcessor, string transactionId, string paidFor, string username, Money amount, Money fees, string cryptoCurrencyInfo) { var CompletedPaymentLog = PaymentHandler.GetTransaction(paymentProcessor, transactionId); if (CompletedPaymentLog == null) { CompletedPaymentLog = CompletedPaymentLog.Create(paymentProcessor, paidFor, transactionId, false, username, amount, fees, false, cryptoCurrencyInfo); } return(CompletedPaymentLog); }
public void IfCardPaymenttMethodSucceeds() { UserDetails cardUserDetails = new UserDetails("Shravan", "", "", "1234 4567 5678 9876"); PaymentHandler paymentHandler = new PaymentHandler(new CardPayment(), cardUserDetails); string notificationMessage = paymentHandler.GetPaymentConfirmation(); string message = "Payment done using Card"; string m2 = message.ToLowerInvariant(); Assert.AreEqual(message, notificationMessage); //Assert.AreEqual("Payment done using Card", notificationMessage); }
/// <function cref ="eCommerce_14a.DeliveryHandler.checkconnection() /// <function cref ="eCommerce_14a.PaymentHandler.checkconnection() public void ConnectToHandlers() { DeliveryHandler dh = DeliveryHandler.Instance; PaymentHandler ph = PaymentHandler.Instance; dh.setConnection(false); ph.setConnections(false); Assert.IsFalse(dh.checkconnection()); Assert.IsFalse(dh.checkconnection()); dh.setConnection(true); ph.setConnections(true); Assert.IsTrue(dh.checkconnection()); Assert.IsTrue(dh.checkconnection()); }
public static Response InsertPaymentType(string name) { if (name == "") { return(new Response(false, "Type must be filled")); } if (name.Length < 3) { return(new Response(false, "Type must consists of 3 characters or more")); } Response response = PaymentHandler.InsertPaymentType(name); return(response); }
private HandleFileResult HandleFile(string filePath) { var result = new HandleFileResult(); var mockedReceiver = new StubIPaymentReceiver() { StartPaymentBundleStringDateTimeString = (s1, dt1, s2) => { result.BundlesOpenedCount++; }, EndPaymentBundle = () => { result.BundlesClosedCount++; }, PaymentDecimalString = (d1, s1) => { result.PaymentsSentCount++; } }; var handler = new PaymentHandler(); handler.HandleFile(filePath, mockedReceiver); return result; }
public static Response UpdatePayment(int ID, string newType) { if (newType == "") { return(new Response(false, "Type must be filled")); } if (newType.Length < 3) { return(new Response(false, "Type must consists of 3 characters or more")); } Response response = PaymentHandler.UpdatePayment(ID, newType); return(response); }
public static Response UpdatePaymentType(int id, string type) { if (type == "") { return(new Response(false, "must be filled")); } if (type.Length < 3) { return(new Response(false, "must consist of 3 characters or more")); } else { Response respond = PaymentHandler.UpdatePaymentType(id, type); return(respond); } }
public void Setup() { // mailMoq = new Mock<IMailService>(); packingSlipBuilderMoq = new Mock <IPackingSlipBuilder>(); productCatalogMoq = new Mock <IProductCatalog>(); membershipMoq = new Mock <IMembershipService>(); commissionMoq = new Mock <ICommisionService>(); paymentHandler = new PaymentHandler( () => { return(packingSlipBuilderMoq.Object); }, productCatalogMoq.Object, membershipMoq.Object, commissionMoq.Object); defaultPaymentAccout = new PaymentAccount() { }; }
public ActionResult AddMoney(WalletModel.AddMoney AddMoney) { int Amount = AddMoney.EnterMoney; PaypalItem p = new PaypalItem(); p.currency = "NZD"; p.sku = Session[KeyList.SessionKeys.UserID].ToString(); p.price = Convert.ToDouble(Amount); List <PaypalItem> ListPay = new List <PaypalItem>(); ListPay.Add(p); PaymentHandler ph = new PaymentHandler(ListPay, Convert.ToInt32(Session[KeyList.SessionKeys.UserID])); return(View()); }
public void HandlePayza(string ipnResponse) { var data = NameValuePairs.Parse(ipnResponse); string[] args = new string[] { data["apc_2"], data["apc_3"], data["apc_4"], data["apc_5"], data["apc_6"] }; if (AppSettings.Site.CurrencyCode.Equals(data["ap_currency"], StringComparison.OrdinalIgnoreCase) && "Success".Equals(data["ap_status"], StringComparison.OrdinalIgnoreCase)) { PaymentHandler.CheckIfNotDoneYet(PaymentProcessor.Payza, data["ap_referencenumber"]); handle(args, data["ap_referencenumber"], data["ap_totalamount"], "Payza"); } else { ErrorLogger.Log("Payza IPN: Problems with response: " + ipnResponse, LogType.Payza); } }
public void HandlePayPal(string ipnResponse) { var data = NameValuePairs.Parse(ipnResponse); string[] args = data["invoice"].Split(PayPalButtonGenerationStrategy.ArgsDelimeter); if (AppSettings.Site.CurrencyCode.Equals(data["mc_currency"], StringComparison.OrdinalIgnoreCase) && "Completed".Equals(data["payment_status"], StringComparison.OrdinalIgnoreCase)) { PaymentHandler.CheckIfNotDoneYet(PaymentProcessor.PayPal, data["txn_id"]); handle(args, data["txn_id"], data["mc_gross"], "PayPal"); } else { ErrorLogger.Log("PayPal IPN: Problems with response: " + ipnResponse, LogType.PayPal); } }
public bool DoPaymet(Order order) { var paymentHandler = new PaymentHandler ( new CreditCardHandler(), new SnapScanHandler(), new InvoiceHandler() ); paymentHandler.Handle(order); //paymentHandler.SetNext(new CreditCardHandler()); //paymentHandler.SetNext(new SnapScanHandler()); //paymentHandler.SetNext(new InvoiceHandler()); //paymentHandler.Handle(order); return(true); }
public void it_process_payment_based_chain_of_responsibility() { // Arrange var order = new Order(); order.LineItems.Add(new Item("ATOMOSV", "Atomos Ninja V", 499), 2); order.LineItems.Add(new Item("EOSR", "Canon EOS R", 1799), 1); order.SelectedPayments.Add(new Payment { PaymentProvider = PaymentProvider.Paypal, Amount = 1000 }); order.SelectedPayments.Add(new Payment { PaymentProvider = PaymentProvider.Invoice, Amount = 1797 }); _testOutputHelper.WriteLine($"Order Amount Due : {order.AmountDue}"); _testOutputHelper.WriteLine($"Order Shipping Status : {order.ShippingStatus}"); // Handle payment...Paypal --> Invoice --> Credit Card var receivers = new List <IReceiver <Order> > { new PaypalHandler(), new CreditCardHandler(), new InvoiceHandler() }; PaymentHandler handler = new PaymentHandler(receivers); handler.Handle(order); _testOutputHelper.WriteLine($"Order Amount Due : {order.AmountDue}"); _testOutputHelper.WriteLine($"Order Shipping Status : {order.ShippingStatus}"); }
private static void Main() { var order = new Order(); order.AddLineItem(new LineItem("GUID 1", "Product Name One", 499), 2); order.AddLineItem(new LineItem("GUID 2", "Product Name Two", 799), 1); order.AddPayment(new Payment { PaymentProvider = PaymentProvider.Paypal, Amount = 1000 }); order.AddPayment(new Payment { PaymentProvider = PaymentProvider.Invoice, Amount = 797 }); Console.WriteLine($"Amount Due: \t {order.AmountDue}"); Console.WriteLine($"Shipping Status: \t {order.ShippingStatus}"); //var handler = new PaymentHandler( // new PaypalHandler(), // new InvoiceHandler(), // new CreditCardHandler() //); var handler = new PaymentHandler() .SetNext(new PaypalHandler()) .SetNext(new InvoiceHandler()) .SetNext(new CreditCardHandler()); handler.Handle(order); Console.WriteLine($"Amount Due: \t {order.AmountDue}"); Console.WriteLine($"Shipping Status: \t {order.ShippingStatus}"); }
protected void Checkoutt_Click(object sender, EventArgs e) { if (cartitems == null) { db = new BetaDB(); var email = Session["email"].ToString(); userId = db.Logins.Where(x => x.Email == email).Select(x => x.ID).FirstOrDefault(); cartitems = db.Carts.Where(x => x.UserId == userId).ToList <Cart>(); } List <PaypalItem> approvedItems = new List <PaypalItem>(); foreach (Cart ci in cartitems) { var product = db.Products.Where(x => x.ProductID == ci.ProductID).SingleOrDefault(); var stock = db.Stocks.Where(x => x.ProductID == ci.ProductID && x.ProductSizeName == ci.Size).FirstOrDefault(); if (stock.StockCount < ci.Quantity) { outofstocklbl.Text = "Some Products are Out of Stock"; } else { PaypalItem pi = new PaypalItem { ProductId = product.ProductID, name = product.ProductName, currency = "NZD", price = Convert.ToDouble(product.ProductPrice), quantity = (int)ci.Quantity, size = ci.Size, sku = product.ProductID.ToString() }; approvedItems.Add(pi); } } PaymentHandler ph = new PaymentHandler(approvedItems, userId); }
public void Setup() { // mailMoq = new Mock<IMailService>(); packingSlipBuilderMoq = new Mock <IPackingSlipBuilder>(); productCatalogMoq = new Mock <IProductCatalog>(); membershipMoq = new Mock <IMembershipService>(); commissionMoq = new Mock <ICommisionService>(); paymentServiceMoq = new Mock <IPaymentService>(); paymentHandler = new PaymentHandler( () => { return(packingSlipBuilderMoq.Object); }, productCatalogMoq.Object, membershipMoq.Object, commissionMoq.Object); paymentAccount = new PaymentAccount() { Id = 50 }; payment = new Payment() { Id = 40, PaymentAccount = paymentAccount, Amount = 20.01M }; productId = 3; orderId = 100; order = new Order() { OrderId = orderId, ProductId = productId, Payment = payment }; orderRepository = new OrderRepository(paymentHandler, productCatalogMoq.Object, paymentServiceMoq.Object); }