Google Play Billing के बाहर कमाई करने की सुविधा के लिए, बैकएंड इंटिग्रेशन के दिशा-निर्देश

Google Play Developer API में अब ज़्यादा किसी अन्य बिलिंग सिस्टम से होने वाले लेन-देन की रिपोर्ट करने की सुविधा या बाहरी ऑफ़र सिस्टम. इस गाइड में, विकल्प के तौर पर दिए गए विकल्प की शिकायत करने का तरीका बताया गया है बिलिंग या बाहरी ऑफ़र से जुड़े लेन-देन.

आपके इन-ऐप्लिकेशन को मैनेज करने के लिए कुछ कॉम्पोनेंट की ज़रूरत पड़ सकती है अपने बैकएंड से खरीदारी करते हैं. इन्हें बनाने के लिए, आपको अपना बैकएंड सेट अप करना होगा Google Play Developer API को कॉन्फ़िगर करना लेख में बताए गए तरीके से इंटिग्रेट करें. इसके लिए डेवलपर की सभी बैकएंड सुविधाएं, जो अन्य बिलिंग सिस्टम से जुड़ी नहीं हैं या External Offers API के बारे में बताया गया है, तो Google Play के बिलिंग सिस्टम से जुड़े दस्तावेज़ लागू होते हैं.

Google Play को नए बाहरी लेन-देन की रिपोर्ट करना

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

बाहरी लेन-देन की रिपोर्टिंग

किसी बाहरी लेन-देन की शिकायत करने के लिए, आपको Externaltransactions API पर कॉल करना चाहिए अन्य बिलिंग सिस्टम का इस्तेमाल करके किए गए पेमेंट के बाद या बाहरी ऑफ़र सिस्टम. यह शुरुआत में किए गए लेन-देन के साथ-साथ सभी लेन-देन पर लागू होता है शुल्क, रिन्यूअल, रिफ़ंड वगैरह. सभी लेन-देन जो ट्रांज़ैक्शन होने के 24 घंटे के अंदर रिपोर्ट किए गए हों.

हर बाहरी ट्रांज़ैक्शन को किसी बाहरी ट्रांज़ैक्शन आईडी से रिपोर्ट किया जाता है. इसके लिए बार-बार की जाने वाली खरीदारी (जैसे कि अपने-आप रिन्यू होने वाली सदस्यताएं) के लिए, आपको बार-बार होने वाले पहले लेन-देन से जुड़ा बाहरी लेन-देन आईडी बाद के किसी भी लेन-देन के लिए, पैरामीटर के तौर पर खरीदारी करते हैं. इसमें रिफ़ंड भी शामिल हैं. यह इस खरीदारी के लिए लेन-देन की सीरीज़ को रिकॉर्ड करता है. नया बाहरी मैसेज भेजें प्रॉडक्ट में बदलाव होने पर, खरीदारी का ट्रांज़ैक्शन आईडी. जैसे, अपग्रेड या डाउनग्रेड न करें) या बार-बार होने वाला लेन-देन रद्द कर दिया गया हो या उसकी समयसीमा खत्म हो गई हो और वह पहले जैसा ही हो प्रॉडक्ट को बाद में खरीदा जाता है. आपको व्यक्तिगत रूप से पहचान योग्य कोई जानकारी शामिल नहीं करनी चाहिए बाहरी डोमेन के हिस्से के तौर पर ट्रांज़ैक्शन आईडी.

नई खरीदारी की शिकायत करना

हर बार जब अन्य बिलिंग सिस्टम का इस्तेमाल करके नई खरीदारी की जाए या बाहरी ऑफ़र सिस्टम के लिए, Externaltransactions API को कॉल किया जाएगा आवश्यक. इन नई खरीदारी के लिए, आपको किसी यूनीक की जानकारी देनी होगी क्वेरी के तौर पर, आपके बैकएंड में खरीदारी से जुड़ा externalTransactionId पैरामीटर. इस externalTransactionId को समान ऐप्लिकेशन में फिर से इस्तेमाल नहीं किया जा सकता पैकेज आईडी.

इस externalTransactionToken के ज़रिए ऐप्लिकेशन को मिले UserChoiceBillingListener, AlternativeBillingOnlyReportingDetailsListener, या ExternalOfferReportingDetailsListener कॉलबैक की ज़रूरत भी होती है आपके अनुरोध का मुख्य हिस्सा, बार-बार की जाने वाली खरीदारी (जैसे कि सदस्यता). दोनों ही मामलों में, इसे शुरुआती लेन-देन. शुरुआती लेन-देन के बाद, externalTransactionToken अब ज़रूरी नहीं है और आपने इसके बाद शिकायत की है लेन-देन (जैसे कि सदस्यता के रिन्यूअल) externalTransactionId. खरीदारी के लिए बाद के लेन-देन की शिकायत करना देखें पर जाएं.

उदाहरण:

  1. डेवलपर अपने ऐप्लिकेशन में, अन्य बिलिंग सिस्टम को कॉन्फ़िगर और चालू करता है.
  2. उपयोगकर्ता 1 दक्षिण कोरिया में है और यह ऐसे देश में है जहां यह सुविधा उपलब्ध है. साथ ही, वह खरीदारी करने की कोशिश कर रहा है product1 में, 12,634.10KRW/महीने में आज़माएं. साथ ही, एक महीने बिना किसी शुल्क के आज़माने का ऑफ़र पाएं.
  3. ऐप्लिकेशन, product1 के लिए ProductDetails के साथ परचेज़ फ़्लो लॉन्च करता है और उपयोगकर्ता ने जो ऑफ़र चुना है.
  4. उपयोगकर्ता 1, डेवलपर का अन्य बिलिंग सिस्टम चुनता है.
  5. UserChoiceBillingListener को my_token externalTransactionToken.
  6. इसके बाद डेवलपर, ज़रूरी जानकारी अपने बैकएंड को भेजता है (externalTransactionToken वैल्यू और प्रॉडक्ट खरीदे जा रहे हैं). इसके बाद, अन्य बिलिंग सिस्टम में, product1 के लिए परचेज़ फ़्लो लॉन्च करें. इस लेन-देन को डेवलपर की ओर से एक खास लेन-देन आईडी असाइन किया गया है जिसका इस्तेमाल करके, Google Play को इसकी जानकारी दी जाती है: 123-456-789. ट्रांज़ैक्शन आईडी ज़रूरी है, भले ही उपयोगकर्ता को मुफ़्त में आज़माने की सुविधा मिल रही हो.
  7. खरीदारी का लेन-देन, अन्य बिलिंग सिस्टम के ज़रिए होता है सिस्टम, डेवलपर उस लेन-देन की रिपोर्ट Google Play को . शुरुआत में इसे शून्य डॉलर के लेन-देन के तौर पर रिपोर्ट किया गया है क्योंकि उपयोगकर्ता को एक महीना मुफ़्त में मिलता है.
POST /androidpublisher/v3/applications/com.myapp.android/externalTransactions?externalTransactionId=123-456-789

Body
 {
"originalPreTaxAmount" : {
   "priceMicros": "0",
   "currency": "KRW"
 },
 "originalTaxAmount" : {
   "priceMicros": "0",
   "currency": "KRW"
 },
"transactionTime" : "2022-02-22T12:45:00Z",
 "recurringTransaction" : {
   "externalTransactionToken": "my_token",
   "externalSubscription" {
     "subscriptionType": "RECURRING"
   }
 },
 "userTaxAddress" : {
   "regionCode": "KR"
 }
}

भारत में रहने वाले ऐसे उपयोगकर्ता के साथ लेन-देन करने पर लगने वाला टैक्स अलग-अलग होता है. यह इस बात पर निर्भर करता है कि (जैसे कि राज्य या प्रांत) के लिए, तो उसे शामिल करना न भूलें usertaxAddress के तहत आने वाला क्षेत्र होता है. इसमें स्ट्रिंग की पहले से तय सूची देखें लागू एडमिन एरिया के लिए एपीआई रेफ़रंस गाइड.

POST /androidpublisher/v3/applications/com.myapp.android/externalTransactions?externalTransactionId=123-456-789

Body
 {
"originalPreTaxAmount" : {
   "priceMicros": "0",
   "currency": "INR"
 },
 "originalTaxAmount" : {
   "priceMicros": "0",
   "currency": "INR"
 },
"transactionTime" : "2023-11-01T12:45:00Z",
 "recurringTransaction" : {
   "externalTransactionToken": "my_token",
   "externalSubscription" {
     "subscriptionType": "RECURRING"
   }
 },
 "userTaxAddress" : {
   # Tax varies in India based on state, so include that information in
   # administrativeArea
   "regionCode": "IN"
   "administrativeArea": "KERALA"
 }
}

किसी खरीदारी के लिए बाद के लेन-देन की रिपोर्ट करना

कुछ मामलों में, एक ही किसी बाहरी व्यक्ति से की जाने वाली खरीदारी, जैसे कि सदस्यता के रिन्यूअल या प्रीपेड प्लान के टॉप-अप. बाद के इन लेन-देन की रिपोर्ट, उसी एपीआई का इस्तेमाल करके रिपोर्ट की जा सकती है: Externaltransactions. नई खरीदारी की शिकायत करना लेख के मुताबिक, बाद के लेन-देन के लिए, externalTransactionToken की ज़रूरत नहीं है. इसके बजाय, हर एक के लिए क्वेरी पैरामीटर के तौर पर एक नया यूनीक externalTransactionId भेजा जाता है रिन्यूअल या टॉप-अप लेन-देन, जिसमें शुरुआती लेन-देन का आईडी शामिल हो initialExternalTransactionId फ़ील्ड में.

ऊपर दिए गए उदाहरण के मुताबिक:

  1. उपयोगकर्ता 1 का पहला रिन्यूअल, किसी अन्य बिलिंग सिस्टम का इस्तेमाल करके किया जाता है. नाम का पहला अक्षर ट्रांज़ैक्शन आईडी 123-456-789 था.
  2. डेवलपर, यूआरएल क्वेरी पैरामीटर में बार-बार होने वाले लेन-देन की जानकारी देता है इस नए लेन-देन के लिए बाहरी लेन-देन आईडी के तौर पर जोड़ें. ऐसा करते समय, initialExternalTransactionId फ़ील्ड.

अनुरोध का उदाहरण:

POST /androidpublisher/v3/applications/com.myapp.android/externalTransactions?externalTransactionId=abc-def-ghi

Body
 {
"originalPreTaxAmount" : {
   "priceMicros": "12634000000",
   "currency": "KRW"
 },
 "originalTaxAmount" : {
   "priceMicros": "1263000000",
   "currency": "KRW"
 },
"transactionTime" : "2022-02-22T12:45:00Z",
 "recurringTransaction" : {
   "initialExternalTransactionId": "123-456-789",

   "externalSubscription" {
     "subscriptionType": "RECURRING"
   }
 },
 "userTaxAddress" : {
   "regionCode": "KR"
 }
}

अपग्रेड या डाउनग्रेड करने की शिकायत करना

अपग्रेड या डाउनग्रेड की शिकायत करने के लिए, जब उपयोगकर्ता के पास सदस्यता का मालिकाना हक हो अन्य बिलिंग सिस्टम, जिसमें उसी एंडपॉइंट और फ़ंक्शन का इस्तेमाल किया जाता है Externaltransactions एपीआई, externalTransactionToken को भेजा जा रहा है लेन-देन को अपग्रेड या डाउनग्रेड करने के लिए ऐप्लिकेशन में दिया जाता है. यह तरीका काम करता है ठीक उसी तरह जैसे नई खरीदारी की शिकायत करने के लिए किया जाता है.

अन्य बिलिंग सिस्टम वाले लेन-देन की मैन्युअल रिपोर्टिंग से माइग्रेट करना

अगर सदस्यता लेने का विकल्प ऑफ़र किया जा रहा था, तो चालू सदस्यताओं को माइग्रेट करने के लिए बिलिंग विकल्प चुनने के बाद, बिना कोई शुल्क दिए नया लेन-देन करें. इसके लिए, तो migratedTransactionProgram फ़ील्ड में initialExternalTransactionId या externalTransactionToken. सेट करें हर सक्रिय गतिविधि के लिए उपयोगकर्ता के साइन अप करने तक transactionTime की सदस्यता लें. इसके बाद, इनके लिए बाद के हर लेन-देन की सूचना दें एपीआई के ज़रिए सामान्य तौर पर ली गई सदस्यताओं के साथ-साथ, initialExternalTransactionId का इस्तेमाल, रिन्यूअल वाले लेन-देन करने के लिए किया गया. सदस्यता माइग्रेट हो जाने के बाद, आपको मैन्युअल तरीके से शिकायत करने की ज़रूरत नहीं होगी सदस्यता के लिए बाद के लेन-देन पर लागू होते हैं, बशर्ते वे इस पेज में बताए गए ऑटोमेटेड तरीकों से रिपोर्ट की गई है.

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

migratedTransactionProgram फ़ील्ड का इस्तेमाल सिर्फ़ तब किया जा सकता है, जब मैन्युअल रिपोर्टिंग. मैन्युअल तरीके से रिपोर्ट भेजने की सुविधा बंद होने पर, यह तरीका काम नहीं करेगा समर्थित हैं.

अनुरोध का उदाहरण:

# Note that the externalTransactionId specified here will used to report subsequent
# transactions.

POST /androidpublisher/v3/applications/com.myapp.android/externalTransactions?externalTransactionId=abc-def-ghi

Body
 {
 # Be sure to set the price to 0 for this transaction since it does not reflect
 # an actual subscription renewal.
 "originalPreTaxAmount" : {
   "priceMicros": "0",
   "currency": "KRW"
 },
 "originalTaxAmount" : {
   "priceMicros": "0",
   "currency": "KRW"
 },

 # The transaction time should be set to when the user signed up for this
 # subscription.
 "transactionTime" : "2022-02-22T12:45:00Z",
  "recurringTransaction" : {
    "migratedTransactionProgram": "USER_CHOICE_BILLING",

    "externalSubscription" {
      "subscriptionType": "RECURRING"
    }
  },
 "userTaxAddress" : {
   "regionCode": "KR"
 }
}

Play के पार्टनर कार्यक्रमों की शिकायत करना

Partner Program में शामिल डेवलपर, जैसे कि Play Media Experience Program को बाहरी लेन-देन की रिपोर्ट करते समय transaction_program_code. अगर आप साइन इन करने के लिए, कृपया अपने बिज़नेस डेवलपमेंट मैनेजर से संपर्क करें इस फ़ील्ड को सेट करने के बारे में जानकारी.

Google Play को खरीदारी के रिफ़ंड की शिकायत करना

जिन लेन-देन के रिफ़ंड हुए हैं उनकी रिपोर्ट करने के लिए, उन्हें Externaltransactions API के साथ इंटिग्रेट करें Google Play के बिलिंग सिस्टम से बाहर के उपयोगकर्ताओं के लिए. Play के लिए, सही तरीके से लेन-देन का रिफ़ंड कर दिया गया है, तो आपको externalTransactionId यूआरएल पैरामीटर.

सदस्यता की खरीदारी के रिफ़ंड की रिपोर्ट करते समय, सदस्यता को बार-बार किए जाने वाले शुल्क का externalTransactionId रिफ़ंड किया जा रहा है.

उदाहरण: मान लीजिए कि किसी सदस्यता में ये लेन-देन किए गए हैं:

  • बाहरी लेन-देन आईडी के साथ शुरुआती लेन-देन ABC.1234-5678-9012-34567
  • बाहरी लेन-देन आईडी की मदद से बार-बार होने वाला पहला लेन-देन ABC.1234-5678-9012-34567..0
  • बाहरी लेन-देन आईडी के साथ बार-बार होने वाला दूसरा लेन-देन ABC.1234-5678-9012-34567..1

सदस्यता के सभी लेन-देन के रिफ़ंड की शिकायत करने के लिए, आपको रिफ़ंड के तीन अलग-अलग अनुरोध होते हैं: एक शुरुआती लेन-देन के लिए और दो बाद के लेन-देन पर लागू नहीं होता है.

इस तरीके से सभी रिफ़ंड स्वीकार किए जाते हैं (जहां रकम, उतनी ही रकम हो जो उपयोगकर्ता ने मूल बाहरी लेन-देन) और कुछ हिस्से के रिफ़ंड (जहां रकम, मूल बाहरी इनवॉइस में दी गई रकम से कम है लेन-देन). आंशिक रिफ़ंड के लिए, आपको टैक्स से पहले की वह रकम बतानी होगी जो की धन वापसी की गई.

एपीआई कोटा

Externaltransactions API पर, रोज़ाना एपीआई कोटा लागू होता है की तरह ही, Google Play Developer API के किसी भी दूसरे एंडपॉइंट की तरह ही काम करता है.

इसके अलावा, Externaltransactions एपीआई में हर मिनट 1,200 क्वेरी शामिल होती हैं Externaltransactions.createexternaltransaction पर किए जाने वाले कॉल के लिए (क्यूपीएम) की सीमा या Externaltransactions.refundexternaltransaction. इन पर कॉल इस 1,200 क्यूपीएम में Externaltransactions.getexternaltransaction को शामिल नहीं किया जाता सीमा तय करें.