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

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

سيتم إطلاق الإصدار 88 من Chrome مع إصدار أوّلي على 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()، عليك إضافة طلب METHODS واحد فقط يسجّل التطبيق كمعالج لواجهة برمجة التطبيقات 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 وفهم مفاهيمها قبل دمجها في أحد التطبيقات المُعدّة للإصدار.