public ActionResult Index(User user, string BtnPrevious, string BtnNext) { if (BtnNext != null) { User userControl = db.Users.FirstOrDefault(x => x.Email == user.Email && x.CreateMethod != UserCreateMethod.NotUserCreate); if (userControl == null) { if (ModelState.IsValid) { NotUserBasketModel getUser = GetUser(); userControl = db.Users.FirstOrDefault(x => x.Email == user.Email && x.Telephone == x.Telephone); if (userControl != null) { user.Id = userControl.Id; } user.CreateMethod = UserCreateMethod.NotUserCreate; user.CreateDateTime = DateTime.Now; getUser.User = user; return(View("NotUserBasketAddress")); //return View("CricketerStatistics"); } } else { ViewBag.ResultType = "danger"; ViewBag.ResultMessage = "Mail Adresiyle Üyelik İşlemi Gerçekleştirilmiş.Giriş Sayfasına Yönelendiriliyorsunuz."; Response.AppendHeader("Refresh", "5;url=http://sakalliticaret.com/Kullanici/Giris"); } } return(View()); }
private NotUserBasketModel GetUser() { if (Session["NotUserBasketModel"] == null) { Session["NotUserBasketModel"] = new NotUserBasketModel(); } return((NotUserBasketModel)Session["NotUserBasketModel"]); }
public ActionResult NotUserBasketAddress() { NotUserBasketModel notUserBasketModel = GetUser(); if (notUserBasketModel.User == null) { return(Redirect("/Anasayfa")); } return(View()); }
public ActionResult NotUserBasketDetail(string BtnPrevious, string BtnNext) { NotUserBasketModel notUserBasketModel = GetUser(); if (BtnPrevious != null) { return(View("NotUserBasketAddress", notUserBasketModel)); } if (BtnNext != null) { User user = notUserBasketModel.User; user.CreateMethod = UserCreateMethod.NotUserCreate; if (user.Id == 0) { db.Users.Add(user); } else { db.Entry(user).State = EntityState.Modified; } UserAddress address = notUserBasketModel.UserAddress; address.UserId = user.Id; db.UserAddresses.Add(address); Basket basket = new Basket(); basket.CreateDateTime = DateTime.Now; basket.CreateUserId = user.Id; basket.BasketKey = notUserBasketModel.BasketClass.BasketKey; basket.StatusId = 1; basket.UserAddressId = address.Id; basket.UserId = user.Id; basket.Quantity = notUserBasketModel.BasketClass.BasketItems.Count; basket.Amount = notUserBasketModel.BasketClass.TotalAmount; db.Baskets.Add(basket); foreach (var item in notUserBasketModel.BasketClass.BasketItems) { OrderProduct orderProduct = new OrderProduct(); orderProduct.UserId = user.Id; orderProduct.BasketId = basket.Id; orderProduct.InTheBasket = true; orderProduct.ProductId = item.Product.Id; orderProduct.Amount = (double)item.Total; orderProduct.Quantity = item.Quantity; orderProduct.CreateDateTime = DateTime.Now; orderProduct.CreateUserId = user.Id; db.OrderProducts.Add(orderProduct); } 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 BasketPaymentResult() { PosEntegration entegration = db.PosEntegrations.Find(2); BasketTransactions basketTransactions = new BasketTransactions(); NotUserBasketModel basketModel = Session["NotUserBasketModel"] as NotUserBasketModel; Basket basket = new Basket(); string merchant_id = entegration.StoreCode; string merchant_key = entegration.UserName; string merchant_salt = entegration.Password; string merchant_oid = Request.Form["merchant_oid"]; string status = Request.Form["status"]; string total_amount = Request.Form["total_amount"]; string hash = Request.Form["hash"]; string installment_count = Request.Form["installment_count"]; string Birlestir = string.Concat(merchant_oid, merchant_salt, status, total_amount); HMACSHA256 hmac = new HMACSHA256(Encoding.UTF8.GetBytes(merchant_key)); byte[] b = hmac.ComputeHash(Encoding.UTF8.GetBytes(Birlestir)); string token = null; token = Convert.ToBase64String(b); //if (hash != token) //{ // Response.Write("PAYTR notification failed: bad hash"); // return; //} if (status == "success") { try { Basket dbBasket = db.Baskets.Include(x => x.User).FirstOrDefault(x => x.BasketKey == merchant_oid); dbBasket.StatusId = 2; db.Entry(dbBasket).State = EntityState.Modified; //basketTransactions.Status = status; //basketTransactions.CreateDateTime = DateTime.Now; //basketTransactions.UserId = dbBasket.UserId; //basketTransactions.BasketKey = dbBasket.BasketKey; //basketTransactions.BasketId = dbBasket.Id; //basketTransactions.Description = "Ödeme İşlemi Başarıyla Gerçekleştirildi."; //basketTransactions.CreateUserId = dbBasket.UserId; //db.BasketTransactionses.Add(basketTransactions); List <OrderProduct> orderProducts = db.OrderProducts.Where(x => x.BasketId == dbBasket.Id).ToList(); foreach (var item in orderProducts) { //ProductOperations productOperations = new ProductOperations(); //productOperations.ProductOperationsCreate(item.ProductId, 3, "Satış No:" + item.Basket.BasketKey + " - Adet:" + item.Quantity, dbBasket.UserId); //Product product = db.Products.FirstOrDefault(x => x.Id == item.ProductId); //product.Stock = product.Stock - item.Quantity; //db.Entry(product).State = EntityState.Modified; item.InTheBasket = false; db.Entry(item).State = EntityState.Modified; } db.SaveChanges(); Session.Remove("NotUserBasketModel"); Session.Remove("AktifSepet"); //SendMail sendMail = new SendMail(); //sendMail.MailSender("Ödemeniz başarıyla tamamlandı", MailSayfasiGet(merchant_oid), dbBasket.User.Email); } catch (Exception e) { SendMail sendMail = new SendMail(); sendMail.MailSender("Ödeme Yapıldı Sepet Kapatılamadı", "Sayfadan gelen hata:<br>" + "Sipariş Numarası:" + merchant_oid + e.InnerException + "<br><br>" + e.Source + "<br><br>" + e.Message, "*****@*****.**"); } Response.Write("OK"); } return(View()); }
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 + ""); } } }