public override PublicPaymentTransaction AmendPaymentTransaction(PublicPaymentTransaction transaction, PaymentData paymentData) { transaction.ReturnUrl = urlProvider.DefaultPaymentUrl; transaction = SetCancelUrl(transaction, urlProvider.CancelUrl); return transaction; }
public ActionResult Index(CheckoutViewModel model) { var cart = cartProvider.GetCart(); var contactDataCollection = contactDataProvider.GetContactData(); if (cart.IsEmpty()) { ModelState.AddModelError("cart", "Cart is empty"); } else if (contactDataCollection == null) { ModelState.AddModelError("contactData", "Contact data is empty"); } if (ModelState.IsValid) { // Recalculate cart one last time, to make sure e.g. setup fees are still there. cartPricingService.CalculatePricing(cart); var paymentData = new PaymentData { Id = model.SelectedPaymentMethod.Id, PaymentForm = model.SelectedPaymentMethod.Form, SaveCcInfo = model.SelectedPaymentMethod.SupportsPaymentProfile && model.SaveCcInfo, AutoPay = model.SelectedPaymentMethod.SupportsPaymentProfile && model.AutoPay }; var orderContext = new OrderContext(cart, contactDataCollection, paymentData, new object[] { Request }); var result = orderPlacementService.PlaceOrder(orderContext); return Redirect(result.RedirectUrl); } return View(model); }
public override PublicPaymentTransaction AmendPaymentTransaction(PublicPaymentTransaction transaction, PaymentData paymentData) { var urlHelper = new UrlHelper(HttpContext.Current.Request.RequestContext, RouteTable.Routes); var path = urlHelper.Action("Confirm", "PayPal"); transaction.ReturnUrl = urlProvider.QualifiedUrl(path); transaction = SetCancelUrl(transaction, urlProvider.CancelUrl); return transaction; }
public override PublicOrder AmendOrder(PublicOrder order, PaymentData paymentData) { var form = paymentData.PaymentForm as PayWithInvoiceForm; Add(order, new PublicOrderCustomData { Name = "PayByInvoice", Value = "true" }); if (form.SelectedInvoiceType == "post") { Add(order, new PublicOrderCustomData { Name = "SendInvoiceByPost", Value = "true" }); } return order; }
public override PublicPaymentTransaction AmendPaymentTransaction(PublicPaymentTransaction transaction, PaymentData paymentData) { var form = paymentData.PaymentForm as CCPaymentForm; var attributes = new List<AttributeData>(transaction.Attributes); attributes.Add(new AttributeData { Name = "cc_number", Value = form.CardNumber }); attributes.Add(new AttributeData { Name = "cc_name", Value = form.CardOwner }); attributes.Add(new AttributeData { Name = "ccv", Value = form.CardSecurityCode }); // wrong abbreviation "ccv" is expected. attributes.Add(new AttributeData { Name = "expires_month", Value = form.ExpiresMonth.ToString() }); attributes.Add(new AttributeData { Name = "expires_year", Value = form.ExpiresYear.ToString() }); transaction.Attributes = attributes.ToArray(); transaction.ReturnUrl = urlProvider.DefaultPaymentUrl; transaction = SetCancelUrl(transaction, urlProvider.CancelUrl); return transaction; }
/// <summary> /// OrderContext constructor /// </summary> /// <param name="cart">Collected cart data</param> /// <param name="contactDataCollection">Collected contact data</param> /// <param name="paymentData">Collected payment data</param> /// <param name="extraData">Any unspecified extra data</param> public OrderContext(Cart cart, IContactDataCollection contactDataCollection, PaymentData paymentData, IEnumerable<object> extraData) { if (cart == null) { throw new ArgumentNullException("cart"); } if (contactDataCollection == null) { throw new ArgumentNullException("contactDataCollection"); } if (paymentData == null) { throw new ArgumentNullException("paymentData"); } this.cart = cart; this.contactData = contactDataCollection.GetContactData(); this.paymentData = paymentData; this.extraData = extraData; }
/// <summary> /// OrderContext constructor /// </summary> /// <param name="cart">Collected cart data</param> /// <param name="contactDataCollection">Collected contact data</param> /// <param name="paymentData">Collected payment data</param> /// <param name="extraData">Any unspecified extra data</param> public OrderContext(Cart cart, IContactDataCollection contactDataCollection, PaymentData paymentData, IEnumerable <object> extraData) { if (cart == null) { throw new ArgumentNullException("cart"); } if (contactDataCollection == null) { throw new ArgumentNullException("contactDataCollection"); } if (paymentData == null) { throw new ArgumentNullException("paymentData"); } this.cart = cart; this.contactData = contactDataCollection.GetContactData(); this.paymentData = paymentData; this.extraData = extraData; }
/// <summary> /// Amend payment transaction with payment method specific attributes. /// Typical is to set ReturnUrl on transaction and add CancelUrl to attributes. /// </summary> /// <param name="transaction">The transaction to amend</param> public virtual PublicPaymentTransaction AmendPaymentTransaction(PublicPaymentTransaction paymentTransaction, PaymentData paymentData) { return paymentTransaction; }
/// <summary> /// Amend order with payment method specific attributes. /// </summary> /// <param name="order">The order to amend.</param> public virtual PublicOrder AmendOrder(PublicOrder order, PaymentData paymentData) { return order; }