پلاگین خرید درون‌برنامه‌ای یونیتی

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

راه‌اندازی

برای راه‌اندازی کافیست بسته مربوطه را دانلود و وارد پروژه خود کنید. سپس در فایل  AndroidManifest.xml خود دو تغییر زیر را بدهید:

1.اجازه دسترسی به اینترنت و خرید از مایکت:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="ir.mservices.market.BILLING" />

2.اضافه کردن Activityهای مربوط به پلاگین در قسمت Application

<meta-data android:name="billing.service" android:value="myket.MyketIabService"/>
<activity android:name="com.myket.MyketIABProxyActivity" 
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" />

به یاد داشته باشد که نیازی به اضافه کردن هیچ Prefab یا Script خاصی در پروژه خود ندارید، پلاگین به طور خودکار یک شی با نام MyketIABPlugin می‌سازد که دارای یک فرزند به نام MyketPlugin.IABEventManager است که نباید در طول برنامه پاک یا تغییر نام داده شوند.

معرفی توابع

توابع موجود در کلاس 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
قبلی: اضافه کردن خرید درون‌برنامه‌ای در جاوا
بعدی: پلاگین خرید درون‌برنامه‌ای B4A