Unity के साथ Google Play Billing Library का इस्तेमाल करना

Google Play Billing प्लगिन, Unity की पहले से मौजूद सेवाओं और इन-ऐप्लिकेशन खरीदारी के लिए ऐसेट, जिसे Unity कहा जाता है IAP, बनाने के लिए Google Play Billing Library की सभी नई सुविधाओं के साथ अपने गेम को मैनेज करें. यह गाइड में बताया गया है कि प्लगिन का इस्तेमाल करने के लिए, प्रोजेक्ट कैसे सेट अप करें. इस गाइड में यह भी इसमें, Unity में आपके गेम में Google Play Billing Library की सुविधाओं को लागू करने का तरीका बताया गया है.

Google Play Billing प्लगिन सेट अप करना

प्लगिन को सेट अप करने के लिए, लिंक किए गए इन हर सेक्शन में दिए गए चरणों को पूरा करें:

  1. Unity IAP ऐब्स्ट्रैक्ट लेयर को चालू करें.
  2. प्लग इन डाउनलोड और इंपोर्ट करें.
  3. प्लग इन की बिल्ड सेटिंग कॉन्फ़िगर करें.
  4. प्लग इन चालू करें.

Unity IAP ऐब्स्ट्रैक्ट लेयर को चालू करें

Google Play Billing प्लगिन को Unity IAP, इसलिए आपको डाउनलोड करने से पहले इस ऐब्स्ट्रैक्ट लेयर को चालू करना होगा और प्लगिन को इंपोर्ट करें. Unity IAP ऐब्स्ट्रैक्ट लेयर को चालू करने के लिए, यह करें फ़ॉलो किया जा रहा है:

  1. Unity ट्यूटोरियल में दिए गए सभी चरणों को पूरा करें: अपना प्रोजेक्ट सेट अप करें Unity Services के लिए उपलब्ध है.
  2. नीचे दिए गए Unity ट्यूटोरियल में दिए गए सभी चरणों को पूरा करें: Unity IAP को चालू करें सेवा.

प्लग इन डाउनलोड और इंपोर्ट करें

प्लगिन को .unitypackage फ़ॉर्मैट. प्लगइन को डाउनलोड और आयात करने के लिए, इन चरणों का पालन करें:

  1. Unity के लिए, Google Play के प्लगिन की सबसे नई रिलीज़ को रिपॉज़िटरी के GitHub पर रिलीज़ पेज पर जाएं.
  2. Unity मेन्यू बार में, ऐसेट > पैकेज इंपोर्ट करें > पसंद के मुताबिक पैकेज.

  3. पता करें कि आपने .unitypackage फ़ाइल कहां डाउनलोड की थी और उसे चुनें.

  4. Unity पैकेज को इंपोर्ट करें डायलॉग में, सभी ऐसेट को चुना हुआ रहने दें और इंपोर्ट करें.

पैकेज इंपोर्ट होने के बाद, GooglePlayप्लगिन नाम का एक नया फ़ोल्डर ( एसेट फ़ोल्डर का रूट), आपके प्रोजेक्ट की एसेट में जोड़ दिया जाता है. यह फ़ोल्डर इसमें प्लगिन के लिए, Google Play Billing Library की सभी ऐसेट मौजूद होती हैं.

बिल्ड सेटिंग कॉन्फ़िगर करें

यह प्लगिन, Unity IAP को बढ़ाता है. इस वजह से, Unity कई समस्याओं का सामना करेगा और इन पर कार्रवाई नहीं कर पाएगा Unity IAP में कुछ पुरानी, ओवरलैप होने वाली डिपेंडेंसी होने तक Android APK बनाना बिल्ड से हटा दिए जाते हैं. प्लग इन, आपके प्रोजेक्ट की कॉन्फ़्लिक्टिंग लाइब्रेरी होती हैं. इन विवादों को हल करने के लिए, यह तरीका अपनाएं:

  1. Unity मेन्यू बार से, Google > Play Billing > बिल्ड सेटिंग.

  2. Play Billing की बिल्ड सेटिंग विंडो में, ठीक करें पर क्लिक करें. इससे समस्या हल हो जाती है विरोध करता है और विरोधी Unity IAP फ़ाइलों को एक बैकअप डायरेक्ट्री में ले जाता है. इस तारीख के बाद ठीक करें पर क्लिक करने के बाद, बटन वापस लाएं में बदल जाता है. इसे क्लिक करके साथ ही, मूल, विरोधी फ़ाइलों को वापस लाया जा सकता है.

प्लग इन चालू करें

प्लगिन को चालू करने के लिए, Unity IAP को Google Play पर लागू होने वाली प्रोसेस को इसके साथ बदलें Google Play Billing प्लगिन. उदाहरण के लिए, Unity IAP ख़रीदार का इस्तेमाल करते समय स्क्रिप्ट, तो आपको आईएपी बिल्डर में पास किए गए StandardPurchaseModule को बदलना होगा Google.Play.Billing.GooglePlayStoreModule का इस्तेमाल करने के लिए:

// Create a builder using the GooglePlayStoreModule.
var configurationBuilder =
    ConfigurationBuilder.Instance(Google.Play.Billing.GooglePlayStoreModule.Instance());

अगर आपका गेम एक से ज़्यादा प्लैटफ़ॉर्म के लिए, एक ही खरीदार स्क्रिप्ट का इस्तेमाल करता है, तो को प्लैटफ़ॉर्म की जांच करनी चाहिए, ताकि यह पक्का किया जा सके कि Unity दूसरे प्लैटफ़ॉर्म के लिए खुद का IAP समाधान:

ConfigurationBuilder builder;
if (Application.platform == RuntimePlatform.Android)
{
  builder = ConfigurationBuilder.Instance(
      Google.Play.Billing.GooglePlayStoreModule.Instance());
}
else
{
  builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
}

अगर आपने गेम को Google Play के अलावा, Android के किसी अन्य ऐप स्टोर पर पब्लिश किया है स्टोर करें, तो आपको डिफ़ॉल्ट Unity IAP लागू करने की प्रक्रिया को सिर्फ़ तब बदलना चाहिए, जब आपने Google Play Store को चुना है:

ConfigurationBuilder builder;
if (Application.platform == RuntimePlatform.Android
       && SelectedAndoidAppStore == AppStore.GooglePlay)
{
  builder = ConfigurationBuilder.Instance(
      Google.Play.Billing.GooglePlayStoreModule.Instance());
}
else
{
  builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
}

अपने गेम में, Google Play Billing Library की सुविधाएं लागू करें

Google Play Billing प्लगिन, Unity IAP सेवाओं का दायरा बढ़ाता है, ताकि आप Unity API का इस्तेमाल, खरीदारी के सामान्य वर्कफ़्लो को मैनेज करने के लिए किया जा सके. ध्यान दें कि कुछ एपीआई के काम करने के तरीके में हुए मामूली बदलाव Google Play Billing Library और Unity के स्टैंडर्ड IAP में अंतर की वजह से अन्य ऐप स्टोर पर लागू करने की सुविधा मिलती है. अगर आपने Unity IAP API का इस्तेमाल पहले कभी नहीं किया है, तो यहां देखें "खरीदारी स्क्रिप्ट बनाना" Unity IAP के एक सेक्शन में ट्यूटोरियल पर, खरीदारी के बुनियादी फ़्लो को लागू करने के तरीके का उदाहरण दिया गया है.

Google Play Billing Library में कुछ ऐसी सुविधाएं भी हैं जो Google के लिए खास तौर पर उपलब्ध हैं Play Store पर टैप करें. इन सुविधाओं को बड़े इंटरफ़ेस की मदद से ऐक्सेस किया जा सकता है. कॉन्टेंट बनाने इस सेक्शन के बाकी हिस्से में, Google Play Billing Library के इन यूनीक वर्शन को लागू करने का तरीका बताया गया है सुविधाएं उपलब्ध हैं.

स्थगित खरीदारी को चालू करें

Google Play, स्थगित खरीदारी की सुविधा का इस्तेमाल करता है. इसे मंज़ूरी बाकी है लेन-देन या लंबित खरीदारी—जहां उपयोगकर्ता कैश इन का इस्तेमाल करके खरीदारी कर सकते हैं और बाद में उसे पूरा कर सकते हैं स्टोर.

स्थगित खरीदारी को चालू करने के लिए, अपने मॉड्यूल के मॉड्यूल में बदलाव करने के लिए IAP बिल्डर का इस्तेमाल करें कॉन्फ़िगरेशन के लिए, EnableDeferredPurchase() तरीका इस्तेमाल करने का तरीका:

// Create a builder using a GooglePlayStoreModule.
var configurationBuilder =
    ConfigurationBuilder.Instance(Google.Play.Billing.GooglePlayStoreModule.Instance());
// Enable deferred purchases
configurationBuilder.Configure<Google.Play.Billing.IGooglePlayConfiguration>()
    .EnableDeferredPurchase();

इसके बाद, Play Store एक्सटेंशन का इस्तेमाल करके स्थगित खरीदारी कॉलबैक लागू करें:

// Get the plugin extensions for the Google Play Store.
_playStoreExtensions =
    extensions.GetExtension<Google.Play.Billing.IGooglePlayStoreExtensions>();

// Set the deferred purchases callback.
_playStoreExtensions.SetDeferredPurchaseListener(
    delegate(Product product)
    {
        // Do not grant the item here. Instead, record the purchase and remind
        // the user to complete the transaction in the Play Store.
    });

उलझाने वाले खाता आईडी, Google Play को पास करें

गलत इस्तेमाल को बढ़ावा देने के लिए, Google Play को उलझाने वाले यूज़र खाता आईडी भेजे जा सकते हैं पता लगाया जा सकता है, जैसे कि यह पता लगाना कि क्या कई डिवाइस एक ही कम समय में खाता बनाने में मदद मिलती है.

अस्पष्ट खाता आईडी पास करने के लिए, SetObfuscatedAccountId() तरीके को कॉल करें एक्सटेंशन API से:

// Get the plugin extensions for the Google Play Store.
_playStoreExtensions =
    extensions.GetExtension<Google.Play.Billing.IGooglePlayStoreExtensions>();

// Pass an obfuscated account ID.
_playStoreExtensions.SetObfuscatedAccountId(obfuscatedAccountId);

उलझाने वाले प्रोफ़ाइल आईडी, Google Play को पास करें

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

अस्पष्ट प्रोफ़ाइल आईडी पास करने के लिए, अपनी IAP बिल्डर SetObfuscatedProfileId() तरीका:

// Get the plugin extensions for the Google Play Store.
_playStoreExtensions =
    extensions.GetExtension<Google.Play.Billing.IGooglePlayStoreExtensions>();

// Pass an obfuscated profile ID.
_playStoreExtensions.SetObfuscatedProfileId(obfuscatedProfileId);

सदस्यताओं के लिए कीमत में हुए बदलावों की पुष्टि करें

Google Play आपको किसी चालू सदस्यता की कीमत बदलने की सुविधा देता है सदस्यता. आपका गेम के उपयोगकर्ताओं को कीमत में होने वाले किसी भी बदलाव की पुष्टि करनी होगी. यहां की यात्रा पर हूं उपयोगकर्ताओं से उनकी सदस्यता के लिए कीमत में बदलाव की पुष्टि करने के लिए कहें, तो ConfirmSubscriptionPriceChange() तरीका:

// Get the plugin extensions for the Google Play Store.
_playStoreExtensions =
    extensions.GetExtension<Google.Play.Billing.IGooglePlayStoreExtensions>();

_playStoreExtensions.ConfirmSubscriptionPriceChange(productId,
    delegate (bool success)
    {
        // Returns whether the user has accepted the new price or not.
    });

Unity API के काम करने के तरीके में बदलाव

जब Google Play Billing प्लगिन का इस्तेमाल किया जाता है, तो ज़्यादातर एपीआई बिलकुल उसी तरह जैसे दूसरे ऐप स्टोर के लिए, Unity के स्टैंडर्ड आईएपी को लागू किया जाता है. हालांकि, कुछ मामलों में, एपीआई अलग तरह से काम करते हैं. इस सेक्शन पर व्यवहार में अंतर के बारे में बताती है.

डेवलपर पेलोड की सुविधा उपलब्ध नहीं है

Google Play ने डेवलपर पेलोड को बंद कर दिया है. अब इसकी जगह अन्य डेवलपर पेलोड इस्तेमाल किए जा रहे हैं जो ज़्यादा काम के हों और काम के हों. इस वजह से, डेवलपर पेलोड यह है समर्थित नहीं. विकल्पों के बारे में ज़्यादा जानकारी पाने के लिए, डेवलपर पेलोड.

हालांकि, उन ही इंटरफ़ेस का इस्तेमाल किया जा सकता है जिन्हें Unity के स्टैंडर्ड के तहत तय किया गया है IStoreController के साथ-साथ अन्य ऐप स्टोर के लिए आईएपी (IAP) लागू करना. आसानी से अपने कैलेंडर में जोड़ें. खरीदारी शुरू करते हैं, तो आप अब भी IStoreController का इस्तेमाल कर सकते हैं और InitiatePurchase() तरीका:

public void InitiatePurchase(Purchasing.Product product, string payload);

हालांकि, आपका पास किया गया कोई भी पेलोड लागू नहीं होगा (यह अंतिम रसीद).

SubscriptionManager काम नहीं करता है

Unity IAP SubscriptionManager उपलब्ध कराता है क्लास का इस्तेमाल करें. क्योंकि Unity का स्टैंडर्ड IAP फ़ॉर्मैट, यह क्लास डेवलपर पेलोड का इस्तेमाल करती है, इसलिए यह क्लास काम नहीं करती. अब भी ये काम किए जा सकते हैं इस क्लास को बना लें, लेकिन हो सकता है कि आपको इनमें से किसी भी क्लास गेटर मेथड का इस्तेमाल करते हैं.

अपडेट सदस्यता में एपीआई से जुड़े छोटे बदलाव किए गए हैं

Google Play Billing प्लगिन, SubscriptionManager.UpdateSubscription() और अपग्रेड करने के SubscriptionManager.UpdateSubscriptionInGooglePlayStore() तरीके अपनी सदस्यताओं को डाउनग्रेड करने का विकल्प भी होता है. अगर आपके गेम में इन तरीकों का इस्तेमाल किया जाता है, तो GooglePlayStoreUnsupportedException को थ्रो किया गया है.

इनकी जगह, Google Play Billing Library का इस्तेमाल करने के लिए एक अन्य एपीआई उपलब्ध कराया गया है तरीकों का इस्तेमाल करना होगा. सदस्यता को अपग्रेड या डाउनग्रेड करने के लिए, UpdateSubscription() पर कॉल करें प्रोरेशन मोड का इस्तेमाल करें:

void UpdateSubscription(Product oldProduct, Product newProduct,
           GooglePlayStoreProrationMode prorationMode = GooglePlayStoreProrationMode.Unknown);

इस तरीके से मिले कॉल को प्लैटफ़ॉर्म की जांच या कैच ब्लॉक में पूरा किया जा सकता है जब GooglePlayStoreUnsupportedException पकड़ा जाता है.

प्रोरेशन मोड का इस्तेमाल करने के तरीके की ज़्यादा जानकारी और उदाहरणों के लिए, सेट करें प्रोरेशन मोड का इस्तेमाल करें.