public ActionResult OnAuthorizedPayment(string data, string paymentID, string payerID) { try { Context db = new Context(); JavaScriptSerializer jss = new JavaScriptSerializer(); Student model = jss.Deserialize <Student>(data); var payment = PaypalService.ExecutePayment(paymentID, payerID); if (payment.state == "approved") { int StudentID = SaveRegistration(model); StudentPayment pay = new StudentPayment(); pay.PaymentID = 0; pay.PaymentDate = DateTime.Now.Date; pay.TransactionID = payment.id; pay.type = "Paypal"; pay.StudentID = StudentID; pay.Detail = ""; pay.Amount = (model.TotalClassPrice - model.DiscountPrice); db.StudentPayment.Add(pay); db.SaveChanges(); Utilities.AssignKeycodesToCourseAddons(model.SelectedOptions, model.FirstName, model.LastName, model.Email, model.ClassID, StudentID); Utilities.SendClassRegistrationConfirmationToStudent(model); return(RedirectToAction("RegistrationConfirmed", new { id = StudentID })); } else { FlashMessage.Warning("Paypal Transaction Fail"); return(RedirectToAction("RegistrationError")); } } catch (Exception ex) { FlashMessage.Warning(ex.Message); return(RedirectToAction("RegistrationError")); } }