בנוסף לאפשרות למכור באפליקציה מוצרים דיגיטליים ומינויים בחנות 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 באפליקציה בסביבת הייצור.