راهنمای پرداخت درونبرنامهای مایکت در Unreal Engine
برای دریافت پلاگین و مشاهده پروژه نمونه پرداخت درونبرنامهای مایکت در آنریل انجین، به مخزن رسمی در GitHub مراجعه کنید.
پلاگین Myket In-App Billing SDK ابزار رسمی برا ی پیادهسازی پرداخت درونبرنامهای (IAB) مایکت در بازیها و برنامههای اندرویدی توسعهیافته با موتور بازیسازی Unreal Engine (سازگار با نسخه ۵.۰ و نسخههای جدیدتر) است. این پلاگین از طریق C++ (زیرسیستم GameInstanceSubsystem) و نودهای Blueprint در دسترس است.
قابلیتها
- پشتیبانی از خریدهای درونبرنامهای: امکان خرید محصولات مصرفشدنی (مانند سکه، اعتبار) و محصولات غیرمصرفی (مانند نسخه ویژه).
- استعلام موجودی و کاتالوگ: دریافت مشخصات محصولات (عنوان، قیمت محلی، توضیحات) و خریدهای فعال کاربر.
- مصرف تکی و گروهی: متدهای مصرف تکی (
ConsumePurchase/ConsumeProduct) و مصرف همزمان چند محصول. - پشتیبانی از C++ و Blueprint: دسترسی از طریق زیرسیستم
UMyketBillingSubsystemو نودهای Myket | Billing. - رابط کاربری تست رویه ای (UMG/Slate): شامل ویجت تست آماده برای بررسی عملکرد پرداخت.
- کنسول لاگ روی صفحه: نمایش لاگ رویدادها روی صفحه دستگاه برای تسهیل خطایابی.
- حالت شبیهسازی در ادیتور (PIE): امکان تست منطق Blueprint و رابط کاربری در محیط Play-in-Editor بدون اختلال یا نیاز به دستگاه فیزیکی.
پیشنیازها
۱. حساب کاربری در پنل توسعهدهندگان مایکت.
۲. ثبت برنامه در پنل مایکت و رزرو شناسه بسته (Package Name یا Application ID).
۳. دریافت کلید عمومی RSA پرداخت برنامه از پنل توسعهدهندگان مایکت.
۴. تعریف محصولات درونبرنامهای (SKU) در پنل برنامه.
۵. ابزارهای ساخت اندروید در آنریل انجین (Android SDK، NDK و Java JDK 17).
۶. دستگاه اندرویدی دارای آخرین نسخه برنامه مایکت نصبشده و حساب کاربری فعال جهت تست پرداخت.
ساختار پوشههای پروژه نمونه
Unreal/
├── Config/ # تنظیمات پروژه آنریل
│ ├── DefaultEngine.ini # تنظیمات GameMode و بستهبندی اندروید
│ ├── DefaultGame.ini # متادیتای پروژه
│ └── DefaultInput.ini # تنظیمات ورودی لمسی / ماوس
├── Plugins/
│ └── MyketBilling/ # پلاگین مستقل پرداخت مایکت
│ ├── Java/ # پل ارتباطی جاوا (MyketBillingBridge.java)
│ ├── Source/MyketBilling/ # کدهای C++ سابسیستم، پل JNI و رابط کاربری تست
│ ├── MyketBilling_UPL.xml # تنظیمات مانیفست و گریدل با زبان UPL
│ ├── MyketBilling.Build.cs # قوانین بیلد ماژول
│ ├── MyketBilling.uplugin # شناسه پلاگین
│ └── README.md # راهنمای فنی اختصاصی پلاگین
├── Source/
│ ├── MyketSample/ # ماژول بازی پروژه نمونه
│ │ ├── MyketSampleGameMode.h/.cpp # اجرای خودکار UI تست در ابتدای بازی
│ │ ├── MyketSampleModule.h/.cpp
│ │ └── MyketSample.Build.cs
│ ├── MyketSample.Target.cs
│ └── MyketSampleEditor.Target.cs
├── MyketSample.uproject # فایل پروژه آنریل انجین
└── README.md
اجرای سریع پروژه نمونه
وجود سناریوی اشتراک در کد نمونه به معنی پشتیبانی فعلی مایکت از اشتراک نیست. طبق مستندات فعلی، مایکت از محصولات اشتراکی پشتیبانی نمیکند؛ بنابراین بخش مربوط به اشتراک را برای محصول واقعی استفاده نکنید.
۱. اجرای در محیط ادیتور (Play-in-Editor / PIE)
۱. مخزن پروژه را دریافت کنید:
git clone https://github.com/myketstore/billing-sample-unrealengine.git
۲. فایل MyketSample.uproject را در نسخه سازگار Unreal Engine باز کنید.
۳. دکمه Play را در ویرایشگر بزنید.
۴. کلاس MyketSampleGameMode بهصورت خودکار پنل تعاملی تست را روی صفحه نمایش میدهد. در محیط PIE کدهای شبیهساز امن اجرا میشوند تا بدون خطا منطق برنامه را بررسی کنید.
۲. بستهبندی و اجرا روی دستگاه اندروید
۱. دستگاه اندرویدی را به سیستم وصل کنید (حالت Developer Mode و USB Debugging فعال باشد).
۲. مطمئن شوید برنامه مایکت روی دستگاه نصب است.
۳. از منوی اصلی به مسیر Platforms → Android → Package Project بروید (یا از دکمه Quick Launch برای نصب مستقیم استفاده کنید).
۴. برنامه را روی گوشی باز کنید. ابتدا روی دکمه Initialize IAB بزنید و پس از دریافت پیام اتصال موفق، عملیات خرید و استعلام را تست کنید.
افزودن پلاگین به پروژه موجود
برای افزودن پلاگین مایکت به پروژه جاری خود:
۱. انتقال پوشه پلاگین
پوشه Plugins/MyketBilling را از مخزن نمونه به پوشه Plugins/ در ریشه پروژه خود کپی کنید (اگر این پوشه وجود ندارد، آن را بسازید).
۲. فعالسازی در فایل .uproject
فایل پروژه (.uproject) را در یک ادیتور متن باز کرده و پلاگین را اضافه کنید:
{
"Plugins": [
{
"Name": "MyketBilling",
"Enabled": true
}
]
}
اگر فایل شما از قبل دارای بخش Plugins است، ورودی فوق را به همان آرایه اضافه کنید و کل فایل را بازنویسی نکنید.
۳. افزودن ماژول به Build.cs
در فایل [ProjectName].Build.cs ماژول بازی خود، نام ماژول MyketBilling را به وابستگیهای عمومی اضافه کنید:
PublicDependencyModuleNames.AddRange(new string[] {
"Core",
"CoreUObject",
"Engine",
"InputCore",
"MyketBilling"
});