سوالات متداول پرداخت درونبرنامهای مایکت
تفاوت محصولات مصرفی (Consumable) و غیرمصرفی (Non-Consumable) چیست؟
محصولات inapp از نظر منطق خرید به دو دسته تقسیم میشوند:
- محصولات غیرمصرفی (Non-Consumable): کاربر این محصولات را یکبار میخرد و برا ی همیشه مالک آنها میماند؛ مانند حذف تبلیغات، نسخه ویژه یا بازکردن مراحل قفلشده. این محصولات را نباید مصرف (
Consume) کنید. - محصولات مصرفی (Consumable): کاربر میتواند این محصولات را چند بار بخرد؛ مانند سکه، بنزین یا اعتبار. پس از خرید موفق، محصول را مصرف کنید و پس از دریافت پاسخ موفق مصرف، آن را به کاربر تحویل دهید تا امکان خرید دوباره فراهم شود.
آیا خرید اشتراک (Subscription) و تمدید خودکار در مایکت پشتیبانی میشود؟
خیر. در حال حاضر پرداخت درونبرنامهای مایکت (ir.mservices.market) از خرید اشتراک (subs) و تمدید خودکار پشتیبانی نمیکند. برای ارائه اشتراکهای زماندار، مانند اشتراک یکماهه یا سهماهه، محصول را بهصورت مصرفی (inapp) تعریف کنید، پس از هر خرید آن را مصرف کنید و تاریخ انقضای اشتراک را در سرور خود مدیریت کنید.
چرا باید در ابتدای اجرای برنامه خریدهای کاربر را استعلام کنیم؟
استعلام خریدها در شروع برنامه به دو دلیل مهم است:
۱. بازیابی محصولات غیرمصرفی: اگر کاربر برنامه را دوباره نصب کند یا در دستگاه دیگری وارد حساب خود شود، استعلام به شما امکان میدهد محصولات غیرمصرفی خریداریشده، مانند نسخه ویژه، را بازیابی و فعال کنید.
۲. بازیابی خریدهای مصرفی ناتمام (Crash Recovery): ممکن است کاربر پرداخت را انجام داده باشد، اما پیش از تحویل محصول یا مصرف خرید، برنامه بسته یا اینترنت قطع شده باشد. استعلام خریدها کمک میکند این خریدهای ناتمام را شناسایی و تکمیل کنید.\
بهترین زمان برای تحویل محصول مصرفی به کاربر چه زمانی است؟
ابتدا درخواست مصرف (Consume) را ارسال کنید و فقط پس از دریافت پاسخ موفقیتآمیز مصرف، محصولی مانند سکه یا بنزین را به موجودی کاربر اضافه و ذخیره کنید. این کار از تحویل چندباره محصول برای یک خرید، در اثر خطا یا قطع ارتباط، جلوگیری میکند.
آیا تغییر حروف کوچک و بزرگ packageName میتواند پرداخت را مختل کند؟
بله. نام بسته (packageName یا applicationId) به حروف کوچک و بزرگ حساس است. نام بسته تنظیمشده در پروژه باید دقیقاً با نام بسته ثبتشده در پنل توسعهدهندگان مایکت مطابقت داشته باشد؛ در غیر این صورت اتصال به سرویس پرداخت یا شناسایی محصولات ممکن است با خطا مواجه شود.
کلید عمومی (Public Key / RSA Key) چیست و چگونه باید از آن نگهداری کرد؟
کلید عمومی، رشتهای مخصوص هر برنامه است که در بخش پرداخت درونبرنامهای پنل توسعهدهندگان مایکت قرار دارد و برای بررسی امضای دیجیتال خریدها استفاده میشود. کلید عمومی، برخلاف کلید خصوصی، راز محسوب نمیشود؛ اما باید کلید درستِ همان برنامه را از پنل دریافت کنید و از جایگزینی آن با مقدار نامعتبر جلوگیری کنید. برای امنیت بیشتر، اعتبارسنجی امضای خرید را ترجیحاً در سرور خود انجام دهید. مبهمسازی یا بازسازی کلید در زمان اجرا ممکن است استخراج آن را دشوارتر کند، اما بهتنهایی امنیت پرداخت را تضمین نمیکند.