public ActionResult Cancelled(int?id) { if (!id.HasValue) { LogError(log, string.Format("Felaktigt regId: {0} i cancel.", id)); return(ShowError(log, "Kunde inte återskapa dina uppgifter.", true, new Exception("Felaktigt regId: " + id + " vid cancel."))); } var registrering = smuService.GetRegistrering(id.Value, false); if (registrering == null) { LogError(log, "Payson betalning avbruten och ingen registrering i Session hittades."); return(ShowError(log, "Betalningen avbröts av okänd anledning", true, new Exception("Payson betalning avbruten och ingen registrering i Session hittades."))); } var org = smuService.HamtaOrganisation(registrering.Evenemang.OrganisationsId); var api = new PaysonApi(org.Betalningsmetoder.PaysonUserId, org.Betalningsmetoder.PaysonUserKey, ApplicationId, false); var response = api.MakePaymentDetailsRequest(new PaymentDetailsData(registrering.PaysonToken)); var evenemangsId = registrering.EvenemangsId; // Ta bort temporär registrering smuService.TabortRegistrering(registrering); Session["VM"] = null; return(ShowPaymentError("Betalningen avbruten.", response.NvpContent, evenemangsId.Value)); }
public ActionResult Returned(string orderGuid) { var state = repository.GetPurchaseState(orderGuid); if (state != null) { var api = new PaysonApi(state.UserId, state.UserKey, ApplicationId, true); var response = api.MakePaymentDetailsRequest(new PaymentDetailsData(state.Token)); if (response.Success) { var status = response.PaymentDetails.PaymentStatus.HasValue ? response.PaymentDetails.PaymentStatus.ToString() : "N/A"; state.Updates[DateTime.Now] = "ReturnUrl: " + status; state.LatestStatus = status; } else { ViewBag.Errors = response.ErrorMessages; return(View("Index", GetDefaultPayViewModel())); } } return(View("Result", state)); }
/// <summary> /// Metod som kallas när betalningen är klar /// </summary> /// <param name="id"></param> /// <returns></returns> public ActionResult Returned(int?id) { LogDebug(log, string.Format("Returned id: {0}", id)); if (!id.HasValue) { LogError(log, string.Format("Felaktigt angivet regId: {0}", id)); return(ShowError(log, "Ett fel inträffade när betalningen slutfördes. Kontrollera i startlistan om er registrering genomförts", true, new Exception("Felaktigt angivet regId: " + id))); } var registration = smuService.GetRegistrering(id.Value, true); if (registration == null) { LogError(log, string.Format("Ingen registration hittad med id: {0} i Returned.", id)); return(ShowError(log, "Ett fel inträffade när betalningen slutfördes. Kontrollera i startlistan om er registrering genomförts", true, new Exception("Ingen registration hittad med id: " + id + " i Returned."))); } LogDebug(log, string.Format("Returned. Lagnamn: {0}", registration.Lagnamn)); // If no payment message has been sent (IPN) if (!registration.HarBetalt) { var org = smuService.HamtaOrganisation(registration.Evenemang.OrganisationsId); var api = new PaysonApi(org.Betalningsmetoder.PaysonUserId, org.Betalningsmetoder.PaysonUserKey, ApplicationId, false); var response = api.MakePaymentDetailsRequest(new PaymentDetailsData(registration.PaysonToken)); if (response.Success && (response.PaymentDetails.PaymentStatus == PaymentStatus.Completed || response.PaymentDetails.PaymentStatus == PaymentStatus.Pending)) { if (!registration.HarBetalt) { smuService.HarBetalt(registration); SkickaRegMail(registration); Session["VM"] = null; } } else { LogDebug(log, string.Format("Deleting temp-registration with id: {0}", id)); var evenemangsId = registration.EvenemangsId; // Remove the temporary registration smuService.TabortRegistrering(registration); return(ShowPaymentError("Error when payment returned.", response.NvpContent, evenemangsId.Value)); } } ViewBag.ev = registration.Evenemang.Namn; return(RedirectToAction("BekraftelseBetalning", "signmeup", new { id = id })); }