استخدام خدمة "الفوترة في Play" في "النشاط على الويب الموثوق به"

بالإضافة إلى السماح لتطبيقك ببيع السلع الرقمية والاشتراكات على "متجر Play"، تقدّم الفوترة في Google Play أدوات لإدارة قائمة المنتجات والأسعار والاشتراكات، وتقارير مفيدة، وعملية دفع مألوفة للمستخدمين من خلال "متجر Play". وهو شرط أيضًا للتطبيقات المنشورة على "متجر Play" التي تبيع سلعًا رقمية.

سيتم إطلاق Chrome 88 من خلال إصدار تجريبي المصدر على Android يتيح دمج أنشطة الويب الموثوق بها مع Payment Request API وDigital Goods API لتنفيذ مسارات الشراء من خلال خدمة "الفوترة في Google Play". نتوقع أن يتوفّر إصدار Origin Trial هذا أيضًا لنظام التشغيل ChromeOS على الإصدار 89.

لتسهيل الدمج مع تطبيق Android، يقدّم فريق "النشاط الموثوق به على الويب" مكتبة إضافات android-browser-helper. سيوضّح لك هذا الدليل التغييرات المطلوبة لدمج هذه المكتبة في تطبيق حالي.

ملاحظة: تتناول هذه المقالة عملية دمج تطبيق Android. إذا كنت تستخدم 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

في ملف بيان Android، عليك تغيير الإشارة إلى مكتبة التفويض لتطبيقك. في بيان 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>

توفّر مكتبة الفوترة أيضًا مكوّنَين جديدَين يجب إضافتهما إلى ملف Android البياني: خدمة يمكن للمتصفّح الاتصال بها والتحقّق مما إذا كان التطبيق يتيح الدفع، ونشاط يعالج عملية الدفع نفسها:

<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"

تناولت هذه المقالة الخطوات المطلوبة على وجه التحديد في تطبيق Android الذي يستخدم Trusted Web Activity، ولكن واجهة برمجة التطبيقات Google Play Billing API لها مصطلحاتها الخاصة وتتضمن مكونات العميل والخلفية. ننصحك بشدة بالاطّلاع على مستندات الفوترة في Google Play وواجهة برمجة التطبيقات Digital Goods API للتعرّف على مفاهيمها قبل دمجها في تطبيق في قناة الإصدار العلني.