public bool PaymentMethodRequiresSocialSecurityNumber(PaymentSelection paymentSelection) { // TODO: Needs to check against known payment methods that require SSN, like Klarna return(false); //return paymentSelection.SelectedPayment == new Guid("8dca4a96-a5bb-4e85-82a4-2754f04c2117") || // paymentSelection.SelectedPayment == new Guid("c2ea88f8-c702-4331-819e-0e77e7ac5450"); }
public bool PaymentMethodRequiresSocialSecurityNumber(PaymentSelection paymentSelection) { // TODO: Needs to check against known payment methods that require SSN, like Klarna return false; //return paymentSelection.SelectedPayment == new Guid("8dca4a96-a5bb-4e85-82a4-2754f04c2117") || // paymentSelection.SelectedPayment == new Guid("c2ea88f8-c702-4331-819e-0e77e7ac5450"); }
public async Task <IActionResult> Post([Required] PaymentSelection paymentSelection) { try { if (!string.IsNullOrEmpty(paymentSelection.Type)) { var response = new PaymentSelection() { Type = await this.paymentGatewayService.Process(paymentSelection.Type.ToLower()) }; return(Ok(response)); } return(BadRequest("Provide valid payment type from given types")); } catch (Exception ex) { return(StatusCode((int)HttpStatusCode.InternalServerError, ex.Message)); } }
private PaymentSelection GetPaymentInfo() { var paymentMethods = PaymentManager.GetPaymentMethods(_currentMarket.GetCurrentMarket().DefaultLanguage.ToString()); var paymentInfo = new PaymentSelection(); foreach (var paymentMethodRow in paymentMethods.PaymentMethod.OrderBy(p => p.Ordering)) { var methodInfo = new PaymentMethodInfo(); methodInfo.PaymentMethod = paymentMethodRow; // Enrich with payment information from page var page = _paymentRegistry.GetPaymentContentPageByMethodId(paymentMethodRow.PaymentMethodId); methodInfo.Description = page.Description != null?page.Description.ToHtmlString() : string.Empty; paymentInfo.PaymentMethods.Add(methodInfo); } // if there is only 1 choice, select it as default if (paymentInfo.PaymentMethods.Count == 1) { paymentInfo.PaymentMethods.First().PaymentMethod.IsDefault = true; } return(paymentInfo); }
public ActionResult Index(CheckoutPage currentPage, CheckoutViewModel model, PaymentSelection paymentSelection, int[] SelectedCategories) { model.PaymentSelection = paymentSelection; model.AvailableCategories = GetAvailableCategories(); model.SelectedCategories = SelectedCategories; bool requireSSN = _paymentRegistry.PaymentMethodRequiresSocialSecurityNumber(paymentSelection); // validate input! ValidateFields(model, requireSSN); CartHelper ch = new CartHelper(Cart.DefaultName); // Verify that we actually have the items we're about to sell ConfirmStocks(ch.LineItems); if (ModelState.IsValid) { var billingAddress = model.BillingAddress.ToOrderAddress(Constants.Order.BillingAddressName); var shippingAddress = model.ShippingAddress.ToOrderAddress(Constants.Order.ShippingAddressName); string username = model.Email.Trim(); billingAddress.Email = username; billingAddress.DaytimePhoneNumber = model.Phone; HandleUserCreation(model, billingAddress, shippingAddress, username); if (ModelState.IsValid) { // Checkout: ch.Cart.OrderAddresses.Add(billingAddress); ch.Cart.OrderAddresses.Add(shippingAddress); AddShipping(ch.Cart, shippingAddress); ch.Cart.OrderForms[0][Constants.Metadata.OrderForm.CustomerClub] = model.MemberClub; if (model.SelectedCategories != null) { ch.Cart.OrderForms[0][Constants.Metadata.OrderForm.SelectedCategories] = string.Join(",", model.SelectedCategories); } OrderGroupWorkflowManager.RunWorkflow(ch.Cart, OrderGroupWorkflowManager.CartPrepareWorkflowName); AddPayment(ch.Cart, paymentSelection.SelectedPayment.ToString(), billingAddress); ch.Cart.AcceptChanges(); var url = _paymentRegistry.GetPaymentMethodPageUrl(model.PaymentSelection.SelectedPayment.ToString()); if (url != null) { return(Redirect(url)); } } } Guid?selectedPayment = model.PaymentSelection.SelectedPayment; model.PaymentSelection = GetPaymentInfo(); if (selectedPayment.HasValue) { model.PaymentSelection.SelectedPayment = selectedPayment.Value; } model.TermsArticle = currentPage.TermsArticle; return(View(model)); }