بالإضافة إلى السماح لتطبيقك ببيع السلع الرقمية والاشتراكات على "متجر 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 للتعرّف على مفاهيمها قبل دمجها في تطبيق في قناة الإصدار العلني.