- Home /
 
 
               Question by 
               shahin2019 · Aug 24, 2019 at 12:41 PM · 
                unity 5unity 2dscriptingprobleminapp purchasegoogle-play-store  
              
 
              How can I made a In app Purchase code (google play store) for unity 2019.1.9 ?
How can I made a In app Purchase code (google play store) for unity 2019.1.9 ?
Because I used from below code but it did not work what is my problem please help me please I need answer quickly
    using System;
 using System.Collections.Generic;
 using UnityEngine;
 using UnityEngine.Purchasing;
 
 
 public class ShopManager2 : MonoBehaviour, IStoreListener{
 public static ShopManager2 Instance{ set; get;}
 private static IStoreController m_StoreController;          
 private static IExtensionProvider m_StoreExtensionProvider; 
     public static string PRODUCT_gold = "com.de.ss.gold";
     private void Awake(){
         Instance = this;
     }
 private void Start()
 {
 
 if (m_StoreController == null)
 {
 
 InitializePurchasing();
 }
 }
 
 public void InitializePurchasing() 
 {
 // If we have already connected to Purchasing ...
 if (IsInitialized())
 {
 // ... we are done here.
 return;
 }
 
 // Create a builder, first passing in a suite of Unity provided stores.
         var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
 
 builder.AddProduct(PRODUCT_gold, ProductType.Consumable);
 
 UnityPurchasing.Initialize(this, builder);
 }
 private bool IsInitialized()
 {
 // Only say we are initialized if both the Purchasing references are set.
 return m_StoreController != null && m_StoreExtensionProvider != null;
             }
 
     public void golds()
     {
         BuyProductID(PRODUCT_gold);
     }
             /*public void BuyNonConsumable()
             {
                 // Buy the non-consumable product using its general identifier. Expect a response either 
                 // through ProcessPurchase or OnPurchaseFailed asynchronously.
                 BuyProductID(kProductIDNonConsumable);
             }
 
 
             public void BuySubscription()
             {
                 // Buy the subscription product using its the general identifier. Expect a response either 
                 // through ProcessPurchase or OnPurchaseFailed asynchronously.
                 // Notice how we use the general product identifier in spite of this ID being mapped to
                 // custom store-specific identifiers above.
                 BuyProductID(kProductIDSubscription);
             }*/
 
 
     private void BuyProductID(string productId)
             {
                 // If Purchasing has been initialized ...
                 if (IsInitialized())
                 {
                     // ... look up the Product reference with the general product identifier and the Purchasing 
                     // system's products collection.
                     Product product = m_StoreController.products.WithID(productId);
 
                     // If the look up found a product for this device's store and that product is ready to be sold ... 
                     if (product != null && product.availableToPurchase)
                     {
                         Debug.Log(string.Format("Purchasing product asychronously: '{0}'", product.definition.id));
                         // ... buy the product. Expect a response either through ProcessPurchase or OnPurchaseFailed 
                         // asynchronously.
                         m_StoreController.InitiatePurchase(product);
                     }
                     // Otherwise ...
                     else
                     {
                         // ... report the product look-up failure situation  
                         Debug.Log("BuyProductID: FAIL. Not purchasing product, either is not found or is not available for purchase");
                     }
                 }
                 // Otherwise ...
                 else
                 {
                     // ... report the fact Purchasing has not succeeded initializing yet. Consider waiting longer or 
                     // retrying initiailization.
                     Debug.Log("BuyProductID FAIL. Not initialized.");
                 }
             }
 
 
         /*  // Restore purchases previously made by this customer. Some platforms automatically restore purchases, like Google. 
             // Apple currently requires explicit purchase restoration for IAP, conditionally displaying a password prompt.
             public void RestorePurchases()
             {
                 // If Purchasing has not yet been set up ...
                 if (!IsInitialized())
                 {
                     // ... report the situation and stop restoring. Consider either waiting longer, or retrying initialization.
                     Debug.Log("RestorePurchases FAIL. Not initialized.");
                     return;
                 }
 
                 // If we are running on an Apple device ... 
                 if (Application.platform == RuntimePlatform.IPhonePlayer || 
                     Application.platform == RuntimePlatform.OSXPlayer)
                 {
                     // ... begin restoring purchases
                     Debug.Log("RestorePurchases started ...");
 
                     // Fetch the Apple store-specific subsystem.
                     var apple = m_StoreExtensionProvider.GetExtension<IAppleExtensions>();
                     // Begin the asynchronous process of restoring purchases. Expect a confirmation response in 
                     // the Action<bool> below, and ProcessPurchase if there are previously purchased products to restore.
                     apple.RestoreTransactions((result) => {
                         // The first phase of restoration. If no more responses are received on ProcessPurchase then 
                         // no purchases are available to be restored.
                         Debug.Log("RestorePurchases continuing: " + result + ". If no further messages, no purchases available to restore.");
                     });
                 }
                 // Otherwise ...
                 else
                 {
                     // We are not running on an Apple device. No work is necessary to restore purchases.
                     Debug.Log("RestorePurchases FAIL. Not supported on this platform. Current = " + Application.platform);
                 }
             }*/
 
 
 
             public void OnInitialized(IStoreController controller, IExtensionProvider extensions)
             {
                 // Purchasing has succeeded initializing. Collect our Purchasing references.
                 Debug.Log("OnInitialized: PASS");
 
                 // Overall Purchasing system, configured with products for this application.
                 m_StoreController = controller;
                 // Store specific subsystem, for accessing device-specific store features.
                 m_StoreExtensionProvider = extensions;
             }
 
 
             public void OnInitializeFailed(InitializationFailureReason error)
             {
                 // Purchasing set-up has not succeeded. Check error for reason. Consider sharing this reason with the user.
                 Debug.Log("OnInitializeFailed InitializationFailureReason:" + error);
             }
 
 
             public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs args) 
             {
                 // A consumable product has been purchased by this user.
 
         if (String.Equals(args.purchasedProduct.definition.id,PRODUCT_gold, StringComparison.Ordinal))
         {
             shopping.buy30 =2002;
 
 
             //DataHelper.instance.SaveState.Gold +=100;
             // TODO: The non-consumable item has been successfully purchased, grant this item to the player.
         }
                 // Or ... an unknown product has been purchased by this user. Fill in additional products here....
                 else 
         { 
                     Debug.Log(string.Format("ProcessPurchase: FAIL. Unrecognized product: '{0}'", args.purchasedProduct.definition.id));
                 }
 
                 return PurchaseProcessingResult.Complete;
             }
 
 
             public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason)
             {
                 // A product purchase attempt did not succeed. Check failureReason for more detail. Consider sharing 
                 // this reason with the user to guide their troubleshooting actions.
                 Debug.Log(string.Format("OnPurchaseFailed: FAIL. Product: '{0}', PurchaseFailureReason: {1}", product.definition.storeSpecificId, failureReason));
             }
         }
 
              
               Comment
              
 
               
              Your answer