یونیتی (Unity) با Gradle

قبل از شروع، توصیه می‌شود برای آشنایی با مفاهیم اصلی، این نوشته را بخوانید تا پیاده‌سازی برای شما راحت‌تر شود.

برای دریافت آخرین نسخه پلاگین پرداخت درون برنامه‌ای مایکت در Unity با gradle اینجا کلیک کنید.

راه‌اندازی

برای راه‌اندازی کافی است که فایل‌های این پروژه را با استفاده از یونیتی که قابلیت build automation با ابزار gradle را دارد، باز کنید.

معرفی توابع

توابع موجود در کلاس MyketIAB

public static void init(string publicKey)

قبل از این که سعی کنید از هر یک از توابع این کتابخانه استفاده کنید باید این تابع را یک بار فراخوانی کنید. ورودی این تابع کلید رمز عمومی برنامه شماست که باید از پنل توسعه‌دهندگان مایکت آن را دریافت کنید. در صورت موفقیت رخداد billingSupportedEvent فراخوانی می‌شود و در صورت عدم موفقیت رخداد billingNotSupportedEvent فراخوانی خواهد شد. دقت کنید با توجه به اینکه بعد از صدا زدن تابع init برنامه شما تلاش می‌کند به سرویس پرداخت درون‌برنامه‌ای مایکت متصل شود، می‌باید آخرین نسخه مایکت روی دستگاهی که درحال انجام تست هستید نصب شده باشد.

public static void enableLogging(bool shouldEnable)

این تابع لاگ‌های فایل‌های کمکی را فعال می‌کند. دقت کنید که مقدارshouldEnable در حالت Release برابر با False باشد.

public static void unbindService()

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

public static void queryInventory(string[] skus)

برای گرفتن اطلاعات محصولاتی که در پنل پرداخت درون‌برنامه‌ای تعریف کرده‌اید مثل قیمت، عنوان و … باید از این تابع استفاده کنید. همچنین لیست تمام محصولات خریداری شده‌ای که هنوز مصرف نشده‌اند نیز توسط این تابع برگردانده می‌شود (محصولات درون Inventory). این تابع در ورودی، لیستی از IDهای محصولات شما را دریافت می‌کند.

توجه کنید که برای جلوگیری از مشکلات احتمالی پرداخت، نیاز است در شروع برنامه، این تابع را فراخوانی کنید و در صورتی که محصولات شما مصرف‌شدنی است و محصولی دریافت کردید که مصرف نشده بود، آن را مصرف کنید و به کاربر خود تحویل دهید. برای محصولات مصرف‌نشدنی هم که لازم است با هر بار باز شدن برنامه این تابع را فراخوانی کنید تا مطلع شوید که آیا کاربر شما یکی از محصولات شما را خریداری کرده است یا خیر.
public static void querySkuDetails(string[] skus)

برای گرفتن اطلاعات محصولاتی که در پنل پرداخت درون‌برنامه‌ای تعریف کرده‌اید مثل قیمت، عنوان و … باید از این تابع استفاده کنید.

public static void purchaseProduct(string sku)public static void purchaseProduct(string sku, string developerPayload)

برای شروع فرایند خرید یک  محصول با نام sku باید از این تابع استفاده کنید. بعد از تلاش برای خرید دو رخداد فراخوانی خواهد شد یکی purchaseSucceededEvent است که در زمان‌های زیر فراخوانی می‌شود:

۱. زمانی که خرید موفقیت‌آمیز بود.

۲. زمانی که تلاش می‌کنید محصولی که قبلا خریده‌اید ولی مصرف نکرده‌اید را دوباره بخرید.

و دیگری رخداد purchaseFailedEvent است که در صورت ناموفق بودن خرید، فراخوانی خواهد شد.

خریدهایی که انجام می‌شوند به داخل Inventory خواهند رفت که اگر محصول مصرفی باشد باید بعد از موفقیت فرآیند خرید، آن را با استفاده از تابع consumeProduct مصرف کنید.

public static void consumeProduct(string sku)
public static void consumeProducts(string[] skus)

برای مصرف محصول خریداری شده باید از این تابع استفاده کنید. بعد از این که فرآیند مصرف به درستی انجام شد محصول از Inventory پاک می‌شود و شما اجازه خواهید داشت تا بار دیگر همان محصول را بخرید.

معرفی رخدادها

رخدادها از طریق کلاس MyketIABEventManager قابل دسترس هستند.

public static event Action billingSupportedEvent;

زمانی که پرداخت درون‌برنامه‌ای روی دستگاه پشتیبانی شود، فراخوانی می‌شود.

public static event Action<string> billingNotSupportedEvent;

بعد از فراخوانی تابع init اگر خرید درون‌برنامه‌ای ممکن نباشد، این رخداد فراخوانی می‌شود.

public static event Action<List<MyketPurchase>, List<MyketSkuInfo>> queryInventorySucceededEvent;

در صورتی که فراخوانی تابع queryInventory موفقیت‌آمیز باشد این رخداد فراخوانی می‌شود.

public static event Action<string> queryInventoryFailedEvent;

زمانی که تلاش برای بازیابی اطلاعات محصولات و خرید‌ها ناموفق باشد، فراخوانی می‌شود.

public static event Action<MyketPurchase> purchaseSucceededEvent;

زمانی که خرید موفقیت‌آمیز باشد، فراخوانی می‌شود.

public static event Action<string> purchaseFailedEvent;

زمانی که خرید موفقیت آمیز نباشد، فراخوانی می‌شود.

public static event Action<MyketPurchase> consumePurchaseSucceededEvent;

اگر تلاش برای مصرف یک محصول خریداری شده موفق باشد، فراخوانی می‌شود.

public static event Action<string> consumePurchaseFailedEvent;

اگر تلاش برای مصرف یک محصول خریداری شده ناموفق باشد، فراخوانی می‌شود.

Was this article helpful?
Dislike 0
قبلی: جاوا (Java)
بعدی: یونیتی (Unity)