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

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

سيتم إطلاق Chrome 88 من خلال إصدار تجريبي المصدر على Android، ما يتيح دمج أنشطة الويب الموثوقة باستخدام Payment Request API وDigital Goods API من أجل تنفيذ مسارات الشراء من خلال خدمة "الفوترة في Google Play" نتوقع أن تكون النسخة التجريبية هذه متوفرة أيضًا. بالنسبة إلى نظام التشغيل 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. نشاط، لكنّ المصطلحات الخاصة بها في Google Play Billing API تشمل العميل والخلفية والمكونات. ننصحك بشدة بالاطّلاع على الفوترة في Google Play مستندات Digital Goods API وفهم مفاهيمها قبل دمجها في تطبيق في الإنتاج.