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

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

Chrome 88, Android पर ऑरिजिन ट्रायल के साथ लॉन्च किया जा रहा है. इससे, Payment Request API और Digital Goods API के साथ भरोसेमंद वेब गतिविधियों को इंटिग्रेट किया जा सकता है. इससे, Google Play Billing की मदद से खरीदारी करने की सुविधा को लागू किया जा सकता है. हमें उम्मीद है कि यह ऑरिजिन ट्रायल, ChromeOS के वर्शन 89 पर भी उपलब्ध होगा.

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

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

build.gradle

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

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

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

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 बिलिंग के बारे में ज़्यादा जानें

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