public ActionResult PayBuyCreditsPartial([ModelBinder(typeof(DevExpressEditorsBinder))] Models.Credits item) { if (string.IsNullOrEmpty(Request.Params["PayerID"])) { var credits = unitOfWork.CreditsRepo.Find(m => m.Id == item.Id); var guid = Guid.NewGuid().ToString().ToLower().Replace("-", ""); var createdPayment = paypalHelper.CreatePayment(guid, paypalHelper.BuyCredit(credits?.Credit)); credits.PayId = createdPayment.id; unitOfWork.Save(); Session.Add(guid, createdPayment.id); return(Redirect( createdPayment.links.FirstOrDefault(m => m.rel.ToLower().Contains("approval_url"))?.href)); } else { string paymentId = Session[Request.Params["guid"]].ToString(); var payment = paypalHelper.ExecutePayment(Request.Params["PayerID"], paymentId); var credits = unitOfWork.CreditsRepo.Find(m => m.PayId == paymentId); credits.State = "Paid"; credits.AmountPaid = (0.05M + (credits.Credit * 0.05M)); credits.PayBy = User.Identity.GetUserId(); credits.DatePaid = DateTime.Now; unitOfWork.Save(); } return(RedirectToAction("buycredit")); }
public ActionResult PaymentWithPaypal() { APIContext apiContext = paypalHelper.GetAPIContext(); try { string payerId = Request.Params["PayerID"]; if (string.IsNullOrEmpty(payerId)) { var createdPayment = paypalHelper.CreatePayment("", paypalHelper.BuyCredit(3)); var links = createdPayment.links.FirstOrDefault(m => m.rel.ToLower().Contains("approval_url")); //while (links.MoveNext()) //{ // Links lnk = links.Current; // if (lnk.rel.ToLower().Trim().Equals("approval_url")) // { // paypalRedirectUrl = lnk.href; // } //} return(Redirect(links.href)); } else { var guid = Request.Params["guid"]; var executedPayment = paypalHelper.ExecutePayment(payerId, Session[guid] as string); if (executedPayment.state.ToLower() != "approved") { } } } catch (Exception ex) { } //on successful payment, show success page to user. return(RedirectToAction("buycredit", "credits")); }