भरोसेमंद वेब गतिविधि में 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 पर लागू करने की प्रोसेस को इस समस्या में ट्रैक किया जा रहा है. यह गाइड उन लोगों के लिए है जो अपने ऐप्लिकेशन को अपडेट करने के लिए, 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>

Digital Goods API और Google Play Billing के बारे में ज़्यादा जानें

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