مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

salehi_so

عضویت از 1394/08/04

کمک کنید

  • سه شنبه 3 آذر 1394
  • 23:24
تشکر میکنم

من با استفاده از پی لاین عملیات پرداخت را انجام میدهم و بعد از بازگشت از صفحه بانک قصد دارم اطلاعات مربوط به کالای خریداری شده را که در سبد خرید بود در جدول  order ذخیره کنم ،سبد خرید را نیز باپروفایل ساخته ام اما وقتی به صفحه سایت باز میگردد گویا اطلاعات را از سبد خرید نمی خواند و عملیات درج انجام نمی شود این کد به صورت لوکال مشکلی ندارد و ذخیره انجام می شود اما موقع پرداخت آن لاین اطلاعات در جدول order ذخیره نمی شود.خواهش میکنم کمکم کنید یا اگر امکان دارد بفرمایید چطور باید اطلاعات جزییات خرید را بعد از پزداخت ذخیره کنم مثل id کاربری که محصول را خریداری کرده.یا جزییات محصول خریداری شده.

 try
        {
            if (Request.Cookies["gitarsite"] != null)
            {
                string username = Request.Cookies["gitarsite"].Values["username"];
                string id = Request.Cookies["gitarsite"].Values["id"];
                string role_id = Request.Cookies["gitarsite"].Values["role_id"];
                Session["role_id"] = role_id;
                Session["id"] = id;
                Session["username"] = username;

            }

            if (Request.Form["trans_id"] != null && Request.Form["id_get"] != null)
               
            {
                PayLine GetPayline = new PayLine();
                string trans_id = Request.Form["trans_id"];

                string id_get = Request.Form["id_get"];

                string url ="http://payline.ir/payment/gateway-result-second";

                string result = GetPayline.Get(url, "apicode", trans_id, id_get);
                if (result != "-1" && result != "-2" && result != "-3" && result != "-4")
                {
                    
                    string ret = trans_id;
                    ShoppingCart cart = ((ShoppingCart)HttpContext.Current.Profile["Cart"]);
                    MusicDevice_PayOnLine objpay = new MusicDevice_PayOnLine();
                    MusicDevice_Device objprod = new MusicDevice_Device();
                    DataTable dt = new DataTable();

                    try
                    {
                        string timedate = Convert.ToString(DateTime.Now.TimeOfDay);
                        string date = BijanComponents.ShamsiDate.GetShamsiDate(DateTime.Now.Date);
                        string time1 = Convert.ToString(DateTime.Now);
                        string paramdate = date + " " + timedate;
                        objpay._MusicDevice_PayOnLine_CreatedDate = paramdate;
                        objpay._MusicDevice_PayOnLine_UserId = Convert.ToInt32(Session["id"]);
                        int total = Convert.ToInt32(cart.total);
                        objpay._MusicDevice_PayOnLine_Price = Convert.ToInt32(cart.total);
                        objpay._MusicDevice_PayOnLine_OrderNumber = ret;
                        objpay._MusicDevice_PayOnLine_Transaction = id_get;
                        int id = objpay.Add_In_MusicDevice_PayOnLine(objpay);
                        
                        MusicDevice_Order objorder = new MusicDevice_Order();
                        int countcart = Convert.ToInt32(cart.Items.Count);
                        List<CartItem> listitems = new List<CartItem>();
                        listitems = cart.Items;
                        int[] products = new int[countcart];
                        int[] product_count = new int[countcart];
                        int i = 0;
                        foreach (var value in listitems)
                        {
                            int prod_id = value.product_id;
                            int count_prod = value.product_count;
                            products[i] = prod_id;
                            product_count[i] = count_prod;
                            i++;
                        }

                        for (int j = 0; j < countcart; j++)
                        {
                            objorder._MusicDevice_Order_payid = id;
                            objorder._MusicDevice_Order_productId = Convert.ToInt32(products[j]);
                            objorder._MusicDevice_Order_productcount = product_count[j];
                            objorder.Add_In_MusicDevice_Order(objorder);
                            dt = objprod.GetById_In_MusicDevice_Device(products[j]);
                            int count = Convert.ToInt32(dt.Rows[0]["MusicDevice_Device_Count"]);
                            string name = Convert.ToString(dt.Rows[0]["MusicDevice_Device_Name"]);
                            string descrip = Convert.ToString(dt.Rows[0]["MusicDevice_Device_Description"]);
                            int discount = Convert.ToInt32(dt.Rows[0]["MusicDevice_Device_Discount"]);
                            int price = Convert.ToInt32(dt.Rows[0]["MusicDevice_Device_Price"]);
                            int rating_count = Convert.ToInt32(dt.Rows[0]["MusicDevice_Device_Rating_count"]);
                            int rating = Convert.ToInt32(dt.Rows[0]["MusicDevice_Device_Rating"]);
                            int group = Convert.ToInt32(dt.Rows[0]["MusicDevice_Device_Groupid"]);
                            int type = Convert.ToInt32(dt.Rows[0]["MusicDevice_Device_Typeid"]);
                            int active = Convert.ToInt32(dt.Rows[0]["MusicDevice_Device_Active"]);
                            string image = Convert.ToString(dt.Rows[0]["MusicDevice_Device_Image"]);
                            int typeprod = Convert.ToInt32(dt.Rows[0]["MusicDevice_Device_Type"]);
                            int brand = Convert.ToInt32(dt.Rows[0]["MusicDevice_Device_Brand_Id"]);
                            int width = Convert.ToInt32(dt.Rows[0]["Music_Device_Device_Width_id"]);
                            count = count - product_count[j];

                            objprod._Music_Device_Device_Width_id = width;
                            objprod._MusicDevice_Device_Active = Convert.ToBoolean(active);
                            objprod._MusicDevice_Device_Brand_Id = brand;
                            objprod._MusicDevice_Device_Count = count;
                            objprod._MusicDevice_Device_Description = descrip;
                            objprod._MusicDevice_Device_Discount = discount;
                            objprod._MusicDevice_Device_Groupid = group;
                            objprod._MusicDevice_Device_Image = image;
                            objprod._MusicDevice_Device_Name = name;
                            objprod._MusicDevice_Device_Price = price;
                            objprod._MusicDevice_Device_Rating = rating;
                            objprod._MusicDevice_Device_Rating_count = rating_count;
                            objprod._MusicDevice_Device_Type = typeprod;
                            objprod._MusicDevice_Device_Typeid = type;
                            objprod._MusicDevice_Device_Id = products[j];
                            objprod.Edit_In_MusicDevice_Device(objprod);
                            DataTable saledt = new DataTable();
                            saledt = objprod.Get_By_Id_In_Salest(products[j]);
                            int countsale = Convert.ToInt32(saledt.Rows[j]["Music_Device_Device_salest"]);
                            countsale = countsale + count;
                            objprod.Edit_In_Salest_Poducts(products[j], countsale);
                            lblpay.Text = "پرداخت با موفقیت انجام شد";
                            lblorder.Text = ret;
                            lblpay.ForeColor = Color.Green;
                            lblshenase.Text = "شناسه پرداخت:";
                           
        
                        }
                        cart.Items.Clear();
                    }

                    catch
                    {
                        lblpay.Text = "درج ناموفق";
                        lblpay.ForeColor = Color.Red;
                    }

                }
                else
                {
                    lblpay.Text = "پرداخت ناموفق";
                    lblpay.ForeColor = Color.Red;
                }
            }

        }

        catch
        {
            Response.Write("Not Response");
        }

 

پاسخ های این پرسش

تعداد پاسخ ها : 6 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 4 آذر 1394
  • 10:14

شما باید قبل از ارسال کاربر به بانک اطلاعات را در بانک اطلاعاتی ذخیره کنید

پس از بازگشت درخواست جدیدی هست و سشن قبلی موجود نمی باشد

کاربر سایت

salehi_so

عضویت از 1394/08/04

  • چهارشنبه 4 آذر 1394
  • 10:36

با تشکر از پاسختان

ان گاه شاید بعضی از افراد پرداخت را نهایی نکنند اما اطلاعاتشان در بانک ذخیره شود ،آیا راه حلی دارد؟

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 4 آذر 1394
  • 10:45

بله راه حل ساده ای دارد

یک فیلد با عنوان IsFinaly در نظر بگیرید که در حالت اول False هست

اگر کاربر پرداخت کرد True میشود واگر پرداخت نکرد پس از یک یا دو روز رکورد حذف خواهد شد

کاربر سایت

salehi_so

عضویت از 1394/08/04

  • چهارشنبه 4 آذر 1394
  • 11:04

مسئله این جاست که شماره تراکنش یا کد پیگیری بعد از پرداخت وبازگشت به سایت مبدا ارسال می شود آنگاه آیا نباید یک مقدار مشترک مانند id در هر دو صفحه قبل و بعد پرداخت  موجود باشد تا کد های پیگیری در جای درست خودشان درج شود؟

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 4 آذر 1394
  • 11:06

درسته

شما وقتی فاکتور را در بانک ثبت میکنید یک شماره منحصر داره

همون رو به بانک ارسال کنید و پس از بازگشت از طریق همان شما به فاکتور مربوطه دسترسی دارید

کاربر سایت

salehi_so

عضویت از 1394/08/04

  • چهارشنبه 4 آذر 1394
  • 12:55

بسیار سپاس گزارم.

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)