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

برنامه نمونه

می‌توانید پیاده‌سازی آموزشی پرداخت درون‌برنامه‌ای مایکت با React Native را از اینجا دانلود کنید.

پیاده‌سازی

ابتدا در پنل توسعه‌دهنده‌های مایکت Packagename برنامه خود را رزرو نمایید.

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

npx create-new-react-app <REACT_APP_NAME>

Permission خرید درون‌برنامه‌ای را در Manifest قرار دهید.

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

فایل‌های java موجود در این فایل را در پوشه android و در پوشه src قرار دهید و مانند هر ماژول دیگر بعد از آن که تغییراتی را در کد native کردید باید آن را دوباره build کنید.

YOUR_PROJECT\android\app\src\main\java\com\
  • فولدر اندروید در داخل پوشه پروژه است.
  • محتویات فایل myketiab را در فولدر با اسم پروژه خود قرار دهید.
  • در فایل MyketIap.java و در متد intializeHelper مقدار base64EncodedPublicKey را به کلید عمومی تغییر دهید.
  • بعد از آن تنها یکبار باید پروژه اندروید خود را build بگیرید.
توجه: به نام package ها در ابتدای فایل توجه داشته باشید که با package های پروژه شما مطابق باشند.توجه: به پروژه خود و فایل build.gradle و قسمت dependencies کتابخانه gson را اضافه کنید.
implementation 'com.google.code.gson:gson:<VERSION>'

فایل‌های js را از اینجا دانلود کنید و فایل MyketIap.js و فولدر IapModels را کنار App.js قرار می‌دهیم و از آن‌ها استفاده می‌کنیم.

// Myket Iap
import MyketIap from './MyketIap';
import Inventory from './IapModels/Inventory';
import IabResult from './IapModels/IabResult';
import Purchase from './IapModels/Purchase';

نمونه فایل app.js و برنامه پرداخت‌درون‌برنامه‌ای را می‌توانید از اینجا دانلود کنید.

آشنایی با توابع

    • MyketIap.initializeHelper(onGotInventoryListener, onReceivedListener):
        ◦ onGotInventoryListener: js callback
        ◦ onReceivedListener: js callback

    • MyketIap.consumeAsync(JSON.stringify(purchaseObj), onConsumeFinishedListener)
        ◦ purchaseObj: Purchase Model (IapModels/Purchase.Js)
        ◦ onConsumeFinishedListener: js callback

    • MyketIap.launchPurchaseFlow(SKU_NAME, REQUEST_CODE, onPurchaseFinishedListener)
        ◦ SKU_NAME: string
        ◦ REQUEST_CODE: int
        ◦ onPurchaseFinishedListener: js callback
توجه: بلافاصله بعد از initializeHelper قادر به استفاده از آن نیستیم و چند لحظه طول می‌کشد. با استفاده از callback‌ها می‌توانید از آماده‌ شدن پلاگین با خبر شوید.

آشنایی با Callbackها

    • onPurchaseFinished(purchase, result)
        ◦ purchase: string (json-format)
        ◦ result: string (json-format)
          
    • onGotInventory(inventory, result)
        ◦ inventory: string (json-format)
        ◦ result: string (json-format)
          
    • onConsumeFinished(purchase, result)
        ◦ purchase: string (json-format)
        ◦ result: string (json-format)
Was this article helpful?
Dislike 0
قبلی: پلاگین خرید درون‌برنامه‌ای مایکت برای یونیتی (مدل دوم)
بعدی: پلاگین خرید درون‌برنامه‌ای فلاتر (Flutter)