public ActionResult SepetItemSil(int id) { BasketClass s = (BasketClass)Session["AktifSepet"]; try { if (_loginState.IsLogin()) { Basket basket = db.Baskets.FirstOrDefault(x => x.BasketKey == s.BasketKey); OrderProduct detays = db.OrderProducts.FirstOrDefault(x => x.ProductId == id && x.BasketId == s.BasketId && x.InTheBasket); if (detays != null) { db.OrderProducts.Remove(detays); OrderProductProperty productProperty = db.OrderProductProperties.FirstOrDefault(x => x.OrderProductId == detays.Id); if (productProperty != null) { db.OrderProductProperties.Remove(productProperty); } } db.SaveChanges(); s = (BasketClass)Session["AktifSepet"]; basket.Amount = s.TotalAmount; db.Entry(basket).State = EntityState.Modified; db.SaveChanges(); } s.BasketItemRemove(id); } catch (Exception e) { s.AllClear(); } return(Redirect("/Sepetim")); }
public ActionResult BasketCompleteAddress(int ID) { BasketClass s = (BasketClass)Session["AktifSepet"]; if (s == null) { return(Redirect("/Anasayfa")); } else { s.AddressId = ID; Basket basket = db.Baskets.FirstOrDefault(x => x.BasketKey == s.BasketKey); s.BasketId = basket.Id; Session["AktifSepet"] = s; if (basket != null) { basket.UserAddressId = ID; db.Entry(basket).State = EntityState.Modified; db.SaveChanges(); } return(Redirect("/Sepet/Tamamla/Odeme")); } return(View()); }
public ActionResult BasketCompletePayment() { BasketClass s = (BasketClass)Session["AktifSepet"]; if (s == null) { } else { } NotUserBasketModel basketModel = Session["NotUserBasketModel"] as NotUserBasketModel; posVoid(); return(View()); }
public ActionResult Index() { NotUserBasketModel notUserBasketModel = new NotUserBasketModel(); notUserBasketModel = GetUser(); BasketClass s = new BasketClass(); s = (BasketClass)Session["AktifSepet"]; notUserBasketModel.BasketClass = s; if (notUserBasketModel.BasketClass == null) { return(Redirect("/Anasayfa")); } return(View()); }
public ActionResult NotUserBasketAddress(UserAddress userAddress, string BtnPrevious, string BtnNext) { NotUserBasketModel notUserBasketModel = GetUser(); if (BtnPrevious != null) { return(View("Index", notUserBasketModel)); } if (BtnNext != null) { BasketClass s = new BasketClass(); s = (BasketClass)Session["AktifSepet"]; userAddress.CreateDateTime = DateTime.Now; notUserBasketModel.UserAddress = userAddress; notUserBasketModel.BasketClass = s; return(View("NotUserBasketDetail", notUserBasketModel)); } return(View()); }
public ActionResult SepetTemizle() { BasketClass s = new BasketClass(); if (_loginState.IsLogin()) { s = (BasketClass)Session["AktifSepet"]; Basket basket = db.Baskets.FirstOrDefault(x => x.BasketKey == s.BasketKey); List <OrderProduct> detays = db.OrderProducts.Where(x => x.BasketId == basket.Id && x.InTheBasket).ToList(); foreach (var item in detays) { db.OrderProducts.Remove(item); db.SaveChanges(); } } s.AllClear(); Session.Remove("AktifSepet"); return(Redirect("/Sepetim")); }
public ActionResult BasketCompleteAddress() { User user = _loginState.IsLoginUser(); BasketClass s = (BasketClass)Session["AktifSepet"]; //GirisSepetControl(); if (s == null && s.Products.Count <= 0) { return(Redirect("/Sepetim")); } if (user == null) { return(Redirect("/Kullanici/Giris")); } var model = db.UserAddresses.Include(u => u.User).Where(x => x.UserId == user.Id).ToList(); //var model = db.UserAddresses.Include(x => x.Users).Where(x => x.UserId == user.Id).ToList(); return(View(model)); }
public ActionResult BasketComplete() { BasketClass s = (BasketClass)Session["AktifSepet"]; if (s != null) { if (s.Products.Count != 0) { if (_loginState.IsLogin()) { foreach (var item in s.Products) { Product product = db.Products.FirstOrDefault(x => x.Id == item.Product.Id); if (product.Stock == 0) { OrderProduct orderProduct = db.OrderProducts.FirstOrDefault( x => x.BasketId == s.BasketId && x.ProductId == item.Product.Id); db.OrderProducts.Remove(orderProduct); s.BasketItemRemove(product.Id); db.OrderProducts.Remove(orderProduct); if (s.Products.Count == 0) { break; } } else if (product != null && product.Stock < item.Quantity) { ViewBag.ResultType = "danger"; ViewBag.ResultMessage = "Eklediğiniz ürün adeti stoklarda bulunmamaktadır. Sepetiniz Düzenlendi."; s.BasketItems.FirstOrDefault(x => x.Product.Id == item.Product.Id).Quantity = product.Stock; Session["AktifSepet"] = s; s = (BasketClass)Session["AktifSepet"]; OrderProduct orderProduct = db.OrderProducts.FirstOrDefault( x => x.BasketId == s.BasketId && x.ProductId == item.Product.Id); orderProduct.Quantity = product.Stock; orderProduct.Amount = (double)(orderProduct.Quantity * product.Price); db.Entry(orderProduct).State = EntityState.Modified; //BasketClass.BasketItem basketItem = new BasketClass.BasketItem(); //basketItem = s.BasketItems.FirstOrDefault(x => x.Product.Id == item.Product.Id); } db.SaveChanges(); } return(Redirect("/Sepet/Tamamla/Adres")); } else { return(Redirect("/Kullanici/Giris/Sepet")); } } else { return(Redirect("Sepetim")); } } return(View()); }
public int Create(int productId, List <int> pList, List <int> pValList) { int basketCount = 0; try { BasketClass.BasketItem basketItem = new BasketClass.BasketItem(); Product product = db.Products.FirstOrDefault(x => x.Id == productId); basketItem.Product = product; basketItem.Quantity = 1; basketItem.Tax = 0; List <PropertyPropertyValues> propertyPropertyValues = new List <PropertyPropertyValues>(); if (pList != null) { for (int i = 0; i < pList.Count; i++) { int pId = pList[i]; int pVal = pValList[i]; PropertyPropertyValues dbpropertyPropertyValues = db.PropertyPropertyValueses.Include(x => x.CategoryProperty).Include(x => x.CategoryPropertyValue).FirstOrDefault(x => x.CategoryPropertyId == pId && x.CategoryPropertyValueId == pVal); propertyPropertyValues.Add(dbpropertyPropertyValues); } } basketItem.PropertyPropertyValueses = propertyPropertyValues; //basketItem.CategoryPropertyList = pList; //basketItem.CategoryPropertyValues = pValList; BasketClass s = new BasketClass(); s.SepeteEkle(basketItem); s = (BasketClass)Session["AktifSepet"]; basketCount = s.Products.Count; if (_loginState.IsLogin()) { int id = _loginState.IsLoginUser().Id; Basket userBasket = db.Baskets.FirstOrDefault(x => x.UserId == id && x.StatusId == 1); OrderProduct orderProduct = db.OrderProducts.FirstOrDefault(x => x.Product.Id == product.Id && x.UserId == id && x.InTheBasket); if (userBasket == null) { //Basket newBasket=new Basket(); //newBasket.UserId = id; //newBasket.StatusId = 1; //newBasket.CreateUserId = id; _functions.GirisSepetControl(); orderProduct = new OrderProduct(); orderProduct.CreateDateTime = DateTime.Now; orderProduct.CreateUserId = _loginState.IsLoginUser().Id; orderProduct.BasketId = s.BasketId; orderProduct.InTheBasket = true; orderProduct.ProductId = product.Id; orderProduct.UserId = _loginState.IsLoginUser().Id; orderProduct.Quantity = s.Products.FirstOrDefault(x => x.Product.Id == productId).Quantity; orderProduct.Amount = (double)s.Products.FirstOrDefault(x => x.Product.Id == product.Id).Total; orderProduct.BasketId = s.BasketId; db.OrderProducts.Add(orderProduct); db.SaveChanges(); } else { if (orderProduct != null) { orderProduct.Amount = (double)s.Products.FirstOrDefault(x => x.Product.Id == product.Id).Total; orderProduct.Quantity = orderProduct.Quantity + 1; db.Entry(orderProduct).State = EntityState.Modified; } else { orderProduct = new OrderProduct(); orderProduct.CreateDateTime = DateTime.Now; orderProduct.CreateUserId = _loginState.IsLoginUser().Id; orderProduct.BasketId = userBasket.Id; orderProduct.InTheBasket = true; orderProduct.ProductId = product.Id; orderProduct.UserId = _loginState.IsLoginUser().Id; orderProduct.Quantity = s.Products.FirstOrDefault(x => x.Product.Id == productId).Quantity; orderProduct.Amount = (double)s.Products.FirstOrDefault(x => x.Product.Id == product.Id).Total; db.OrderProducts.Add(orderProduct); } db.SaveChanges(); } Basket basket = db.Baskets.FirstOrDefault(x => x.BasketKey == s.BasketKey); s = (BasketClass)Session["AktifSepet"]; basket.Amount = s.TotalAmount; db.Entry(basket).State = EntityState.Modified; db.SaveChanges(); } } catch (Exception e) { } return(basketCount); }
private void posVoid() { PosEntegration entegration = db.PosEntegrations.FirstOrDefault(); string merchant_id = entegration.StoreCode; string merchant_key = entegration.UserName; string merchant_salt = entegration.Password; User user = _loginState.IsLoginUser(); NotUserBasketModel basketModel = Session["NotUserBasketModel"] as NotUserBasketModel; // // Tahsil edilecek tutar. 9.99 için 9.99 * 100 = 999 gönderilmelidir. Basket basket = new Basket(); BasketClass s = new BasketClass(); s = (BasketClass)Session["AktifSepet"]; int payment_amountstr = (int)s.TotalAmount * 100; // // Sipariş numarası: Her işlemde benzersiz olmalıdır!! Bu bilgi bildirim sayfanıza yapılacak bildirimde geri gönderilir. basket = db.Baskets.FirstOrDefault(x => x.BasketKey == s.BasketKey); s.BasketId = basket.Id; Session["AktifSepet"] = s; s = (BasketClass)Session["AktifSepet"]; string merchant_oid = s.BasketKey; // // Müşterinizin sitenizde kayıtlı veya form aracılığıyla aldığınız ad ve soyad bilgisi // // Müşterinizin sitenizde kayıtlı veya form aracılığıyla aldığınız adres bilgisi string user_addressstr = ""; if (user == null) { user = basketModel.User; user_addressstr = basketModel.UserAddress.Address; } else { user_addressstr = db.UserAddresses.Find(s.AddressId).Address; } string emailstr = user.Email; string user_namestr = user.Name + " " + user.LastName; // // Müşterinizin sitenizde kayıtlı veya form aracılığıyla aldığınız telefon bilgisi string user_phonestr = user.Telephone; // // Başarılı ödeme sonrası müşterinizin yönlendirileceği sayfa // !!! Bu sayfa siparişi onaylayacağınız sayfa değildir! Yalnızca müşterinizi bilgilendireceğiniz sayfadır! // !!! Siparişi onaylayacağız sayfa "Bildirim URL" sayfasıdır (Bakınız: 2.ADIM Klasörü). string merchant_ok_url = "http://sakalliticaret.com/Sepetim/OdemeTamamlandi"; // // Ödeme sürecinde beklenmedik bir hata oluşması durumunda müşterinizin yönlendirileceği sayfa // !!! Bu sayfa siparişi iptal edeceğiniz sayfa değildir! Yalnızca müşterinizi bilgilendireceğiniz sayfadır! // !!! Siparişi iptal edeceğiniz sayfa "Bildirim URL" sayfasıdır (Bakınız: 2.ADIM Klasörü). string merchant_fail_url = "http://sakalliticaret.com/Sepetim/OdemeHata"; string user_basketstr = ""; // // !!! Eğer bu örnek kodu sunucuda değil local makinanızda çalıştırıyorsanız // buraya dış ip adresinizi (https://www.whatismyip.com/) yazmalısınız. Aksi halde geçersiz paytr_token hatası alırsınız. string user_ip = GetIPAddress(); //string user_ip = "78.186.172.90"; if (user_ip == "" || user_ip == null) { user_ip = Request.ServerVariables["REMOTE_ADDR"]; } // // ÖRNEK $user_basket oluşturma - Ürün adedine göre object'leri çoğaltabilirsiniz //foreach (var item in s.Urunler) //{ //} //object[][] user_basket = { // new object[] {"Örnek ürün 1", "18.00", 1}, // 1. ürün (Ürün Ad - Birim Fiyat - Adet) // new object[] {"Örnek ürün 2", "33.25", 2}, // 2. ürün (Ürün Ad - Birim Fiyat - Adet) // new object[] {"Örnek ürün 3", "45.42", 1}, // 3. ürün (Ürün Ad - Birim Fiyat - Adet) //}; int qArrayCount = s.Products.Count; //if (s.KargoBedeli) qArrayCount++; object[][] user_basket = new object[qArrayCount][]; int i = 0; foreach (var item in s.Products) { string qStokKodu = item.Product.Id.ToString(); decimal qFiyat = Convert.ToDecimal(item.Product.Price); int qAdet = Convert.ToInt32(item.Quantity); user_basket[i] = new object[] { qStokKodu, qFiyat, qAdet }; i++; } //if (s.KargoBedeli) //{ // user_basket[user_basket.Length - 1] = new object[] { 0, 7, 1 }; //} user_basketstr = make_user_basket(user_basket); /* ############################################################################################ */ // İşlem zaman aşımı süresi - dakika cinsinden string timeout_limit = "30"; // // Hata mesajlarının ekrana basılması için entegrasyon ve test sürecinde 1 olarak bırakın. Daha sonra 0 yapabilirsiniz. string debug_on = "0"; // // Mağaza canlı modda iken test işlem yapmak için 1 olarak gönderilebilir. string test_mode = "0"; if (entegration.TestModule) { test_mode = "1"; } else { test_mode = "0"; } // // Taksit yapılmasını istemiyorsanız, sadece tek çekim sunacaksanız 1 yapın string no_installment = "1"; // // Sayfada görüntülenecek taksit adedini sınırlamak istiyorsanız uygun şekilde değiştirin. // Sıfır (0) gönderilmesi durumunda yürürlükteki en fazla izin verilen taksit geçerli olur. string max_installment = "0"; // // Para birimi olarak TL, EUR, USD gönderilebilir. USD ve EUR kullanmak için [email protected] // üzerinden bilgi almanız gerekmektedir. Boş gönderilirse TL geçerli olur. string currency = "TL"; // // Türkçe için tr veya İngilizce için en gönderilebilir. Boş gönderilirse tr geçerli olur. string lang = "tr"; // Gönderilecek veriler oluşturuluyor NameValueCollection data = new NameValueCollection(); data["merchant_id"] = merchant_id; data["user_ip"] = user_ip; data["merchant_oid"] = merchant_oid; data["email"] = emailstr; data["payment_amount"] = payment_amountstr.ToString(); // // Sepet içerği oluşturma fonksiyonu, değiştirilmeden kullanılabilir. JavaScriptSerializer ser = new JavaScriptSerializer(); string user_basket_json = ser.Serialize(user_basket); //string user_basketstr = Convert.ToBase64String(Encoding.UTF8.GetBytes(user_basket_json)); data["user_basket"] = user_basketstr; // // Token oluşturma fonksiyonu, değiştirilmeden kullanılmalıdır. string Birlestir = string.Concat(merchant_id, user_ip, merchant_oid, emailstr, payment_amountstr.ToString(), user_basketstr, no_installment, max_installment, currency, test_mode, merchant_salt); HMACSHA256 hmac = new HMACSHA256(Encoding.UTF8.GetBytes(merchant_key)); byte[] b = hmac.ComputeHash(Encoding.UTF8.GetBytes(Birlestir)); data["paytr_token"] = Convert.ToBase64String(b); // data["debug_on"] = debug_on; data["test_mode"] = test_mode; data["no_installment"] = no_installment; data["max_installment"] = max_installment; data["user_name"] = user_namestr; data["user_address"] = user_addressstr; data["user_phone"] = user_phonestr; data["merchant_ok_url"] = merchant_ok_url; data["merchant_fail_url"] = merchant_fail_url; data["timeout_limit"] = timeout_limit; data["currency"] = currency; data["lang"] = lang; string qToken = null; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; using (WebClient client = new WebClient()) { client.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); byte[] result = client.UploadValues("https://www.paytr.com/odeme/api/get-token", "POST", data); string ResultAuthTicket = Encoding.UTF8.GetString(result); dynamic json = JValue.Parse(ResultAuthTicket); qToken = json.token; string durum = json.status; if (json.status == "success") { Session["qToken"] = qToken; ViewBag.Src = "https://www.paytr.com/odeme/guvenli/" + json.token + ""; } else { Response.Write("PAYTR IFRAME failed. reason:" + json.reason + ""); } } }