PDA

View Full Version : استفاده از Session یا Cookie برای ایجاد سبد خرید ؟



sirvan-me
یک شنبه 18 اسفند 1392, 22:00 عصر
سلام به همه ی دوستان خوب برنامه نویس...
من سایت خریدی طراحی کردم که روند کار به این صورت هستش که خریدار بعد از انتخاب کالای مورد نظرش ( بدون ثبت نام ) وارد صفحه ای میشه که موبایل یا ایمیلش رو وارد می کنه و به درگاه وصل میشه ...
تا اینجا اصلا مشکلی نیست... من بعد از کلیک دکمه ی خرید ( اتصال به درگاه ) Session ی برای خریدار ایجاد می کنم... اما بعد از برگشت از صفحه ی درگاه حتی با گذشت حتی 9 ثانیه ! تو صفحه ی نتیجه پرداخت Session موجود نیست !!!!!!
من تو وب کانفیک با استفاده از تگ SessionState زمان Timeout رو بالا بردم اما تغییری نکرد... هاستی که خریداری کردم قابلیت تنظیم مستقیم هم نداره...
می خواستم بدونم مشکل از کجاست؟


سوال دیگم این بود که به نظر اساتید استفاده از Cookie یا Session برای کاری که من گفتم بهتر و ایمن تر و صحیح تره ؟

با سپاس...

arashnaderi
دوشنبه 19 اسفند 1392, 11:21 صبح
سلام
شما نباید حتی المقدور از session برای اینکار استفاده کنید. به نظر من بهتره توی یک جدول موقت اطلاعاتو ذخیره کنید بهمراه orderId. سپس بعد از بازگشت از درگاه! دوباره با یک سلکت اطلاعات خریدارو بدست بیارید

sirvan-me
دوشنبه 19 اسفند 1392, 13:03 عصر
سلام
شما نباید حتی المقدور از session برای اینکار استفاده کنید. به نظر من بهتره توی یک جدول موقت اطلاعاتو ذخیره کنید بهمراه orderId. سپس بعد از بازگشت از درگاه! دوباره با یک سلکت اطلاعات خریدارو بدست بیارید

دوست من اگر من از Session استفاده نکنم بعد از برگشت از درگاه چطور OrderID رو تشخیص بدم و اطلاعات سفارش رو از جدول مربوطه بخونم

arashnaderi
دوشنبه 19 اسفند 1392, 13:13 عصر
خب شما باید همون ID منحصر بفردی که تولید میکنید( من از DateTime.Now.Ticks.ToString استفاده میکنم) و به همراه سایر اطلاعات به وب سرویس ارسال میکنیدو توی جدول درج کنید. موقع بازگشت از بانک، همون ID رو براتون ارسال میکنه که با مقایسه ی اون با مقدار جدول، میشه اطلاعات را واکشی کرد.

farhud
دوشنبه 19 اسفند 1392, 13:26 عصر
شما به صفحه ای که سشن را ایجاد می کنید نباید دو مرتبه برگردید در این صورت سشن دوباره ایجاد می شود.

sirvan-me
دوشنبه 19 اسفند 1392, 16:19 عصر
خب شما باید همون ID منحصر بفردی که تولید میکنید( من از DateTime.Now.Ticks.ToString استفاده میکنم) و به همراه سایر اطلاعات به وب سرویس ارسال میکنیدو توی جدول درج کنید. موقع بازگشت از بانک، همون ID رو براتون ارسال میکنه که با مقایسه ی اون با مقدار جدول، میشه اطلاعات را واکشی کرد.

کدی که من قراره به بانک بدم یه شماره درخواسته اما کدی که اون به من تو صفحه ی نتیجه میده کد رهگیریه... اگه اشتباه می گم شما درستش رو بگید لطفا !!!!!!

arashnaderi
دوشنبه 19 اسفند 1392, 16:35 عصر
خب بانک چندتا کد به شما میده. من با درگاه بانک ملت کار کردم
1) SaleOrderId : که همونی هستش که شما به بانک ارسال کرده بودید و می تونید ازش برای واکشی استفاده کنید
2) SaleReferenceId : کد رهگیری که خودتونم فرمودید
3) ResCode : که فعلا مد نظر ما نیست

sirvan-me
دوشنبه 19 اسفند 1392, 16:58 عصر
خب بانک چندتا کد به شما میده. من با درگاه بانک ملت کار کردم
1) SaleOrderId : که همونی هستش که شما به بانک ارسال کرده بودید و می تونید ازش برای واکشی استفاده کنید
2) SaleReferenceId : کد رهگیری که خودتونم فرمودید
3) ResCode : که فعلا مد نظر ما نیست

مرسی دوست من... :چشمک:
فقط یه سوال ... اون کدی که شما میگی منحصر به فرده و با استفاده از DateTime.Now.Tick به دستش میاری به عنوان چی استفاده می کنی... ؟

arashnaderi
دوشنبه 19 اسفند 1392, 17:41 عصر
خب طبق فرمایشات داکیومنت بانک:لبخند:، گفتن باید SaleOrderId منحصر بفرد باشه وگرنه تراکنش موفقیت آمیز نیست( فکر کنم همین بود اگه یادم نرفته باشه)
بهمین خاطر من از اون دستور برای تولید اون عدد منحصر بفرده استفاده کردم چون تقریبا ممکن نیست تکراری برگردونه.

i.RB92
سه شنبه 20 اسفند 1392, 11:21 صبح
شما یه ResNumber هم باید به بانک بفرستی دیگه، کد فاکتور یا هر چیزه دیگه ای که برای رهگیری لازمه رو باید تو این فیلد بفرستی سمت بانک. وقتی برمیگردی هم بانک اونو بهت برمیگردونه میتونی بخونی کارتو راه بندازی.