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