MakePaymentDetailsRequest() публичный Метод

public MakePaymentDetailsRequest ( PaysonIntegration.Data.PaymentDetailsData data ) : PaysonIntegration.Response.PaymentDetailsResponse
data PaysonIntegration.Data.PaymentDetailsData
Результат PaysonIntegration.Response.PaymentDetailsResponse
        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);
        }
Пример #2
0
        public ActionResult Returned(string regId)
        {
            int registrationId = -1;

            log.Debug("Returned");

            if (!string.IsNullOrEmpty(regId) && !int.TryParse(regId, out registrationId))
            {
                ShowError("regId not in querystring at checkout returned.");
            }

            var registration = db.Registreringar.FirstOrDefault(regg => regg.ID == registrationId);

            if (registration == null)
            {
                ShowError("No registration found in db with id: " + registrationId + " in checkout returned.");
            }

            log.Debug("Returned. Lagnamn: " + registration.Lagnamn);

            // If no payment message has been sent (IPN)
            if (!registration.HarBetalt)
            {
                var api = new PaysonApi(CheckoutModel.PaysonUserId, CheckoutModel.PaysonUserKey);
            #if DEBUG
                api = new PaysonApi("4", "2acab30d-fe50-426f-90d7-8c60a7eb31d4", ApplicationId, true);
            #endif
                var response = api.MakePaymentDetailsRequest(new PaymentDetailsData(registration.PaysonToken));

                if (response.Success && (response.PaymentDetails.PaymentStatus == PaymentStatus.Completed ||
                                        response.PaymentDetails.PaymentStatus == PaymentStatus.Pending))
                {
                    if (!registration.HarBetalt)
                    {
                        SetAsPaid(registration);
                    }
                }
                else
                {
                    log.Warn("Deleting temp-registration with id: " + registrationId);
                    // Remove the temporary registration
                    DeleteRegistrering(registrationId);

                    return ShowPaymentError("Error when payment returned.", response.NvpContent, registration);
                }
            }

            return RedirectToAction("Redirect", "Home");
        }