भरोसेमंद वेब गतिविधि में Play Billing का इस्तेमाल करें

आंद्रे सिप्रियानी बांडारा
आंद्रे सिप्रियानी बांद्रा

Google Play Billing आपके ऐप्लिकेशन को Play Store पर डिजिटल प्रॉडक्ट और सदस्यताएं बेचने की अनुमति देने के अलावा, आपके कैटलॉग, कीमतों और सदस्यताओं को मैनेज करने के टूल, काम की रिपोर्ट, और Play Store पर उपलब्ध चेकआउट प्रोसेस को भी मैनेज करता है. Play Store के बारे में आपके उपयोगकर्ता पहले से ही इस ऐप्लिकेशन के बारे में जानते हैं. यह डिजिटल प्रॉडक्ट बेचने वाले Play Store पर पब्लिश किए गए ऐप्लिकेशन के लिए भी ज़रूरी है.

Chrome 88 को Android पर ऑरिजिन ट्रायल के साथ लॉन्च किया जा रहा है. इसकी मदद से, भरोसेमंद वेब गतिविधियों को Payment अनुरोध एपीआई और डिजिटल प्रॉडक्ट एपीआई के साथ इंटिग्रेट किया जा सकता है, ताकि Google Play Billing से परचेज़ फ़्लो लागू किया जा सके. हमें उम्मीद है कि ChromeOS के वर्शन 89 पर यह ऑरिजिन ट्रायल भी उपलब्ध होगा.

Android ऐप्लिकेशन के साथ इंटिग्रेशन को आसान बनाने के लिए, भरोसेमंद वेब गतिविधि टीम android-ब्राउज़र-helper के लिए एक एक्सटेंशन लाइब्रेरी उपलब्ध करा रही है. यह गाइड आपको उन बदलावों के बारे में बताएगी जो इस लाइब्रेरी को किसी मौजूदा ऐप्लिकेशन में इंटिग्रेट करने के लिए ज़रूरी हैं.

ध्यान दें: इस लेख में Android ऐप्लिकेशन को इंटिग्रेट करने के बारे में जानकारी दी गई है. अगर ऐप्लिकेशन बनाने के लिए, Bubblewrap का इस्तेमाल किया जा रहा है, तो इस टूल का इस्तेमाल करके ऐप्लिकेशन अपडेट किया जा सकता है. यह गाइड उन लोगों के लिए है जो अपने ऐप्लिकेशन को अपडेट करने के लिए, Bubblewrap का इस्तेमाल नहीं कर रहे हैं.

build.gradle

बिलिंग एक्सटेंशन लाइब्रेरी खुद android-browser-helper के 2.1.0 वर्शन पर निर्भर करती है. पक्का करें कि आपका ऐप्लिकेशन उस वर्शन का इस्तेमाल कर रहा है जो उसके बराबर या उससे बेहतर है.

आपको बिलिंग एक्सटेंशन लाइब्रेरी को लागू करने के बारे में एलान भी जोड़ना होगा:

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() में, आपको एक ऐसा तरीका जोड़ना होगा जो ऐप्लिकेशन को डिजिटल गुड्स एपीआई के लिए हैंडलर के तौर पर रजिस्टर करे:

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>

डिजिटल गुड्स एपीआई और Google Play Billing के बारे में ज़्यादा जानें

इस लेख में, भरोसेमंद वेब गतिविधि का इस्तेमाल करने वाले Android ऐप्लिकेशन के लिए, खास तौर पर ज़रूरी चरणों के बारे में बताया गया है. हालांकि, Google Play Billing API की अपनी शब्दावली है और इसमें क्लाइंट और बैकएंड कॉम्पोनेंट शामिल हैं. हमारा सुझाव है कि प्रोडक्शन में किसी ऐप्लिकेशन में शामिल करने से पहले, Google Play Billing और डिजिटल प्रॉडक्ट एपीआई के दस्तावेज़ पढ़ें और इसके सिद्धांतों को समझें.