यह गाइड, भरोसेमंद वेब गतिविधि के तौर पर पैकेज किए गए वेब ऐप्लिकेशन के लिए है. Kotlin या Java में लिखे गए Android ऐप्लिकेशन के लिए, Google Play Billing का दस्तावेज़ देखें.
Google Play पर मौजूद जिन ऐप्लिकेशन में डिजिटल प्रॉडक्ट या सदस्यताएं बेची जाती हैं उनके लिए Google Play Billing का इस्तेमाल करना ज़रूरी है. भरोसेमंद वेब गतिविधि में, इन वेब एपीआई का इस्तेमाल करके इसे इंटिग्रेट किया जाता है. ये एपीआई, Android और ChromeOS पर Chrome 101 और इसके बाद के वर्शन में उपलब्ध हैं:
- Digital Goods API: इससे डिजिटल प्रॉडक्ट की जानकारी और उपयोगकर्ता की खरीदारी की जानकारी मिलती है.
- Payment Request API: इससे खरीदारी का फ़्लो शुरू होता है.
ज़रूरी शर्तें
Google Play Billing सेट अप करने के लिए, आपको इनकी ज़रूरत होगी:
- Google Play डेवलपर खाता और Google Payments कारोबारी खाता, जो एक-दूसरे से लिंक हों.
- Play Store पेज पर पब्लिक, क्लोज़्ड टेस्टिंग या ऐप्लिकेशन के इंटरनल टेस्ट ट्रैक पर रिलीज़ किया गया हो.
- आपके ऐप्लिकेशन के प्रॉडक्ट और सदस्यताएं, जिन्हें Play Console में कॉन्फ़िगर किया गया है.
- डिजिटल ऐसेट लिंक कॉन्फ़िगरेशन के साथ काम करने वाला भरोसेमंद वेब गतिविधि प्रोजेक्ट.
Play Store से अपना ऐप्लिकेशन डाउनलोड करने के लिए, उपयोगकर्ताओं से शुल्क न लें. आपका पीडब्ल्यूए अब भी वेब पर उपलब्ध है. इसलिए, पैसे चुकाकर डाउनलोड करने की सुविधा से, ऐक्सेस पर कोई पाबंदी नहीं लगती. इसके बजाय, इन-ऐप्लिकेशन खरीदारी या सदस्यताओं की मदद से, सुविधाएं या कॉन्टेंट बेचें.
अपने Android प्रोजेक्ट में Google Play Billing की सुविधा चालू करना
अगर आपने Bubblewrap की मदद से अपना ऐप्लिकेशन बनाया है, तो अपने प्रोजेक्ट के रूट में twa-manifest.json में जाकर, playBilling सुविधा को चालू करें:
"features": {
"playBilling": {
"enabled": true
}
}
इसके बाद, bubblewrap update और फिर bubblewrap build चलाएं. साथ ही, Play Store पर नया Android पैकेज अपलोड करें.
अगर आपने Android Studio में अपना ऐप्लिकेशन बनाया है, तो Android Browser Helper Play Billing library जोड़ें. DelegationService और AndroidManifest.xml में ज़रूरी बदलाव करने के लिए, twa-play-billing डेमो देखें.
देखें कि Google Play Billing की सुविधा उपलब्ध है या नहीं
Play Store आइडेंटिफ़ायर https://play.google.com/billing के साथ getDigitalGoodsService() को कॉल करें. अगर पेमेंट का तरीका मौजूद नहीं है या कॉल पूरा नहीं हो पाता है, तो पेमेंट का कोई दूसरा तरीका इस्तेमाल करें:
if ('getDigitalGoodsService' in window) {
try {
const service =
await window.getDigitalGoodsService('https://play.google.com/billing');
// Google Play Billing is available.
} catch (error) {
// Google Play Billing isn't available. Use another payment flow.
}
}
प्रॉडक्ट के बारे में जानकारी दिखाना
अपने प्रॉडक्ट आईडी के टाइटल, ब्यौरे, और कीमत को वापस पाने के लिए, getDetails() का इस्तेमाल करें. इससे, दिखाई जाने वाली कीमतें, Play Store पर मौजूद कीमतों से मैच करेंगी:
const details = await service.getDetails(['shiny_sword', 'gem']);
for (const item of details) {
const localizedPrice = new Intl.NumberFormat(
navigator.language,
{style: 'currency', currency: item.price.currency}
).format(item.price.value);
renderProductDetails(
item.itemId, item.title, localizedPrice, item.description);
}
Digital Goods API, आपके प्रॉडक्ट आईडी की सूची नहीं दिखा सकता. अपने बैकएंड से क्वेरी करने के लिए, Google Play Developer API का इस्तेमाल करें.
खरीदारी करना
data में, पेमेंट के तरीके के तौर पर https://play.google.com/billing और प्रॉडक्ट आईडी के तौर पर sku का इस्तेमाल करके, PaymentRequest बनाएं. Google Play Billing, Play Console में सेट की गई कीमत का इस्तेमाल करता है. इसलिए, total ज़रूरी है, लेकिन इसे अनदेखा किया जाता है.
show() के रिज़ॉल्व होने के बाद, खरीदारी के टोकन को अपने बैकएंड पर भेजें, ताकि खरीदारी की पुष्टि की जा सके और उसे स्वीकार किया जा सके. अगर आपने तीन दिनों के अंदर खरीदारी की पुष्टि नहीं की, तो Google Play उपयोगकर्ता को रिफ़ंड कर देता है और खरीदारी को रद्द कर देता है.
async function makePurchase(service, sku) {
const paymentMethods = [{
supportedMethods: 'https://play.google.com/billing',
data: {sku},
}];
// Required by the Payment Request API, but ignored by Google Play Billing.
const paymentDetails = {
total: {label: 'Total', amount: {currency: 'USD', value: '0'}},
};
const request = new PaymentRequest(paymentMethods, paymentDetails);
try {
const response = await request.show();
const {purchaseToken} = response.details;
if (await acknowledgePurchaseOnBackend(purchaseToken, sku)) {
// Optional: consume the purchase so the user can buy the item again.
await service.consume(purchaseToken);
await response.complete('success');
} else {
await response.complete('fail');
}
} catch (error) {
// An AbortError usually means the user canceled the purchase.
}
}
किसी उपयोगकर्ता की खरीदारी की जानकारी देखना
listPurchases() का इस्तेमाल करके, उपयोगकर्ता के मालिकाना हक वाले आइटम ढूंढें. जैसे, चालू सदस्यताएं, इस्तेमाल न की गई खरीदारी या रिडीम किए गए प्रोमो कोड. अपने बैकएंड पर हर खरीदारी की पुष्टि करें. साथ ही, ऐसी किसी भी खरीदारी की पुष्टि करें जिसकी पुष्टि आपने नहीं की है:
const purchases = await service.listPurchases();
for (const p of purchases) {
await verifyOrAcknowledgePurchaseOnBackend(p.purchaseToken, p.itemId);
// Update the UI with items the user is entitled to.
}
अपने इंटिग्रेशन की जांच करें
Play Store पर पब्लिश करने से पहले, किसी Android डिवाइस पर टेस्ट करने के लिए, यह तरीका अपनाएं:
- Android 9 या इसके बाद के वर्शन का इस्तेमाल करें. साथ ही, डेवलपर के लिए सेटिंग और टूल चालू हों.
- Chrome में,
chrome://flagsपर जाएं और#enable-debug-for-store-billingको चालू करें. - अपनी साइट को एचटीटीपीएस पर दिखाएं. डिजिटल प्रॉडक्ट एपीआई, एचटीटीपी पर उपलब्ध नहीं है.
जब आपका ऐप्लिकेशन Play Store से इंस्टॉल किया जाता है, तो आपको फ़्लैग की ज़रूरत नहीं होती. टेस्ट खातों और टेस्ट प्रॉडक्ट के साथ टेस्ट करने के लिए, Google Play Billing Library के इंटिग्रेशन को टेस्ट करना लेख पढ़ें.
अगले चरण
- Google Play Developer API की क्लाइंट लाइब्रेरी की मदद से, अपने बैकएंड पर खरीदारी की पुष्टि करें.
- सदस्यताएं बेचने का तरीका जानें.
- सदस्यता में होने वाले बदलावों को ट्रैक करने के लिए, डेवलपर से जुड़ी रीयल-टाइम सूचनाएं सेट अप करें.