من با استفاده از پی لاین عملیات پرداخت را انجام میدهم و بعد از بازگشت از صفحه بانک قصد دارم اطلاعات مربوط به کالای خریداری شده را که در سبد خرید بود در جدول 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"); }
شما باید قبل از ارسال کاربر به بانک اطلاعات را در بانک اطلاعاتی ذخیره کنید
پس از بازگشت درخواست جدیدی هست و سشن قبلی موجود نمی باشد
با تشکر از پاسختان
ان گاه شاید بعضی از افراد پرداخت را نهایی نکنند اما اطلاعاتشان در بانک ذخیره شود ،آیا راه حلی دارد؟
بله راه حل ساده ای دارد
یک فیلد با عنوان IsFinaly در نظر بگیرید که در حالت اول False هست
اگر کاربر پرداخت کرد True میشود واگر پرداخت نکرد پس از یک یا دو روز رکورد حذف خواهد شد
مسئله این جاست که شماره تراکنش یا کد پیگیری بعد از پرداخت وبازگشت به سایت مبدا ارسال می شود آنگاه آیا نباید یک مقدار مشترک مانند id در هر دو صفحه قبل و بعد پرداخت موجود باشد تا کد های پیگیری در جای درست خودشان درج شود؟
درسته
شما وقتی فاکتور را در بانک ثبت میکنید یک شماره منحصر داره
همون رو به بانک ارسال کنید و پس از بازگشت از طریق همان شما به فاکتور مربوطه دسترسی دارید
بسیار سپاس گزارم.
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)