راهنمای کتابخانهٔ پرداخت در Basic 4 Android
دریافت کد نمونه
نمونه این کد را در گیتهاب مشاهده کنید: https://github.com/nivadcloud/InAppBillingB4Aراه اندازی پرداخت درون برنامهای
گام اول: دریافت کلید RSA از بازار
یک نسخهی apk از اپلیکیشنتان را در پنل بازار بارگزاری کنید. پس از آپلود کامل برنامه به بخش «پرداخت درونبرنامهای» وارد شوید و با کلیک روی دکمهای که در بخش «کلید RSA» قرار داده شده است کلید مربوط به برنامهی خود را دریافت کنید. این کلید را در جایی کپی و پیست کنید تا بعدا در برنامه استفاده شود.
لزومی ندارد که اطلاعات اپلیکیشنتان را به صورت کامل وارد کنید یا فایل apkی که بارگزاری میکنید نسخهی نهایی و کامل برنامه باشد. این اطلاعات در آینده قابل ویرایش هستند. جزئیات اطلاعات برنامه در این مرحله اهمیتی ندارند
گام دوم: افزودن کتابخانهی نیواد
فایلهای کتابخانه را دانلود کنید و در پوشهٔ Libraries بیسیک قرار دهید. به طور مثال اگر بیسیک را در درایو D ویندوز نصب کرده باشید این پوشه در این آدرس قرار دارد:
D:\Program Files (x86)\Anywhere Software\Basic4android\Libraries
در پنجرهٔ Libraries بیسیک فور اندروید تیک مربوط به کتابخانهٔ نیواد را بزنید تا این کتابخانه به پروژهتان افزوده شود. اگر کتابخانهٔ نیواد در لیست موجود نبود، روی لیست راست کلیک کنید و گزینهٔ Reload را انتخاب کنید.
به Project->Manifest Editor رفته و دسترسی پرداخت درون برنامهای مورد نظرتان را اضافه کنید.
AddPermission(com.farsitel.bazaar.permission.PAY_THROUGH_BAZAAR) ' برای کافه بازار
AddPermission(ir.mservices.market.BILLING) ' برای مایکت
با توجه به مارکتی که قصد انتشار برنامهتان در آن را دارید فقط یکی از خطوط بالا را اضافه کنید. مارکتها به وجود دسترسی پرداخت سایر مارکتها در اپلیکیشن شما حساسیت نشان میدهند. فقط یکی از دسترسسیها را استفاده کنید
در بخش Globals
اکتیویتی خرید این متغیر را تعریف کنید:
Dim mNivadBilling As BillingProcessor
کدهای زیر را به متد Activity_Create
اضافه کنید:
If FirstTime Then
Dim bazaarRSAKey As String
Dim nivadApplicationID As String
Dim nivadBillingSecret As String
bazaarRSAKey = "کلید RSA که از کافه بازار دریافت کردید"
nivadApplicationID = "مقدار Application ID که در پنل نیواد، بخش پرداخت امن دریافت کردید"
nivadBillingSecret = "مقدار Application Secret که در پنل نیواد، بخش پرداخت امن دریافت کردید"
mNivadBilling.initialize(bazaarRSAKey, nivadApplicationID, nivadBillingSecret, "cafe-bazaar")
' در صورتی که از مایکت استفاده میکنید:
' mNivadBilling.initialize(bazaarRSAKey, nivadApplicationID, nivadBillingSecret, "myket")
End If
در منوی Tools گزینهٔ Manifest Editor را انتخاب کنید و خط زیر را به آن اضافه کرده، فایل را ذخیره کنید:
AddApplicationText(<activity android:name="io.nivad.billing.b4a.PurchaseActivity" />)
سابروتینهای مربوط به پرداخت را اضافه کنید:
Sub nivadbilling_purchase_history_restored()
' این متد زمانی صدا زده میشود که محصولاتی که کاربر خریده اما هنوز مصرف نشدهاند از بازار دریافت شده اند. این محصولات را با متدهای
' isPurchased و isSubscribed
' میتوانید چک کنید
End Sub
Sub nivadbilling_product_purchased(sku As String, details As TransactionDetails)
' این روتین پس از خرید موفق صدا زده میشود
' برای محصولات مصرف شدنی اینجا تابع
' consumePurchase یا consumePurchaseInBackground
' را صدا بزنید و در صورتی که مقدار بازگشتی
' True
' بود اثر آن را اعمال کنید.
End Sub
Sub nivadbilling_initialized()
'این روتین زمانی که سرویس پرداخت درون برنامهای آمادهی کار میشود صدا زده میشود
' دکمهای خرید را تا قبل از فراخوانی این متد فعال نکنید در غیر این صورت ممکن است برنامهٔ شما
' با خطا مواجه شده و بسته شود
End Sub
Sub nivadbilling_error(errorCode As Int)
' این روتین در زمانی که اشکالی در فرایند پرداخت یا راه اندازی سرویس پرداخت درونبرنامهای به وجود بیاید صدا زده میشود.
' برخی از مقادیر پارامتر
' code
' در آدرس زیر معرفی و توضیح داده شده اند:
' https://nivad.io/docs/iab-methods-and-error-codes/
End Sub
اکنون اپلیکیشن یا بازی شما آمادهی خرید است.
انجام یک خرید
برای آغاز فرایند خرید و هدایت کاربر به بازار باید از متدهای purchase
و subscribe
استفاده کنید. این دو متد به عنوان پارامتر ورودی شناسهی محصول(productId
یا sku
) را دریافت میکنند.
شناسهی محصول رشتهی منحصر به فردی است که محصولات مختلف را از یکدیگر متمایز میکند. این شناسه را در بخش «پرداخت درونبرنامهای» در پنل بازار زمانی که محصولات و اشتراکهای اپلیکیشنتان را تعریف میکنید خودتان تعیین میکنید. شناسهی محصول حداکثر 100 حرف میتواند داشته باشد و قابل تغییر نیست. شناسهٔ محصول چیست؟
مثال:
mNivadBilling.purchase("product_1000_coins")
برای مصرف یک محصول مصرف شدنی از متد consumePurchase
استفاده کنید. این متد به عنوان پارامتر ورودی شناسهی محصول را دریافت میکند.
برای چک کردن اینکه کاربر یک محصول (یا اشتراک) را خریداری کرده باید از متدهای isPurchased
و isSubscribed
استفاده کنید.