בנוסף לאפשרות למכור באפליקציה מוצרים דיגיטליים ומינויים בחנות Play, חיוב ב-Google Play מציע כלים לניהול הקטלוג, המחירים והמינויים, דוחות מועילים ותהליך תשלום שמבוסס על חנות Play ומוכרת למשתמשים. היא גם דרישה לאפליקציות שפורסמו ב-Play Store ומוכרות מוצרים דיגיטליים.
גרסה 88 של Chrome תצא עם גרסת טרום-השקה ל-Android, שמאפשרת לשלב את Trusted Web Activities עם Payment Request API ו-Digital Goods API כדי להטמיע תהליכי רכישה דרך החיוב ב-Google Play. אנחנו צופים שגרסת הניסיון הזו תהיה זמינה גם ל-ChromeOS בגרסה 89.
כדי להקל על השילוב באפליקציה ל-Android, צוות Trusted Web Activity מציג ספריית תוספים ל-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(), צריך להוסיף קריאה ל-method אחת שמרשמת את האפליקציה כ-handler ל-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 Manifest, תצטרכו לשנות את ההפניה ל-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>
בספריית החיוב יש גם שני רכיבים חדשים שצריך להוסיף למניפסט של Android: Service שהדפדפן יכול להתחבר אליו ולבדוק אם האפליקציה תומכת בתשלום, ו-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
במאמר הזה פירטנו את השלבים הנדרשים במיוחד באפליקציה ל-Android שמשתמשת ב-Trusted Web Activity, אבל לממשק Google Play Billing API יש מונחים משלו והוא כולל רכיבי לקוח ורכיבי קצה עורפי. מומלץ מאוד לקרוא את המסמכים של חיוב ב-Google Play ושל Digital Goods API ולהבין את המושגים שלהם לפני שמשלבים את ה-API באפליקציה בסביבת הייצור.