// GET: Payson public ActionResult Index() { var SUPVM = Session["VM"] as SignMeUpVM; // TODO, hantera Cancel från Payson // Om ViewModel finns i Session kommmer vi från Cancelled och ska visa // felmeddelande if (SUPVM == null) { return(ShowError(log, "Oväntat fel inträffade. Var god försök senare.", true)); //return View(SUPVM.Kontaktinformation); } ViewBag.ev = SUPVM.EvenemangsNamn; LogDebug(log, "Paysonbetalning påbörjad för lag " + SUPVM.GetFaltvarde("Lagnamn")); var paysonKontaktinfo = new PaysonKontaktViewModel { SenderEmail = SUPVM.GetFaltvarde("Epost"), SenderFirstName = SUPVM.GetFaltvarde("Förnamn 1"), SenderLastName = SUPVM.GetFaltvarde("Efternamn 1") }; SUPVM.Kontaktinformation = paysonKontaktinfo; Session["VM"] = SUPVM; return(View(paysonKontaktinfo)); }
public ActionResult Index(PaysonKontaktViewModel kontaktInfo, string prev) { if (!string.IsNullOrEmpty(prev)) { return(RedirectToAction("BekraftaRegistrering", "SignMeUp")); } var SUPVM = Session["VM"] as SignMeUpVM; if (ModelState.IsValid) { try { if (SUPVM == null) { return(ShowError(log, "Oväntat fel. Var god försök senare", true, new Exception("Ingen paysonViewModel i Session."))); } SUPVM.Kontaktinformation = kontaktInfo; LogDebug(log, string.Format("Payment: Lagnamn: {0}", SUPVM.GetFaltvarde("Lagnamn"))); var evenemang = smuService.HamtaEvenemang(SUPVM.EvenemangsId); var org = evenemang.Organisation; // Spara temporärt i databasen var reg = smuService.Spara(SUPVM); SUPVM.RegistreringsId = reg.Id; PayData payData = SkapaPaysonPayData(SUPVM, org); var api = new PaysonApi(org.Betalningsmetoder.PaysonUserId, org.Betalningsmetoder.PaysonUserKey, ApplicationId, false); var response = api.MakePayRequest(payData); if (response.Success) { SUPVM.PaysonToken = response.Token; reg.PaysonToken = response.Token; smuService.UpdateraRegistrering(reg); var forwardUrl = api.GetForwardPayUrl(response.Token); Session["VM"] = SUPVM; return(Redirect(forwardUrl)); } Session["VM"] = SUPVM; return(ShowPaymentError("Error when sending payment to payson.", response.NvpContent, SUPVM.EvenemangsId)); } catch (Exception exception) { var exc = new Exception("Ett fel inträffade i PaysonController Index metod.", exception); LogError(log, "Exception in Index.", exception); return(ShowError(log, "Oväntat fel vid betalning. Var god försök igen.", true, exc)); } } Session["VM"] = SUPVM; ViewBag.ev = SUPVM.EvenemangsNamn; return(View(kontaktInfo)); }