שימוש בחיוב ב-Play במסגרת הפעילות המהימנה באינטרנט

מלבד האפשרות לאפשר לאפליקציה למכור מוצרים דיגיטליים ומינויים בחנות Play, החיוב ב-Google Play מציע כלים שימושיים לניהול הקטלוג, המחירים והמינויים שלך ותהליך תשלום שמופעל על ידי חנות Play שכבר מכירים את המשתמשים שלך. הוא נדרשת גם לאפליקציות שמתפרסמות בחנות Play שמוכרות מוצרים דיגיטליים.

Chrome 88 מושק עם גרסת מקור לניסיון ב-Android שמאפשרת שילוב של פעילויות מהימנות באינטרנט עם Payment Request API ו-Digital Goods API כדי להטמיע תהליכי רכישה דרך החיוב ב-Google Play. אנחנו צופים שגרסת המקור לניסיון תהיה זמינה גם ל-ChromeOS בגרסה 89.

כדי להקל את השילוב עם האפליקציה ל-Android, צוות 'פעילות מהימנה באינטרנט' מציג ספריית תוספים ל-android-browser-helper. במדריך הזה מפורטים השינויים הנדרשים כדי לשלב את הספרייה הזאת באפליקציה קיימת.

הערה: המאמר הזה עוסק בשילוב של האפליקציה ל-Android. אם משתמשים תוכלו להשתמש בכלי הזה כדי לעדכן את האפליקציה ב-בועות. מתבצע מעקב אחר ההטמעה ב-בועת בועות בבעיה הזו. המדריך הזה מיועד אנשים שלא משתמשים ב-בועות כדי לעדכן את האפליקציה שלהם.

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, עליך לשנות בעצמך את ההפניה אל ספריית האצלה יישום בפועל. בהצהרה המתאימה של 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 והבנת המושגים שלו לפני השילוב בסביבת הייצור.