نمایش نتایج 1 تا 2 از 2

نام تاپیک: فرایند خرید کاربرثبتنام کرده و غیر ثبتنامی

  1. #1

    فرایند خرید کاربرثبتنام کرده و غیر ثبتنامی

    سلام دوستان
    من برای خرید از فروشگاه اینترنتی در کدهام دو حالت در نظر گرفتم.یکی اینکه کاربر لاگین نکرده وثبتنام هم نکرده و فقط اومده در سایت خرید کنه که کدها بصورت زیر هست:
     [HttpPost]
    public ActionResult Buy(Factor factor)
    {
    if (ModelState.IsValid)
    {
    FactorRepository blFactor = new FactorRepository();
    FactorItemRepository blFactorItem = new FactorItemRepository();
    ProductRepository blProduct = new ProductRepository();
    List<BasketViewModel> listBasket = new List<BasketViewModel>();
    List<HttpCookie> lst = new List<HttpCookie>();
    for (int i = Request.Cookies.Count - 1; i >= 0; i--)
    {
    if (lst.Where(p => p.Name == Request.Cookies[i].Name).Any() == false)
    lst.Add(Request.Cookies[i]);
    }
    foreach (var item in lst.Where(p => p.Name.StartsWith("Cart_")))
    {
    listBasket.Add(new BasketViewModel { Product = blProduct.Find(Convert.ToInt32(item.Name.Substring (5))), Count = Convert.ToInt32(item.Value) });
    }
    decimal price = 0;
    foreach (var item in listBasket)
    {
    price += Convert.ToDecimal(item.Count * item.Product.Price);
    }
    factor.BuyDate = DateTime.Now;
    factor.SumPrice = price;
    factor.Description = "خرید توسط کاربر " + factor.Name + " در تاریخ " + DateTime.Now.ToPersianDate().ToString() + " به مبلغ" + factor.SumPrice.ToPrice() + " تومان انجام شد";
    if (Session["UserId"] != null)
    {
    factor.UserId = Convert.ToInt32(Session["UserId"]);
    }
    factor.IsFinish = false;

    if (blFactor.Add(factor))
    {
    int factorId = blFactor.GetLastIdentity();
    foreach (var item in listBasket)
    {
    blFactorItem.Add(new FactorItem() { FactorId = factorId, ProductId = item.Product.Id, Qty = Convert.ToByte(item.Count) });
    }
    // redirect to ...
    var zarinpal = new ZarinPal.PaymentGatewayImplementationServicePortTy peClient();
    string result = "";
    int code = zarinpal.PaymentRequest("Merchant Id", Convert.ToInt32(factor.SumPrice), factor.Description, factor.Email, factor.Mobile, "http://" + Request.Url.Authority + "/Home/Verify?Factor=" + factorId.ToString().Encrypt().UrlEncode(), out result);
    if (code == 100)
    {
    return Redirect("https://www.zarinpal.com/pg/StartPay/" + result);
    }
    else
    {
    ViewBag.Message = "خطا هنگام اتصال به درگاه بانکی";
    }
    }
    else
    {
    ViewBag.Message = "اطلاعات شما ثبت نشد";
    }
    }
    else
    {
    ViewBag.Message = "اطلاعات خود را بدرستی وارد کنید";
    }
    return View();
    }



    دوتا تیبل دارم بنام فاکتور و فاکتورآیتم.
    در تیبل فاکتور این ایتمها رو ذخیره میکنم:
    تاریخ خرید
    کدرهگیری
    نام خریدارثبتنام نکرده
    ادرسش
    موبایلش
    و در تیبل فاکتور آیتم هم اینا رو دارم
    کد محصول
    قیمت محصول
    کد فاکتور
    حالا میخام اگر کاربری قبلن ثبتنام کرده و الان لاگین کرده دیگه صفحه بالا رو نبینه و فاکتور براش صادر بشه و مستقیم به درگاه پرداخت متصل بشه.برای اینکار باید یه اکشن جدا بسازم؟
    کلا تو این فرایند موندم ممنون میشم راهنمایی کنید.

  2. #2

    نقل قول: فرایند خرید کاربرثبتنام کرده و غیر ثبتنامی

    سلام
    کلا وقتی میخوای چک کنی که یه اکشن رو فقط کاربری که لاگین کرده ببینه از اتریبیوت [Authorize] استفاده کن
    و اگه میخوای ببنی که یه کاربری لاگین کرده هم از IsAuthorize استفاده کن و داخل شرط مدیریت کن کد هات رو

تاپیک های مشابه

  1. پاسخ: 1
    آخرین پست: یک شنبه 25 خرداد 1393, 08:35 صبح
  2. پاسخ: 1
    آخرین پست: جمعه 06 اردیبهشت 1392, 19:40 عصر
  3. ایجاد فرم خرید غیر مستقیم
    نوشته شده توسط masterphp در بخش PHP
    پاسخ: 5
    آخرین پست: جمعه 17 آذر 1391, 09:02 صبح
  4. سوال: ليست خريد با توجه به يه جدولي به غير از جدول اصلي
    نوشته شده توسط gilas1368 در بخش C#‎‎
    پاسخ: 1
    آخرین پست: یک شنبه 06 شهریور 1390, 12:58 عصر
  5. تكميل فرايند خريد اينترنتي بانك سامان
    نوشته شده توسط bps20590 در بخش PHP
    پاسخ: 4
    آخرین پست: پنج شنبه 23 مهر 1388, 18:05 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •