सदस्यताएं और एक बार में की जाने वाली खरीदारी को मैनेज करें

आपको रोज़मर्रा के कारोबार के तहत, सदस्यताओं या एक बार की जाने वाली खरीदारी को मैनेज करने से जुड़ी कार्रवाइयां करनी पड़ सकती हैं. उदाहरण के लिए, आपकी ग्राहक सेवा टीम को उपयोगकर्ताओं के लिए पूरा या कुछ हिस्सा रिफ़ंड करना पड़ सकता है. इसके अलावा, कुछ मामलों में आपको एनटाइटलमेंट रद्द करने पड़ सकते हैं. Play Console से ऑर्डर मैनेज किए जा सकते हैं. इसके अलावा, अगर आपको अपने सिस्टम से ऑर्डर मैनेज करने हैं, तो Google Play Developer API का इस्तेमाल करके ऐसा किया जा सकता है.

सदस्यताएं रद्द करें

सदस्यता रद्द करने का अनुरोध, उपयोगकर्ता या डेवलपर कर सकते हैं.

उपयोगकर्ता ने रद्द किया

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

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

डेवलपर की ओर से रद्द किए गए अनुरोध

डेवलपर के तौर पर, आपको अपने बैकएंड से भी सदस्यताएं रद्द करनी पड़ सकती हैं. purchases.subscriptions.cancel एपीआई की मदद से, सदस्यता की खरीदारी रद्द की जा सकती है. उदाहरण के लिए, इस तरीके का इस्तेमाल किसी लेगसी सेवा को बंद करने के लिए किया जा सकता है. सदस्यता रद्द करने पर रिफ़ंड नहीं मिलता. साथ ही, उपयोगकर्ता के पास मौजूदा बिलिंग अवधि के खत्म होने तक सदस्यता का ऐक्सेस बना रहता है.

इस तरीके से, cancellationType अनुरोध के मुख्य हिस्से के पैरामीटर में, इन तरह के रद्द किए गए टिकट के बारे में बताया जा सकता है:

  • USER_REQUESTED_STOP_RENEWALS: इससे सदस्यता रद्द हो जाती है. ऐसा तब होता है, जब उपयोगकर्ता Play Store से सदस्यता रद्द करते हैं. किस्तों में किए जाने वाले सभी पेमेंट, मौजूदा कमिटमेंट पीरियड के बाकी समय तक जारी रहेंगे. Play Store से, उपयोगकर्ता सदस्यता खत्म होने से पहले उसे बहाल कर सकते हैं. इसके अलावा, अगर बुनियादी प्लान के लिए यह सुविधा चालू है, तो सदस्यता खत्म होने के बाद वे फिर से सदस्यता ले सकते हैं.

  • DEVELOPER_REQUESTED_STOP_PAYMENTS: इससे सदस्यता रद्द हो जाती है और आगे कोई पेमेंट नहीं होता. उपयोगकर्ता, Play Store से सदस्यता को बहाल नहीं कर सकते या फिर से उसकी सदस्यता नहीं ले सकते. हालांकि, आपके पास उन्हें अपने ऐप्लिकेशन में फिर से सदस्यता लेने की सुविधा देने का विकल्प होता है.

उपयोगकर्ताओं को उन सदस्यताओं को बहाल करने की अनुमति दें जिनकी समयसीमा खत्म नहीं हुई है

कुछ मामलों में, डेवलपर के तौर पर सदस्यता रद्द करने की प्रोसेस शुरू करने के बाद, उपयोगकर्ताओं को Play के सदस्यता केंद्र से ऐसी सदस्यताएं बहाल करने की अनुमति देना फ़ायदेमंद हो सकता है जिनकी समयसीमा खत्म नहीं हुई है. उदाहरण के लिए, हो सकता है कि आपको ऐप्लिकेशन में सदस्यता रद्द करने की सुविधा को पसंद के मुताबिक बनाना हो. अपने कारोबारी नियम के आधार पर, यह तय किया जा सकता है कि बैकएंड से ट्रिगर की गई कौनसी रद्द की गई सदस्यताएं, उपयोगकर्ताओं के लिए बहाल की जा सकती हैं.

यह बताने के लिए कि कोई उपयोगकर्ता सदस्यता रद्द करने की कार्रवाई को वापस ला सकता है, purchases.subscriptions.cancel एपीआई को POST अनुरोध भेजें. साथ ही, cancellationType अनुरोध पैरामीटर को USER_REQUESTED_STOP_RENEWALS वैल्यू पर सेट करें.

उदाहरण:

  • सदस्यता 1a2b3c4d5e6f7g8h9i0j का खरीदारी टोकन
  • ऐप्लिकेशन के पैकेज का नाम com.your.app
  • सदस्यता आईडी your-subscription-product

एचटीटीपी पीओएसटी अनुरोध:

https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.your.app/purchases/subscriptions/your-subscription-product/tokens/1a2b3c4d5e6f7g8h9i0j:cancel

अनुरोध का मुख्य भाग:

{
  "cancellationType": "USER_REQUESTED_STOP_RENEWALS"
}

उपयोगकर्ताओं को समयसीमा खत्म हो चुकी सदस्यताएं फिर से खरीदने की सुविधा देना

अगर आपको किसी ऐसी सदस्यता को फिर से लेने की अनुमति देनी है जिसकी समयसीमा खत्म हो गई है, तो आपको सदस्यता के बुनियादी प्लान में सदस्यता फिर से लें विकल्प को चालू करना होगा. इसके बाद, cancellationType पैरामीटर को USER_REQUESTED_STOP_RENEWALS वैल्यू पर सेट करके सदस्यता रद्द करनी होगी.

उपयोगकर्ताओं को सिर्फ़ अपने ऐप्लिकेशन में फिर से सदस्यता लेने की अनुमति देना

अगर आपने cancellationType पैरामीटर को DEVELOPER_REQUESTED_STOP_PAYMENTS पर सेट किया है या cancellationType पैरामीटर को सेट नहीं किया है, तो लोग Play के सदस्यता केंद्र से अपनी सदस्यता को वापस नहीं ला सकते. हालांकि, अगर उपयोगकर्ताओं को सदस्यता की ज़रूरत है, तो वे आपके ऐप्लिकेशन के ज़रिए फिर से साइन अप कर सकते हैं.

यह कार्रवाई करने पर, SUBSCRIPTION_CANCELED डेवलपर को रीयल-टाइम सूचना मिलती है. इन बुकिंग को रद्द करने के लिए, बुकिंग रद्द करना लेख में बताया गया तरीका अपनाएं.

बिलिंग को कुछ समय के लिए रोकना

subscriptionsv2.defer तरीके का इस्तेमाल करके, किसी सदस्यता के एनटाइटलमेंट की अवधि बढ़ाई जा सकती है. ऐड-ऑन वाली सदस्यता को कुछ समय के लिए रोकने पर, सदस्यता में शामिल सभी आइटम को एक ही अवधि के लिए रोक दिया जाता है. बढ़ाई गई इस अवधि के दौरान, उपयोगकर्ता आपके कॉन्टेंट का सदस्य बना रहता है. हालांकि, उससे इस अवधि के लिए कोई शुल्क नहीं लिया जाता. किसी सदस्यता के लिए बिलिंग को कुछ समय के लिए रोकने पर, स्थिति की जानकारी को उसके हिसाब से अपडेट किया जाता है. यह जानकारी, खरीदारी की स्थिति की जानकारी में मौजूद expiryTime फ़ील्ड में दिखती है:

  • बार-बार रिन्यू होने वाली चालू सदस्यताओं के लिए, बिलिंग में देरी होने पर, रिन्यूअल की अगली तारीख बढ़ जाती है.
  • प्रीपेड प्लान के लिए, कुछ समय बाद बिलिंग की सुविधा से प्लान के खत्म होने की अवधि बढ़ जाती है.

डिफ़र्ड बिलिंग का इस्तेमाल करने के कुछ उदाहरण यहां दिए गए हैं:

  • उपयोगकर्ताओं को खास ऑफ़र के तौर पर बिना किसी शुल्क के ऐक्सेस दें. जैसे, मौजूदा सदस्यों को सुझाव/राय देने या शिकायत करने वाले सर्वे को भरने के लिए, एक हफ़्ते तक बिना किसी शुल्क के ऐक्सेस दें.
  • ग्राहक सेवा के तौर पर, खरीदारों को बिना किसी शुल्क के ऐक्सेस दें. उदाहरण के लिए, लंबे समय तक सेवा बंद रहने के बाद, ऐसा किया जा सकता है. इससे खरीदारों को आपकी सेवा इस्तेमाल करने में समस्या आ सकती है.

बिलिंग को हर एपीआई कॉल के लिए, कम से कम एक दिन और ज़्यादा से ज़्यादा एक साल तक के लिए टाला जा सकता है. एनटाइटलमेंट के खत्म होने की तारीख को और आगे बढ़ाने के लिए, नई तारीख से पहले एपीआई को फिर से कॉल करें.

यह कार्रवाई करने पर, SUBSCRIPTION_DEFERRED डेवलपर से जुड़ी रीयल-टाइम सूचना ट्रिगर होती है. इन इवेंट को मैनेज करने का तरीका जानने के लिए, सदस्यताओं के बारे में जानकारी में जाकर, सदस्य के लिए बिलिंग टालना लेख पढ़ें.

उदाहरण:

  1. FitnessGoals स्ट्रीमिंग सेवा को फ़रवरी में एक प्रमोशन चलाना है, ताकि लोगों को नियमित रूप से कसरत करने के लिए बढ़ावा दिया जा सके.

  2. उन्होंने फ़ैसला किया कि वे किसी भी ऐसे सदस्य को एक महीने के लिए अतिरिक्त सेवा देंगे जिसने फ़रवरी के महीने में कम से कम 10 बार FitnessGoals का इस्तेमाल किया हो.

  3. ये चैलेंज के नतीजों को ट्रैक करते हैं. साथ ही, 1 मार्च को, subscriptionsv2.defer तरीके को कॉल करते हैं. ऐसा उन उपयोगकर्ताओं की हर चालू सदस्यता की खरीदारी के लिए किया जाता है जिन्होंने फ़रवरी में चैलेंज पूरा किया था.

  4. इन उपयोगकर्ताओं को, बिना किसी शुल्क के एक महीने तक कसरत के वीडियो देखने का फ़ायदा मिलता है. साथ ही, ये उपयोगकर्ता अपने सभी दोस्तों को बताते हैं कि FitnessGoals से उन्हें सेहतमंद रहने में कैसे मदद मिलती है!

रिफ़ंड जारी करना और सदस्यताएं रद्द करना

कई ऐसी स्थितियां होती हैं, जब आपको किसी सदस्यता या एक बार की गई खरीदारी के लिए रिफ़ंड जारी करना पड़ सकता है या उसका ऐक्सेस रद्द करना पड़ सकता है.

ऑर्डर आईडी के हिसाब से, किसी ऑर्डर का पूरा रिफ़ंड देना

orders.refund API की मदद से, खरीदारी के तीन साल के अंदर किसी भी ऑर्डर के लिए पूरा रिफ़ंड जारी किया जा सकता है. orders.refund तरीके को एक revoke पैरामीटर मिलता है. इससे पता चलता है कि रिफ़ंड देने के साथ-साथ ऐक्सेस रद्द करना है या नहीं.

अगर सदस्यता खरीदने के लिए रिफ़ंड के अनुरोध के साथ सदस्यता रद्द करने का अनुरोध किया जाता है, तो सदस्यता तुरंत खत्म हो जाती है. साथ ही, इससे SUBSCRIPTION_REVOKEDडेवलपर को रीयल टाइम में सूचना मिलती है. इन इवेंट को मैनेज करने का तरीका जानने के लिए, सदस्यता के लाइफ़साइकल को मैनेज करने से जुड़ी गाइड का सदस्यता रद्द करने का सेक्शन पढ़ें.

उदाहरण:

  1. नए वर्ल्ड कप की शुरुआत का जश्न मनाने के लिए, ई-स्पोर्ट्स ऐप्लिकेशन Football-Not-Soccer ने फ़ैसला किया है कि वह उन सभी उपयोगकर्ताओं को मुफ़्त में वर्चुअल जर्सी देगा जो पहले 24 घंटों में टीम की नई किट खरीदेंगे.

  2. Football-Not-Soccer, orders.refund एपीआई का इस्तेमाल करता है. हालांकि, यह एपीआई में रद्द करने का पैरामीटर पास नहीं करता है, ताकि विजेताओं को जर्सी की खरीदारी का रिफ़ंड दिया जा सके.

खरीदारी के टोकन के ज़रिए किसी सदस्यता को रद्द करना और उसका रिफ़ंड देना

कुछ मामलों में, आपको किसी उपयोगकर्ता की सदस्यता का ऐक्सेस रद्द करना पड़ सकता है. साथ ही, उसे रिफ़ंड देना पड़ सकता है. Play Billing, सदस्यता रद्द करने के कई तरीके उपलब्ध कराता है. इनमें subscriptionsv2.revoke एपीआई के ज़रिए, पूरा रिफ़ंड और सदस्यता की बची हुई अवधि के लिए रिफ़ंड शामिल है. इस एंडपॉइंट की मदद से, revocationContext तय किया जा सकता है, ताकि यह पता चल सके कि रिफ़ंड का हिसाब कैसे लगाया जाता है.

यह कार्रवाई करने पर, SUBSCRIPTION_REVOKED डेवलपर से जुड़ी रीयल टाइम सूचना ट्रिगर होती है. आपका ऐप्लिकेशन, इन रद्द किए गए लेन-देन को रद्द किए गए लेन-देन में बताए गए तरीके से हैंडल करे.

उदाहरण:

  • खरीदारी के टोकन 1a2b3c4d5e6f7g8h9i0j का इस्तेमाल करके खरीदारी करें
  • com.your.app पैकेज नाम वाला ऐप्लिकेशन
  • आंशिक रिफ़ंड जारी करने का मकसद

एचटीटीपी पीओएसटी अनुरोध:

https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.your.app/purchases/subscriptionsv2/tokens/1a2b3c4d5e6f7g8h9i0j:revoke

अनुरोध का मुख्य भाग:

{
  "revocationContext": {
    "proratedRefund": {}
  }
}

पूरा रिफ़ंड

अगर आपको सदस्यता खत्म करनी है और मौजूदा बिलिंग अवधि के लिए पूरा रिफ़ंड देना है, तो पूरा रिफ़ंड जारी करें. purchases.subscriptionsv2.revoke फ़ंक्शन का इस्तेमाल करें और "fullRefund": {} को रिफ़ंड टाइप के तौर पर सेट करें.

उदाहरण:

  1. मारिया के पास SuperMovies स्ट्रीमिंग के हर महीने के प्लान की 30 दिनों की सदस्यता है, जो अपने-आप रिन्यू होती है. मारिया को कुछ तकनीकी समस्याएं आ रही हैं. इस वजह से, वह कॉन्टेंट ऐक्सेस नहीं कर पा रही है. वह बिलिंग साइकल के तीसरे दिन ग्राहक सेवा टीम से संपर्क करती है. वह बताती है कि उसे सदस्यता का ऐक्सेस कभी नहीं मिला.

  2. ग्राहक सेवा टीम, अपने सिस्टम में मारिया की सदस्यता की खरीदारी की जानकारी ढूंढती है. इसके बाद, purchases.subscriptionsv2.revoke को कॉल करके, पूरे रिफ़ंड का अनुरोध करती है.

  3. कस्टमर सेवा ने मारिया को बताया कि उसे सदस्यता के लिए चुकाई गई पूरी रकम रिफ़ंड कर दी जाएगी. साथ ही, अब वह इस प्लान की सदस्य नहीं है.

समय के हिसाब से रिफ़ंड

अगर आपको किसी सदस्यता को खत्म करना है और उसके बचे हुए समय के लिए कुछ हिस्सा रिफ़ंड करना है, तो सदस्यता के बचे हुए समय के हिसाब से रिफ़ंड जारी करें. purchases.subscriptionsv2.revoke फ़ंक्शन का इस्तेमाल करें और "proratedRefund": {} को रिफ़ंड टाइप के तौर पर सेट करें.

उदाहरण:

  1. मारिया ने SuperMovies स्ट्रीमिंग के हर महीने के प्लान की 30 दिनों की सदस्यता ली है, जो अपने-आप रिन्यू हो जाती है. वह कुछ समय से इस सेवा का इस्तेमाल कर रही है. मारिया ने बिलिंग साइकल के 15वें दिन ग्राहक सेवा से संपर्क किया. उसने बताया कि वह विदेश जा रही है और अगले दिन से इस सेवा का इस्तेमाल नहीं कर पाएगी.

  2. ग्राहक सेवा टीम, अपने सिस्टम में मारिया की सदस्यता की खरीदारी की जानकारी ढूंढती है. इसके बाद, वह purchases.subscriptionsv2.revoke को कॉल करके, बचे हुए समय के लिए रिफ़ंड का अनुरोध करती है.

  3. कस्टमर सर्विस ने मारिया को बताया कि उसे सदस्यता के लिए चुकाए गए शुल्क का करीब 50% रिफ़ंड मिलेगा. साथ ही, उसे यह भी बताया कि सेवा को ऐक्सेस करने की सुविधा तुरंत खत्म कर दी जाएगी.