public ActionResult Payment(PaymentInformationModel data) { if (CurrentUser.Payment != null) { return(RedirectToAction <UserController>(c => c.Index())); } if (ModelState.IsValid) { //var subscription = SubscriptionRequest.CreateMonthly(CurrentUser.Email, "Hatley", // AuthorizeNetConfigurationSection.Price); //subscription.CardNumber = data.CartNumber; //subscription.CardCode = data.CardCode; //subscription.CardExpirationMonth = (int)data.ExpirationMonth; //subscription.CardExpirationYear = (int)data.ExpirationYear; //subscription.StartsOn = DateTime.UtcNow; //subscription.WithBillingAddress(new Address() //{ // First = data.FirstName, // Last = data.LastName, // Phone = CurrentUser.PhoneNumber //}); //ISubscriptionRequest payment = null; CustomerInfo info = new CustomerInfo { CardNumber = data.CartNumber, Cvc = data.CardCode, Email = CurrentUser.Email, ExpMonth = data.ExpirationMonth.ToString(), ExpYear = data.ExpirationYear.ToString(), FullName = CurrentUser.FullName }; try { payment.CreateSubscription(info, planId); CurrentUser.Payment = new Payment { PaymentId = payment.PaymentId, PaymentDateUTC = DateTime.UtcNow, CardNumber = data.CartNumber.Substring(data.CartNumber.Length - 4) }; } catch (Exception e) { logger.Error("Error while saving payment", e); ModelState.AddModelError("", "Invalid payment information!"); return(View(data)); } UnitOfWork.Commit(); return(RedirectToAction <UserController>(c => c.Index())); } return(View(data)); }