تالار گفتمان nCIS.ir

نسخه‌ی کامل: فروش اکانت مدت دار برای دانلود فایل
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
تو پروژه ای که دارم مدیر باید اکانت مدت دار تولید کنه تو بخش مدیریت  
کاربر بتونه از بخش فرانت سایت هرکدومو خواست بخره .

1- این اکانتها علاوه بر نام - قیمت - مدت شروع اعتبار و پایان اعتبار چیز دیگه ای هم باید براشون در نظر بگیرم یا خیر
2- و اینکه قبلا با درگاه ملت کار کرده بودم الان باید با زرین پال کار کنم خیلی با هم متفاوت هستن یا خیر؟

  1. بستگی به نیاز شما داره ولی در حداقل نیازها، جدول اکانت‌ها فقط نیاز به مدت اعتبار داره و وقتی کاربر خرید، ازطریق یک جدول واسط، یک ارتباط بین جدول کاربران و جدول اکانت‌ها برقرار کنید و اونجا شروع و پایان اعتبار رو مشخص کنید چون هر کاربر، شروع و پایان خاص خودشو داره و توی جدول اکانت‌ها نباید ثبت بشه.
  2. درگاه‌های واسط معمولاً API راحت‌تری دارن. توی زرین‌پال شما ابتدا باید یه درخواست بزنین و یکسری پارامتر مثل مبلغ و... رو بفرستین و au موقت بگیرین و توی رکورد موقت فاکتور خرید در دیتابیس ثبت کنید. بعد کاربر رو با همون au به صفحه‌ی پرداخت هدایت کنید و موقع برگشت از صفحه‌ی پرداخت، در صفحه‌ای که بعنوان پارامتر callBackUrl مشخص کرده بودین، دوباره با au که توی URL قید شده، رکورد رو پیدا کنید و بعد از فراخوانی verify از درگاه پرداخت، درصورتی که وضعیت موفقیت‌آمیز بود، کد au جدید رو که بعنوان RefID توی پاسخ verify به شما داده میشه ثبت کنید (که میشه کد پیگیری تراکنش بانکی) و وضعیت رکورد رو هم به پرداخت‌شده تغییر بدین.
الان که داشتم سناریو رو تو ذهنم مرور میکردم متوجه شدم که اصلا مدیر نمیتونه تاریخ مشخص کنه برای اکانتها
همونطور که شما فرمودید باید مدت زمان اکانت رو وارد کنه مثلا 60 روز بعد که کاربر میخره تاریخ شروع از لحظه خریدش ایجاد بشه و همینطور تاریخ پایانش که تو اون جدولی که شما فرمودید ذخیره بشه
و یه فیلد هم تو جدول کاربران در نظر بگیرم که وقتی خرید کرد مقدار اون فیلدو به 1 تغییر بدم که بشه کاربر ویژه هر بار هم که لاگین میکنه تاریه روز رو با تاریخ پایان اعتبار اککانتش چک کنم اگر برابر بود یا گذشته بود دوباره اون مقدار رو به 0 تغییر بدم.
لینکهای دانلودم برای کاربرانی فعال باشه که مقدار اون فیلدشون 1 باشه

درسته این سناریو؟
اگه چند مدل اکانت دارین، جدول واسط لازمه با پیداکردن آخرین رکورد در جدول واسط که با ID کاربر مطابقت داره، میتونین نوع اشتراک فعلی اون رو متوجه بشین و مدت اعتبارش رو هم بفهمین.
مدت اعتبار اکانتها و قیمت ها متفاوته که هر کدومو بخرن تا اون مدت میتونن فایل دانلود کنن
خوب پس میتونین با همون جدول واسط کار کنین و چک کنین ببینین رکوردی توی اون جدول هست برای اون اکانت خاص و اون کاربر و اگه بود و اعتبارش نگذشته بود، اجازه‌ی دانلود بدین. میتونین برای سبک‌شدن جدول، یه کپی ازش برای نگهداری log داشته باشین و با Cron Jobs هر چند وقت یکبار اسکریپتی رو اجرا کنید که رکوردهای منقضی‌شده از این جدول واسط رو به جدول log منتقل میکنه تا آمار خریدهای کاربران رو داشته باشین و جدول اصلی فقط رکوردهای فعال داخلش باشه که سبک‌تر باشه و سرعت اجرای برنامه‌تون بالا بره.
تا حالا cron job ننوشتم
ولی اینی که گفتید ایده جالبیه موقع پیاده سازیش حتما کمک میگیرم ازتون
چیز خاصی نداره Cron Jobs. یه اسکریپت PHP مینویسین که این کارها رو وقتی اجرا بشه انجام میده (پیداکردن رکوردهای منقضی‌شده و کپی توی جدول log و حذف از جدول اصلی) و بعد با Cron Jobs این اسکریپت رو در فواصل زمانی مشخص اجرا میکنید (مثلاً یکبار در شبانه‌روز یا هر یک‌ساعت و...)