از Play Billing در فعالیت وب مورد اعتماد خود استفاده کنید

آندره سیپریانی بندرا
André Cipriani Bandarra

علاوه بر اینکه به برنامه شما اجازه می‌دهد کالاهای دیجیتال و اشتراک‌ها را در فروشگاه Play بفروشد، صورت‌حساب Google Play ابزارهایی را برا�� مدیریت کاتالوگ، قیمت‌ها و اشتراک‌ها، گزارش‌های مفید و جریان پرداخت ارائه می‌دهد که توسط فروشگاه Play ارائه می‌شود که از قبل برای کاربران شما آشناست. همچنین برای برنامه های منتشر شده در Play Store که کالاهای دیجیتالی می فروشند، الزامی است.

Chrome 88 با نسخه آزمایشی مبدأ در Android راه‌اندازی می‌شود که امکان ادغام فعالیت‌های وب مورد اعتماد را با API درخواست پرداخت و Digital Goods API برای پیاده‌سازی جریان‌های خرید از طریق صورت‌حساب Google Play فراهم می‌کند. ما انتظار داریم که این نسخه آزمایشی اولیه برای ChromeOS در نسخه 89 نیز در دسترس باشد.

به منظور سهولت ادغام با برنامه Android، تیم Trusted Web Activity در حال معرفی یک کتابخانه افزونه به android-browser-helper است. این راهنما تغییرات مورد نیاز برای ادغام این کتابخانه در یک برنامه موجود را به شما نشان می دهد.

توجه: این مقاله ادغام برنامه اندروید را پوشش می دهد. اگر از Bubblewrap برای ساخت برنامه خود استفاده می کنید، می توانید از این ابزار برای به روز رسانی برنامه خود استفاده کنید. پیاده سازی در Bubblewrap در این ��ماره پیگیری می شود. این راهنما برای کسانی است که از Bubblewrap برای به روز رسانی برنامه خود استفاده نمی کنند.

build.gradle

خود کتابخانه افزونه صورتحساب به نسخه 2.1.0 android-browser-helper بستگی دارد. اطمینان حاصل کنید که برنامه شما از نسخه ای برابر یا بزرگتر از آن استفاده می کند.

همچنین باید یک بیانیه اجرایی برای کتابخانه افزونه صورتحساب اضافه کنید:

dependencies {
    ...
    implementation 'com.google.androidbrowserhelper:androidbrowserhelper:2.1.0'
    implementation 'com.google.androidbrowserhelper:billing:1.0.0-alpha05'
}

DelegationService.java

android-browser-helper با DelegationService پیش‌فرض عرضه می‌شود که می‌تواند مستقیماً توسط برنامه‌ها استفاده شود. هنگام استفاده از برنامه افزودنی صورت‌حساب، به نسخه کمی سفارشی‌سازی شده DelegationService نیاز دارید.

برای انجام این کار، باید کلاس DelegationService خود را ایجاد کنید که کلاس اصلی را گسترش دهد و onCreate() را لغو کند. در داخل onCreate() باید یک فراخوانی متد اضافه کنید که برنامه را به عنوان یک کنترل کننده برای Digital Goods API ثبت کند:

package com.example.yourapp;

import com.google.androidbrowserhelper.playbilling.digitalgoods.DigitalGoodsRequestHandler;
import com.google.androidbrowserhelper.trusted.DelegationService;

public class DelegationService
        extends com.google.androidbrowserhelper.trusted.DelegationService {
    @Override
    public void onCreate() {
        super.onCreate();
        registerExtraCommandHandler(new DigitalGoodsRequestHandler(getApplicationContext()));
    }
}

AndroidManifest.xml

در Manifest Android، باید مرجع پیاده‌سازی خود را به Delegation Library تغییر دهید. در اعلامیه service مربوطه، com.google.androidbrowserhelper.trusted.DelegationService را با کلاس تازه ایجاد شده خود جایگزین کنید.

<service
    android:name=".DelegationService"
    android:exported="true">

    <intent-filter>
        <action android:name="android.support.customtabs.trusted.TRUSTED_WEB_ACTIVITY_SERVICE"/>
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</service>

کتابخانه صورت‌حساب همچنین دو مؤلفه جدید را معرفی می‌کند که باید به Manifest Android شما اضافه شود: یک سرویس که مرورگر می‌تواند به آن متصل شود و بررسی کند که آیا برنامه از پرداخت پشتیبانی می‌کند یا خیر، و یک Activity که خود جریان پرداخت را مدیریت می‌کند:

<activity
    android:name="com.google.androidbrowserhelper.playbilling.provider.PaymentActivity"
    android:theme="@android:style/Theme.Translucent.NoTitleBar"
    android:configChanges="keyboardHidden|keyboard|orientation|screenLayout|screenSize"
    android:exported="true">
    <intent-filter>
        <action android:name="org.chromium.intent.action.PAY" />
    </intent-filter>
    <meta-data
        android:name="org.chromium.default_payment_method_name"
        android:value="https://play.google.com/billing" />
</activity>
<!-- This service checks who calls it at runtime. -->
<service
    android:name="com.google.androidbrowserhelper.playbilling.provider.PaymentService"
    android:exported="true" >
    <intent-filter>
        <action android:name="org.chromium.intent.action.IS_READY_TO_PAY" />
    </intent-filter>
</service>

درباره Digital Goods API و Google Play Billing بیشتر بیاموزید

این مقاله مراحل مورد نیاز را به طور خاص در برنامه Android که از Trusted Web Activity استفاده می‌کند، پوشش می‌دهد، اما Google Play Billing API اصطلاحات خاص خود را دارد و شامل اجزای کلاینت و باطن است. ما اکیداً توصیه می‌کنیم اسناد صورت‌حساب Google Play و Digital Goods API را بخوانید و مفاهیم آن را قبل از ادغام آن در یک برنامه در تولید، درک کنید.