PDA

View Full Version : نشان دادن شماره سریال پس از پرداخت آنلاین



saeedvbm
جمعه 14 آذر 1393, 18:37 عصر
با سلام خدمت اساتید عزیز
من یک سایت دارم که می خوام بعد از پرداخت آنلاین هزینه ، کد فعالسازی نرم افزار رو به کاربر نشون بده و تکراری هم نباشه ، یعنی از دیتا بیس بخونه و بعد به کاربر نشون بده ، تکراری هم که نباشه .

با تشکر

yeganehha
جمعه 14 آذر 1393, 20:23 عصر
دوست عزیز شما می توانید ابتدا با تاریخ date سال ماه روز ساعت دقیقه ثانیه را پشت سر هم بزارید سپس با تابع راندوم چندین بار از طریق کد اسکی کارکتر خاصی را به رشته اضافه کنید سپس این متن را با یک متن از پیش تعیین شده با هم md5 کنید چندین بار و سپس md5 اخر را به رشته قبل از رمز شده اضافه کنید و به کاربر نشان دهید

برای تعیین هویت لایسنس هم ابتدا کد را دو قسمت کنید که یکی رشته اصلی و دیگر رشته md5 باشد
سپس رشته اصلی را مانند بالا md5 کنید و اگر یکی بود لایسنس درست هست


درضمن شما می توانید کد پیگیری بانک را هم به رشته اضاف کنید

saeedvbm
شنبه 15 آذر 1393, 08:47 صبح
دوست عزیز شما می توانید ابتدا با تاریخ date سال ماه روز ساعت دقیقه ثانیه را پشت سر هم بزارید سپس با تابع راندوم چندین بار از طریق کد اسکی کارکتر خاصی را به رشته اضافه کنید سپس این متن را با یک متن از پیش تعیین شده با هم md5 کنید چندین بار و سپس md5 اخر را به رشته قبل از رمز شده اضافه کنید و به کاربر نشان دهید

برای تعیین هویت لایسنس هم ابتدا کد را دو قسمت کنید که یکی رشته اصلی و دیگر رشته md5 باشد
سپس رشته اصلی را مانند بالا md5 کنید و اگر یکی بود لایسنس درست هست


درضمن شما می توانید کد پیگیری بانک را هم به رشته اضاف کنید


با تشکر از شما دوست عزیز ، ولی منظور من اینکه فرض کن یه جدول مثل جدول زیر داریم من می خوام وقتی که هزینه رو پرداخت کرد و ok شد یه دونه از رکوردها رو از جدول بخونه و به کاربر نمایش بده و اون رکورد رو از جدول حذف کنه که باز همون سریال رو به کس دیگه نده ، مرسی
126333

MMSHFE
شنبه 15 آذر 1393, 10:27 صبح
خوب وقتی وریفای بانک رو انجام دادین و جواب 1 داد، بیاین یک رکورد بخونید و نمایش بدین به کاربر و همون موقع هم پاک کنید. کجاش رو مشکل دارین؟

saeedvbm
شنبه 15 آذر 1393, 15:10 عصر
خوب وقتی وریفای بانک رو انجام دادین و جواب 1 داد، بیاین یک رکورد بخونید و نمایش بدین به کاربر و همون موقع هم پاک کنید. کجاش رو مشکل دارین؟

آها خدا خیرت بده ، کدشو میخوام !

MMSHFE
شنبه 15 آذر 1393, 16:09 عصر
با چه درگاه بانکی کار میکنید؟

saeedvbm
شنبه 15 آذر 1393, 17:04 عصر
با چه درگاه بانکی کار میکنید؟

از درگاه غیر مستقیم ، پی لاین استفاده می کنم .

kartuf
شنبه 15 آذر 1393, 18:17 عصر
خوب حالا نیازی هم به پاک کردن نیست ها شاید کاربر بعد بخواد استفاده کند به نظر بنده شما یک فیلد به دیتابی اضافه کنید و سریال های مصرف نشده رو صفر قرار بدید هر سریال که خریداری شد بجای اینکه پاک کنید مقدار صفر رو به ای دی کاربر تغییر بدید تا بعد مجددا قابل بازیابی باشه برای جلوگیری از افزایش دیتای کاذب هم میتویند یک سیوپر طراحی کنید با این عملکرد که کد هایی که فروخته شده و مربوط به یک ماه کذشته هستند رو پاک کنه

saeedvbm
شنبه 15 آذر 1393, 18:41 عصر
خوب حالا نیازی هم به پاک کردن نیست ها شاید کاربر بعد بخواد استفاده کند به نظر بنده شما یک فیلد به دیتابی اضافه کنید و سریال های مصرف نشده رو صفر قرار بدید هر سریال که خریداری شد بجای اینکه پاک کنید مقدار صفر رو به ای دی کاربر تغییر بدید تا بعد مجددا قابل بازیابی باشه برای جلوگیری از افزایش دیتای کاذب هم میتویند یک سیوپر طراحی کنید با این عملکرد که کد هایی که فروخته شده و مربوط به یک ماه کذشته هستند رو پاک کنه

با تشکر از شما دوست عزیز ، من کدشو میخواستم بدون یه چیزی تو این مایه ها باشه و پاک بشه بهتره چون یکبار مصرف میشه .

MMSHFE
یک شنبه 16 آذر 1393, 09:20 صبح
راستش با پی لاین کار نکردم ولی طبق مستنداتش میتونید راحت کار کنید و روش کار همه شبیه هم هست (با وب سرویس بهش وصل میشین و متدهای مربوطه رو صدا میزنید).

abolfazl-z
یک شنبه 16 آذر 1393, 09:53 صبح
پی لاین یک شماره تراکنش داخلی میده و فکر نکنم شماره تراکنش بانک باشه

http://www.payline.ir/codes/gateway-help.pdf

MMSHFE
یک شنبه 16 آذر 1393, 09:55 صبح
فرقی نمیکنه و شما باید همون رو وریفای کنید و اگه گفت اوکی هست خیالتون راحت باشه که پول تو حساب درگاه واسط شما اومده.

saeedvbm
یک شنبه 16 آذر 1393, 12:50 عصر
فرقی نمیکنه و شما باید همون رو وریفای کنید و اگه گفت اوکی هست خیالتون راحت باشه که پول تو حساب درگاه واسط شما اومده.

کدی رو میخوام که به آخرین رکورد جدول اشاره کنه،

MMSHFE
یک شنبه 16 آذر 1393, 13:01 عصر
SELECT * FROM `table` ORDER BY `id` DESC LIMIT 1
ولی با این روش کار کردن اشتباهه چون ممکنه تو فاصله ای که یک کاربر میره تو صفحه درگاه تا پرداخت رو انجام بده، یکی دیگه هم بیاد سفارش خرید بده. روش اصولی اینه که شما یک جدول orders داشته باشین که داخلش یک id دارین (شماره سفارش داخلی سیستم خودتون) و یک فیلد trans_id که شماره تراکنش درگاه رو بعد از اینکه با request گرفتین، داخلش ذخیره میکنید. اینطوری هروقت جواب از بانک بیاد با کمک trans_id رکورد سفارش رو پیدا میکنید:
SELECT * FROM `orders` WHERE (`trans_id`='{$tid}')
ضمناً میتونید توی جدول شماره سریالها یک فیلد order_id هم داشته باشین که میتونه NULL باشه (یعنی فروش نرفته) و هروقت سفارش با موفقیت پرداخت شد، id سفارش رو توی این فیلد ذخیره کنید تا بعداً هم بتونید به راحتی بفهمین کدوم سریالها مربوط به هر سفارش بوده.