public ActionResult Payment() { if (User.Identity.IsAuthenticated) { var userId = User.Identity.GetUserId(); var itemsInCart = db.ShoppingCart.Where(s => s.UserId == userId && s.Status == false).ToList(); // the gateway does not accepts amount less than 1000 Rials decimal totalPrice = 1000; foreach (var item in itemsInCart) { totalPrice += item.Count * item.Price; } try { Payment ob = new Payment(); string result = ob.pay(totalPrice.ToString()); JsonParameters parameters = JsonConvert.DeserializeObject <JsonParameters>(result); if (parameters.status == 1) { List <TempSale> LstTempSales = new List <TempSale>(); foreach (var x in itemsInCart) { TempSale t = new TempSale() { ShoppingCartId = x.Id, BankGetNo = parameters.transId, Date = DateTime.Now, Status = false, Count = x.Count, Price = x.Price, ProductId = x.ProductId, ProductName = x.ProductName }; LstTempSales.Add(t); } db.TempSale.AddRange(LstTempSales); db.SaveChanges(); Response.Redirect("https://pay.ir/payment/test/gateway/" + parameters.transId); } else { //lblresult.text = "کدخطا : " + parmeters.errorcode + "<br />" + "پیغام خطا : " + parmeters.errormessage; } } catch (Exception e) { //lblresult.text = "خطا در اتصال به درگاه پرداخت"; } } else { return(RedirectToAction("Index", "Home")); } return(View()); }
public static T Deserialise <T>(string jsonString, bool addAssemblyTypes = false) where T : class { var jsonParams = new JsonParameters { UseExtensions = addAssemblyTypes, }; return(Json.ToObject <T>(jsonString, jsonParams)); }
public static string Serialise(object obj, bool addAssemblyTypes = false) { var jsonParams = new JsonParameters { UseExtensions = addAssemblyTypes, }; return(Json.ToJson(obj, jsonParams)); }
public HttpContent GetContent() { var parameters = new JsonParameters { Params = Parameters }; string paramRequest = JsonConvert.SerializeObject(parameters); var stringContent = new StringContent(paramRequest); stringContent.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json"); return stringContent; }
public ActionResult VerifyPayment(Models.VerifyResult Vresult) { try { if (!string.IsNullOrEmpty(Request.Form["transId"])) { Payment ob = new Payment(); string result = ob.verify(Request.Form["transId"].ToString()); JsonParameters Parmeters = JsonConvert.DeserializeObject <JsonParameters>(result); string transId = Request.Form["transId"].ToString(); var thiscart = db.tbl_purchasekart.Where(a => a.transId == transId).SingleOrDefault(); if (Parmeters.status == 1) { thiscart.ispaid = true; thiscart.purchasedateend = DateTime.Now; db.SaveChanges(); Vresult.success = true; Vresult.TransActionID += Request.Form["transId"].ToString(); Vresult.Amount += Parmeters.amount.ToString(); Vresult.SuccessMessage = "پرداخت با موفقیت انجام شد."; Cls_SMS.ClsSend sms_Single = new Cls_SMS.ClsSend(); string[] ret1 = new string[2]; string smstext = $"مبلغ {Vresult.Amount} ریال به حساب شما بابت خرید اینترنتی سبد شماره {thiscart.id} توسط کاربر {thiscart.user.username} در تاریخ {shamsi.ToShamsi(DateTime.Now).ToString("yyyy/MM/dd")}به شماره سند : {Vresult.TransActionID} واریز شد."; ret1 = sms_Single.SendSMS_Single(smstext, "09177017801", "100008001", "koohi8", "87g5820", "http://193.104.22.14:2055/CPSMSService/Access", "KOOHI", false); tbl_transaction t = new tbl_transaction(); t.cartid = thiscart.id; t.amount = decimal.Parse(Vresult.Amount); t.sharh = "تسویه حساب کاربری : " + thiscart.user.username; t.transid = Vresult.TransActionID; t.user_id = thiscart.user.id; t.varizdate = DateTime.Now; db.tbl_transaction.Add(t); db.SaveChanges(); } else { Vresult.error = true; Vresult.ErrorMessage = "کدخطا : " + Parmeters.errorCode + "<br />" + "پیغام خطا : " + Parmeters.errorMessage; } } } catch (Exception) { Vresult.error = true; Vresult.ErrorMessage = "متاسفانه پرداخت ناموفق بوده است."; } return(View(Vresult)); }
public ActionResult Payment(int id) { if (User.Identity.IsAuthenticated) { var userId = User.Identity.GetUserId(); var itemsInCart = db.Sales.Where(s => s.UserId == userId && s.Id == id && s.Payed == false).SingleOrDefault(); if (itemsInCart == null) { return(Content("Could not find the auction.")); } // the gateway does not accepts amount less than 1000 Rials decimal totalPrice = 1000 + itemsInCart.Price; try { MyEShop.Utilities.AuctionPayment.Payment ob = new MyEShop.Utilities.AuctionPayment.Payment(); string result = ob.pay(totalPrice.ToString()); JsonParameters parameters = JsonConvert.DeserializeObject <JsonParameters>(result); if (parameters.status == 1) { itemsInCart.BankNo = parameters.transId; db.SaveChanges(); Response.Redirect("https://pay.ir/payment/test/gateway/" + parameters.transId); } else { //lblresult.text = "کدخطا : " + parmeters.errorcode + "<br />" + "پیغام خطا : " + parmeters.errormessage; } } catch (Exception e) { //lblresult.text = "خطا در اتصال به درگاه پرداخت"; } } else { return(RedirectToAction("Index", "Home")); } return(View()); }
public ActionResult PaymentComplete(string transId) { if (User.Identity.IsAuthenticated) { var userId = User.Identity.GetUserId(); if (!string.IsNullOrEmpty(transId)) { Payment ob = new Payment(); string result = ob.verify(transId.ToString()); JsonParameters Parmeters = JsonConvert.DeserializeObject <JsonParameters>(result); if (Parmeters.status == 1) { var itemsInCart = db.Sales.Include("Product").Where(s => s.UserId == userId && s.BankNo == transId && s.Payed == false).ToList(); foreach (var item in itemsInCart) { item.Payed = true; item.TransId = Convert.ToInt32(transId); } db.SaveChanges(); var lstId = new List <string>(); foreach (var item in itemsInCart) { lstId.Add(item.Product.UserId); } var bills = db.Bills.Where(b => lstId.Contains(b.UserId)).ToList(); var userBillId = bills.Select(b => b.UserId).ToList(); foreach (var v in itemsInCart) { Message messageToSeller = new Message() { Date = DateTime.Now, IsRead = false, Text = "You sold auction item " + v.Product.Name + " , Price: " + v.Price, Title = "Auction Sold", UserRecId = v.Product.UserId }; db.Messages.Add(messageToSeller); if (userBillId.Contains(v.Product.UserId)) { var currentBill = db.Bills.Where(b => b.UserId == v.Product.UserId).SingleOrDefault(); currentBill.LastRec = Convert.ToInt32(v.Count * v.Price); currentBill.TotalRec = currentBill.TotalRec + Convert.ToInt32(v.Count * v.Price); currentBill.TimeOfLastRec = DateTime.Now; db.SaveChanges(); } else { Bill bill = new Bill() { LastRec = Convert.ToInt32(v.Count * v.Price), TotalRec = Convert.ToInt32(v.Count * v.Price), TimeOfLastRec = DateTime.Now, PayMe = false, PayMeAmount = 0, UserId = v.Product.UserId, User = v.Product.User }; db.Bills.Add(bill); } } db.SaveChanges(); return(RedirectToAction("GetSalesItemByTrasnId", "ShoppingCarts", new { tId = transId, price = Parmeters.amount.ToString() })); } else { return(Content("error")); } } } return(RedirectToAction("Index", "Manage")); }
public String PaymentAction(int purchasecartid = 0) { try { transAction Model = new transAction(); Model.factorNumber = purchasecartid.ToString(); // تعیین مقدار قابل پرداخت var cartlist = db.tbl_purchasekartitemlist.Where(a => a.perchasekart_id == purchasecartid); decimal totalprice = 0, totalweight = 0, totalcosttransportation = 0, discount = 0; string totalpricestr, totalweightstr, totalcosttransportationstr, discountstr; foreach (var item in cartlist) { totalprice = totalprice + (decimal)(item.number * (item.product_.lastcellcost.HasValue == true ? item.product_.lastcellcost.Value : 0)); totalweight = totalweight + (decimal)(item.number * (item.product_.weight.HasValue == true ? item.product_.weight.Value : 0)); } totalpricestr = string.Format("{0:#,##0.##}", totalprice) + " ریال"; if (cartlist.FirstOrDefault().perchasekart_.discount_id != null) { discount = Math.Floor(cartlist.FirstOrDefault().perchasekart_.discount_.percentage.Value *totalprice / 100); discountstr = string.Format("{0:#,##0.##}", discount) + " ریال"; } else { discount = 0; discountstr = string.Format("{0:#,##0.##}", discount) + " ریال"; } if (db.tbl_transportationcost.Where(a => a.cart_id == purchasecartid).Count() > 0) { totalcosttransportation = db.tbl_transportationcost.Where(a => a.cart_id == purchasecartid).Sum(a => a.totaltcost.Value); totalcosttransportationstr = string.Format("{0:#,##0.##}", totalcosttransportation) + " ریال"; } else { totalcosttransportation = 0; totalcosttransportationstr = string.Format("{0:#,##0.##}", totalcosttransportation) + " ریال"; } decimal payableprice = 0; string payablepricestr = ""; payableprice = totalprice + totalcosttransportation - discount; payablepricestr = string.Format("{0:#,##0.##}", payableprice) + " ریال"; // Model.amount = payableprice.ToString(); Model.factorNumber = cartlist.FirstOrDefault().perchasekart_.id.ToString(); // Payment ob = new Payment(); string result = ob.pay(Model.amount); JsonParameters Parmeters = JsonConvert.DeserializeObject <JsonParameters>(result); if (Parmeters.status == 1) { var thiscart = db.tbl_purchasekart.Where(a => a.id == purchasecartid).SingleOrDefault(); thiscart.transId = Parmeters.transId; db.SaveChanges(); Response.Redirect("https://pay.ir/payment/gateway/" + Parmeters.transId); } else { return("کدخطا : " + Parmeters.errorCode + "<br />" + "پیغام خطا : " + Parmeters.errorMessage); } return(""); } catch (Exception exp) { return("خطا در اتصال به درگاه پرداخت" + exp.Message); } }
public JsonSerializer(JsonParameters param) { jsonParameters = param; }
public ActionResult PaymentComplete(string transId) { if (User.Identity.IsAuthenticated) { var userId = User.Identity.GetUserId(); if (!string.IsNullOrEmpty(transId)) { Payment ob = new Payment(); string result = ob.verify(transId.ToString()); JsonParameters Parmeters = JsonConvert.DeserializeObject <JsonParameters>(result); if (Parmeters.status == 1) { var tmpSales = db.TempSale.Include("Product").Where(t => t.BankGetNo == transId).ToList(); foreach (var i in tmpSales) { i.Status = true; db.TempSale.Attach(i); db.Entry(i).State = EntityState.Modified; } db.SaveChanges(); List <Sale> LstSale = new List <Sale>(); foreach (var j in tmpSales) { Sale s = new Sale() { TrackingCode = 0, Count = j.Count, Date = DateTime.Now, BankNo = "", Payed = true, Price = j.Price, ProductId = j.ProductId, StatusId = SalesStatus.OnHold, UserId = userId, Product = j.Product, TransId = Convert.ToInt32(transId) }; LstSale.Add(s); } // find Id of sellers var ids = new List <string>(); foreach (var o in tmpSales) { ids.Add(o.Product.UserId); } var bills = db.Bills.Where(b => ids.Contains(b.UserId)).ToList(); var userBillId = bills.Select(b => b.UserId).ToList(); foreach (var v in LstSale) { Message messageToSeller = new Message() { Date = DateTime.Now, IsRead = false, Text = "You Sold item " + v.Product.Name + " , Price: " + v.Price, Title = "Item Sold", UserRecId = v.Product.UserId }; db.Messages.Add(messageToSeller); if (userBillId.Contains(v.Product.UserId)) { var currentBill = db.Bills.Where(b => b.UserId == v.Product.UserId).SingleOrDefault(); currentBill.LastRec = Convert.ToInt32(v.Count * v.Price); currentBill.TotalRec = currentBill.TotalRec + Convert.ToInt32(v.Count * v.Price); currentBill.TimeOfLastRec = DateTime.Now; db.SaveChanges(); } else { Bill bill = new Bill() { LastRec = Convert.ToInt32(v.Count * v.Price), TotalRec = Convert.ToInt32(v.Count * v.Price), TimeOfLastRec = DateTime.Now, PayMe = false, PayMeAmount = 0, UserId = v.Product.UserId, User = v.Product.User }; db.Bills.Add(bill); } } db.Sales.AddRange(LstSale); db.SaveChanges(); List <ShoppingCart> tmpShop = new List <ShoppingCart>(); foreach (var n in tmpSales) { db.ShoppingCart.RemoveRange(db.ShoppingCart.Where(sh => sh.Id == n.ShoppingCartId)); db.TempSale.Remove(n); } db.SaveChanges(); return(RedirectToAction("GetSalesItemByTrasnId", new { tId = transId, price = Parmeters.amount.ToString() })); } else { return(Content("error")); } } } return(RedirectToAction("Index", "Home")); }