IAP return PurchaseFailureReason Unknown. Android (Google Play)

Hello!
I have resently release my game in Google Play and now I trying to use IAP 2.2.1 codelsess system.
After pressing “Buy premium” button Google Play successfuly gets all the test or even real payments, and remember, that player gets this non-consumeble product…
But, at the same time unity IAP get PurchaseFailureReason Unknown.
Good thing - I was only one person who buy premium for real money just for test. Temporary I disable product that is used in released game in GP console. Now I use the same non-consumeble “cheep_premium” at the test build, so users can’t lose they money without getting product.

Please, help me to solve this problem!

There is stripped adb logcat:

01-08 11:37:34.480 16710 16728 I Unity   : Initializing UnityPurchasing via Codeless IAP
01-08 11:37:34.480 16710 16728 I Unity   : UnityEngine.Logger:Log(LogType, Object)
01-08 11:37:34.480 16710 16728 I Unity   : UnityEngine.Purchasing.CodelessIAPStoreListener:CreateCodelessIAPStoreListenerInstance()
01-08 11:37:34.480 16710 16728 I Unity   : UnityEngine.Purchasing.CodelessIAPStoreListener:get_Instance()
01-08 11:37:34.480 16710 16728 I Unity   : UnityEngine.Purchasing.IAPListener:OnEnable()
01-08 11:37:34.480 16710 16728 I Unity   :
01-08 11:37:34.480 16710 16728 I Unity   : (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
01-08 11:37:34.480 16710 16728 I Unity   :
01-08 11:37:34.514 16710 16728 I Unity   : UnityIAP Version: 2.2.5
01-08 11:37:34.514 16710 16728 I Unity   : UnityEngine.Logger:Log(Object)
01-08 11:37:34.514 16710 16728 I Unity   : UnityEngine.Purchasing.StandardPurchasingModule:Instance(AppStore)
01-08 11:37:34.514 16710 16728 I Unity   : UnityEngine.Purchasing.CodelessIAPStoreListener:InitializePurchasing()
01-08 11:37:34.514 16710 16728 I Unity   : UnityEngine.Purchasing.CodelessIAPStoreListener:get_Instance()
01-08 11:37:34.514 16710 16728 I Unity   : UnityEngine.Purchasing.IAPListener:OnEnable()
01-08 11:37:34.514 16710 16728 I Unity   :
01-08 11:37:34.514 16710 16728 I Unity   : (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
01-08 11:37:34.514 16710 16728 I Unity   :
01-08 11:37:36.834   439   484 I BufferQueueProducer: [SurfaceView - com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity#0](this:0xacbea000,id:1353,api:1,p:16710,c:439) queueBuffer: fps=8.83 dur=2832.20 max=2226.76 min=16.17
01-08 11:37:36.865 16710 16728 W Unity   : Unavailable product get_premium -get_premium
01-08 11:37:36.865 16710 16728 W Unity   : UnityEngine.Logger:LogFormat(LogType, String, Object[])
01-08 11:37:36.865 16710 16728 W Unity   : UnityEngine.Purchasing.PurchasingManager:CheckForInitialization()
01-08 11:37:36.865 16710 16728 W Unity   : UnityEngine.Purchasing.PurchasingManager:OnProductsRetrieved(List`1)
01-08 11:37:36.865 16710 16728 W Unity   : System.Action:Invoke()
01-08 11:37:36.865 16710 16728 W Unity   : UnityEngine.Purchasing.Extension.UnityUtil:Update()
01-08 11:37:36.865 16710 16728 W Unity   :
01-08 11:37:36.865 16710 16728 W Unity   : (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
01-08 11:37:36.865 16710 16728 W Unity   :
01-08 11:37:37.835   439   484 I BufferQueueProducer: [SurfaceView - com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity#0](this:0xacbea000,id:1353,api:1,p:16710,c:439) queueBuffer: fps=60.94 dur=1000.94 max=40.48 min=5.57
01-08 11:37:38.845   439   484 I BufferQueueProducer: [SurfaceView - com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity#0](this:0xacbea000,id:1353,api:1,p:16710,c:439) queueBuffer: fps=60.41 dur=1009.70 max=18.56 min=14.60
01-08 11:37:39.009 16710 16728 I Unity   : IAPButton.PurchaseProduct() with product ID: cheep_premium
01-08 11:37:39.009 16710 16728 I Unity   : UnityEngine.Logger:Log(LogType, Object)
01-08 11:37:39.009 16710 16728 I Unity   : UnityEngine.Purchasing.IAPButton:PurchaseProduct()
01-08 11:37:39.009 16710 16728 I Unity   : UnityEngine.Events.UnityAction:Invoke()
01-08 11:37:39.009 16710 16728 I Unity   : UnityEngine.Events.UnityEvent:Invoke()
01-08 11:37:39.009 16710 16728 I Unity   : UnityEngine.EventSystems.EventFunction`1:Invoke(T1, BaseEventData)
01-08 11:37:39.009 16710 16728 I Unity   : UnityEngine.EventSystems.ExecuteEvents:Execute(GameObject, BaseEventData, EventFunction`1)
01-08 11:37:39.009 16710 16728 I Unity   : UnityEngine.EventSystems.StandaloneInputModule:ProcessTouchPress(PointerEventData, Boolean, Boolean)
01-08 11:37:39.009 16710 16728 I Unity   : UnityEngine.EventSystems.StandaloneInputModule:ProcessTouchEvents()
01-08 11:37:39.009 16710 16728 I Unity   : UnityEngine.EventSystems.StandaloneInputModule:Process()
01-08 11:37:39.009 16710 16728 I Unity   :
01-08 11:37:39.009 16710 16728 I Unity   : (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
01-08 11:37:39.009 16710 16728 I Unity   :
01-08 11:37:39.019 16710 16728 I Unity   : purchase({0}): cheep_premium
01-08 11:37:39.019 16710 16728 I Unity   : UnityEngine.Logger:Log(String, Object)
01-08 11:37:39.019 16710 16728 I Unity   : UnityEngine.Purchasing.CodelessIAPStoreListener:InitiatePurchase(String)
01-08 11:37:39.019 16710 16728 I Unity   : UnityEngine.Events.UnityAction:Invoke()
01-08 11:37:39.019 16710 16728 I Unity   : UnityEngine.Events.UnityEvent:Invoke()
01-08 11:37:39.019 16710 16728 I Unity   : UnityEngine.EventSystems.EventFunction`1:Invoke(T1, BaseEventData)
01-08 11:37:39.019 16710 16728 I Unity   : UnityEngine.EventSystems.ExecuteEvents:Execute(GameObject, BaseEventData, EventFunction`1)
01-08 11:37:39.019 16710 16728 I Unity   : UnityEngine.EventSystems.StandaloneInputModule:ProcessTouchPress(PointerEventData, Boolean, Boolean)
01-08 11:37:39.019 16710 16728 I Unity   : UnityEngine.EventSystems.StandaloneInputModule:ProcessTouchEvents()
01-08 11:37:39.019 16710 16728 I Unity   : UnityEngine.EventSystems.StandaloneInputModule:Process()
01-08 11:37:39.019 16710 16728 I Unity   :
01-08 11:37:39.019 16710 16728 I Unity   : (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
01-08 11:37:39.019 16710 16728 I Unity   :


01-08 11:37:46.638 16710 16728 I Unity   : onPurchaseFailedEvent({0}): cheep_premium
01-08 11:37:46.638 16710 16728 I Unity   : UnityEngine.Logger:Log(String, Object)
01-08 11:37:46.638 16710 16728 I Unity   : UnityEngine.Purchasing.PurchasingManager:OnPurchaseFailed(PurchaseFailureDescription)
01-08 11:37:46.638 16710 16728 I Unity   : System.Action:Invoke()
01-08 11:37:46.638 16710 16728 I Unity   : UnityEngine.Purchasing.Extension.UnityUtil:Update()
01-08 11:37:46.638 16710 16728 I Unity   :
01-08 11:37:46.638 16710 16728 I Unity   : (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
01-08 11:37:46.638 16710 16728 I Unity   :
01-08 11:37:46.650 16710 16728 I Unity   : IAPButton.OnPurchaseFailed(Product UnityEngine.Purchasing.Product, PurchaseFailureReason Unknown)
01-08 11:37:46.650 16710 16728 I Unity   : UnityEngine.Logger:Log(LogType, Object)
01-08 11:37:46.650 16710 16728 I Unity   : UnityEngine.Purchasing.IAPButton:OnPurchaseFailed(Product, PurchaseFailureReason)
01-08 11:37:46.650 16710 16728 I Unity   : UnityEngine.Purchasing.CodelessIAPStoreListener:OnPurchaseFailed(Product, PurchaseFailureReason)
01-08 11:37:46.650 16710 16728 I Unity   : System.Action:Invoke()
01-08 11:37:46.650 16710 16728 I Unity   : UnityEngine.Purchasing.Extension.UnityUtil:Update()
01-08 11:37:46.650 16710 16728 I Unity   :
01-08 11:37:46.650 16710 16728 I Unity   : (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
01-08 11:37:46.650 16710 16728 I Unity   :
01-08 11:37:46.656 16710 16728 I Unity   : IAPListener.OnPurchaseFailed(Product UnityEngine.Purchasing.Product, PurchaseFailureReason Unknown)
01-08 11:37:46.656 16710 16728 I Unity   : UnityEngine.Logger:Log(LogType, Object)
01-08 11:37:46.656 16710 16728 I Unity   : UnityEngine.Purchasing.IAPListener:OnPurchaseFailed(Product, PurchaseFailureReason)
01-08 11:37:46.656 16710 16728 I Unity   : UnityEngine.Purchasing.CodelessIAPStoreListener:OnPurchaseFailed(Product, PurchaseFailureReason)
01-08 11:37:46.656 16710 16728 I Unity   : System.Action:Invoke()
01-08 11:37:46.656 16710 16728 I Unity   : UnityEngine.Purchasing.Extension.UnityUtil:Update()

Please use IAP 2.2.5 and In App Purchasing library 2.2.1 in Package Manager.

1 Like

Thank you, for quick answer, but, unfortunly, I already use this IAP versions:

I try to reload and reimport both IAP, and rebuild my app, but it give the same result - PurchaseFailureReason Unknown.

Did you publish to a test track on Google, then download the game as a tester via Google Play? You’ll want to follow the directions here Unity - Manual: Configuring for Google Play Store Once you download via Google Play the first time, then you can update your app locally via USB

Also, you would not want to use the OnPurchaseFailed callback for your On Purchase Failed method. If this is your own method, then it’s probably OK, but it matches a built-in method name. I doubt it would be related to your original Unknown error though. By the way, thanks for the screenshots, a good description and the log files. It makes it much easier to troubleshoot!

Yes. First time I’m release app as beta test, and download it as tester. Unfortunly I was focused on other things and wasn’t test IAP system as well, as I should.
Now I already make productive release and find out, that Google Play confirm both of test and real payments, but IAP return PurchaseFailureReason Unknown, so Player don’t get his product “Premium”.

There is info frome GP console:

And there is info from Unity Dashboard:

I use same version of app, that was in productive release on my local machine (1.07), and same package name ofc. Do I realy need to create new beta release to continue testing?

I will try to create new beta release soon, but, I think something else is wrong.

And thanks for your time too.
I use my own build-in log displayed in game:

 public void OnPurchaseFailed(Product product, PurchaseFailureReason reason)
    {
        LogPrint("Purchase was failed! " + reason.ToString());
    }

But I also trying to run app without OnPurchaseFailed method, and problem was the same.

Make sure to follow the documentation that I referred to earlier and ensure your “cheep_premium” product is available for purchase on your Google dashboard (and spelled the same way!) and there are no other warnings in your dashboard. What Android device are you testing on?

The product name is the same in Google play console and IAP - it was copyed and google play recognise it:

Also, when I was disable this product in GP Console the PurchaseFailureReason was changed to UnavailableProduct what is correct, I gues. Now I activeated pruduct and the failuere reason Unknown againe.
I test it on few devices:

  • Samsung P600 Galaxy Note 10.1 2014 Edition
  • zte blade a7 2020
  • Huawei P Smart Plus
    Also, I test it on “NoxPlayer” - Android Emulator.

Everywhere problem is the same.

Interesting observation:

  1. If I disable product in GP console, PurchaseFailureReason change to UnavailableProduct.
  2. When I was recently buy premium - Google say: ‘Ok’, and game say: PurchaseFailureReason Unknown.
    After that I try to buy it againe - Google say: ‘You already have this product’, and game say: PurchaseFailureReason Unknown.
    Hmm, while writing last part, I was sure there is a special failure reason for the case of already purchased product. But, it seems I was wrong and “Unknown” is Ok.
 public enum PurchaseFailureReason
    {
        PurchasingUnavailable = 0,
        ExistingPurchasePending = 1,
        ProductUnavailable = 2,
        SignatureInvalid = 3,
        UserCancelled = 4,
        PaymentDeclined = 5,
        DuplicateTransaction = 6,
        Unknown = 7
    }

Don’t know if somthing of that can be useful to troubleshoot…

Also, I created new test release in GP Console to check it on it, but it still on review.
If nothing of this wouldn’t help, then I probably should try to make my own script to initialization and buying products, or just wait for new IAP version.

Sorry, for my english, bytheway…:slight_smile:

We are looking into this

After another test release was confirmed and I was install new beta-app, there is no changes.

So, I diside to stop using codeles IAP:

  1. I turn off automatic initialization in IAP catalog:
  2. I write a IAPManager script based on MonoBehaviour and IStoreListener classes similar to example:
using UnityEngine.Purchasing;
using UnityEngine;

public class IAPManager : MonoBehaviour, IStoreListener
{
    private IStoreController m_StoreController;
    private IExtensionProvider m_StoreExtensionProvider;
    public Menu Menu;
 
    void Start()
    {
        if (m_StoreController == null)
        {
            var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
            // Let's add some products:
            builder.AddProduct("cheep_premium", ProductType.NonConsumable);

            UnityPurchasing.Initialize(this, builder);
        }
    }

    private bool IsInitialized()
    {
        return m_StoreController != null && m_StoreExtensionProvider != null;
    }

    public void BuyConsumable()
    {
    }

    public void BuyNonConsumable()
    {
        // Only noe product for now:
        BuyProductID("cheep_premium");
    }

    public void BuySubscription()
    {
        //BuyProductID("");
    }

    public void BuyProductID(string productID)
    {
        if (IsInitialized())
        {
            Product product = m_StoreController.products.WithID(productID);
            if(product != null && product.availableToPurchase)
            {
                Debug.Log(string.Format("Purchasing product asychronously: '{0}'", product.definition.id));
                m_StoreController.InitiatePurchase(product);
            }
            else
            {
                Debug.Log("BuyProductID: FAIL. Not purchasing product, either is not found or is not available for purchase");
            }
        }
    }
 
    public void OnInitialized(IStoreController controller, IExtensionProvider extensions)
    {
        m_StoreController = controller;
        m_StoreExtensionProvider = extensions;
        Menu.LogPrint("IAP Manager: IAP was Initialized");
        Debug.Log("IAP Manager: IAP was Initialized");
    }

    public void OnInitializeFailed(InitializationFailureReason error)
    {
        Debug.LogError(error.ToString());
        Menu.LogPrint("IAP Manager: IAP Initialize failed: " + error.ToString());
    }

    public void OnPurchaseFailed(Product product, PurchaseFailureReason reason)
    {
        Debug.LogError("IAP Manager: Purchase was failed with reason: " + reason.ToString());
        Menu.LogPrint("IAP Manager: Purchase was failed with reason: " + reason.ToString());
    }

    public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs product)
    {
        // Only one product for this game for now.
        Menu.BuyPremium(product.purchasedProduct);
        Menu.LogPrint("IAP Manager: Purchasing complete. Product: \n" + product.ToString());
        Debug.Log("IAP Manager: Purchasing complete. Product: \n" + product.purchasedProduct.metadata.localizedTitle);

        return PurchaseProcessingResult.Complete;
    }


    // 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);
        }
    }

}
  1. I remove IAP Button script from my “Get premium” button and add my function to OnClick listener:

And… there is still no changes… PurchaseFailureReason Unknown.

There is updated adb logcat (I was trying to buy premium about 3 times here):

01-09 23:36:53.030  4685  4703 I Unity   : UnityIAP Version: 2.2.5
01-09 23:36:53.030  4685  4703 I Unity   : UnityEngine.Logger:Log(Object)
01-09 23:36:53.030  4685  4703 I Unity   : UnityEngine.Purchasing.StandardPurchasingModule:Instance(AppStore)
01-09 23:36:53.030  4685  4703 I Unity   : IAPManager:Start()
01-09 23:36:53.030  4685  4703 I Unity   :
01-09 23:36:53.030  4685  4703 I Unity   : (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
01-09 23:36:53.030  4685  4703 I Unity   :
01-09 23:36:54.565   439   484 I BufferQueueProducer: [SurfaceView - com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity#0](this:0xaf046000,id:2172,api:1,p:4685,c:439) queueBuffer: fps=6.58 dur=4560.92 max=4017.27 min=16.05
01-09 23:36:54.571  4685  4703 I Unity   : IAP Manager: IAP was Initialized
01-09 23:36:54.571  4685  4703 I Unity   : UnityEngine.Logger:Log(LogType, Object)
01-09 23:36:54.571  4685  4703 I Unity   : UnityEngine.Purchasing.PurchasingManager:CheckForInitialization()
01-09 23:36:54.571  4685  4703 I Unity   : UnityEngine.Purchasing.PurchasingManager:OnProductsRetrieved(List`1)
01-09 23:36:54.571  4685  4703 I Unity   : System.Action:Invoke()
01-09 23:36:54.571  4685  4703 I Unity   : UnityEngine.Purchasing.Extension.UnityUtil:Update()
01-09 23:36:54.571  4685  4703 I Unity   :
01-09 23:36:54.571  4685  4703 I Unity   : (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
01-09 23:36:54.571  4685  4703 I Unity   :
01-09 23:37:13.390  4685  4703 I Unity   : Purchasing product asychronously: 'cheep_premium'
01-09 23:37:13.390  4685  4703 I Unity   : UnityEngine.Logger:Log(LogType, Object)
01-09 23:37:13.390  4685  4703 I Unity   : IAPManager:BuyProductID(String)
01-09 23:37:13.390  4685  4703 I Unity   : UnityEngine.Events.UnityAction:Invoke()
01-09 23:37:13.390  4685  4703 I Unity   : UnityEngine.Events.UnityEvent:Invoke()
01-09 23:37:13.390  4685  4703 I Unity   : UnityEngine.EventSystems.EventFunction`1:Invoke(T1, BaseEventData)
01-09 23:37:13.390  4685  4703 I Unity   : UnityEngine.EventSystems.ExecuteEvents:Execute(GameObject, BaseEventData, EventFunction`1)
01-09 23:37:13.390  4685  4703 I Unity   : UnityEngine.EventSystems.StandaloneInputModule:processTouchPress(PointerEventData, Boolean, Boolean)
01-09 23:37:13.390  4685  4703 I Unity   : UnityEngine.EventSystems.StandaloneInputModule:processTouchEvents()
01-09 23:37:13.390  4685  4703 I Unity   : UnityEngine.EventSystems.StandaloneInputModule:process()
01-09 23:37:13.390  4685  4703 I Unity   :
01-09 23:37:13.390  4685  4703 I Unity   : (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
01-09 23:37:13.390  4685  4703 I Unity   :
01-09 23:37:13.399  4685  4703 I Unity   : purchase({0}): cheep_premium
01-09 23:37:13.399  4685  4703 I Unity   : UnityEngine.Logger:Log(String, Object)
01-09 23:37:13.399  4685  4703 I Unity   : UnityEngine.Events.UnityAction:Invoke()
01-09 23:37:13.399  4685  4703 I Unity   : UnityEngine.Events.UnityEvent:Invoke()
01-09 23:37:13.399  4685  4703 I Unity   : UnityEngine.EventSystems.EventFunction`1:Invoke(T1, BaseEventData)
01-09 23:37:13.399  4685  4703 I Unity   : UnityEngine.EventSystems.ExecuteEvents:Execute(GameObject, BaseEventData, EventFunction`1)
01-09 23:37:13.399  4685  4703 I Unity   : UnityEngine.EventSystems.StandaloneInputModule:processTouchPress(PointerEventData, Boolean, Boolean)
01-09 23:37:13.399  4685  4703 I Unity   : UnityEngine.EventSystems.StandaloneInputModule:processTouchEvents()
01-09 23:37:13.399  4685  4703 I Unity   : UnityEngine.EventSystems.StandaloneInputModule:process()
01-09 23:37:13.399  4685  4703 I Unity   :
01-09 23:37:13.399  4685  4703 I Unity   : (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
01-09 23:37:13.399  4685  4703 I Unity   :
01-09 23:37:13.608  1004  1028 I WindowManager: Focus moving from Window{9495e07 u0 com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity} to null
01-09 23:37:13.990   439   663 I BufferQueueProducer: [com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity#0](this:0xac77c000,id:2171,api:2,p:4685,c:439) queueBuffer: fps=0.04 dur=27951.01 max=27951.01 min=27951.01
01-09 23:37:14.996   439   484 I BufferQueueProducer: [com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity#0](this:0xac77c000,id:2171,api:2,p:4685,c:439) queueBuffer: fps=16.90 dur=1005.99 max=601.93 min=13.42
01-09 23:37:21.402  1004  8272 D WindowManager: Input focus has changed to Window{9495e07 u0 com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity}
01-09 23:37:21.404   433   466 I vendor.mediatek.hardware.power@2.0-impl: notifyAppState pack:com.MaxAskeza.PuzzleEduBoard, act:com.unity3d.player.UnityPlayerActivity, pid:4685, state:1
01-09 23:37:21.405  1004  1028 I WindowManager: Focus moving from null to Window{9495e07 u0 com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity}
01-09 23:37:21.436   439  1081 I BufferQueueProducer: [com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity#0](this:0xac77c000,id:2171,api:2,p:4685,c:439) queueBuffer: fps=2.79 dur=6440.43 max=6168.64 min=9.14
01-09 23:37:21.498  4685  4703 I Unity   : onPurchaseFailedEvent({0}): productId:cheep_premium message:purchaseState is UNSPECIFIED_STATE, no more details exists {M: GPUL.OPO}
01-09 23:37:21.498  4685  4703 I Unity   : UnityEngine.Logger:Log(String, Object)
01-09 23:37:21.498  4685  4703 I Unity   : UnityEngine.Purchasing.PurchasingManager:OnPurchaseFailed(PurchaseFailureDescription)
01-09 23:37:21.498  4685  4703 I Unity   : System.Action:Invoke()
01-09 23:37:21.498  4685  4703 I Unity   : UnityEngine.Purchasing.Extension.UnityUtil:Update()
01-09 23:37:21.498  4685  4703 I Unity   :
01-09 23:37:21.498  4685  4703 I Unity   : (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
01-09 23:37:21.498  4685  4703 I Unity   :
01-09 23:37:21.509  4685  4703 E Unity   : Unknown
01-09 23:37:21.509  4685  4703 E Unity   : UnityEngine.Logger:Log(LogType, Object)
01-09 23:37:21.509  4685  4703 E Unity   : IAPManager:OnPurchaseFailed(Product, PurchaseFailureReason)
01-09 23:37:21.509  4685  4703 E Unity   : System.Action:Invoke()
01-09 23:37:21.509  4685  4703 E Unity   : UnityEngine.Purchasing.Extension.UnityUtil:Update()
01-09 23:37:21.509  4685  4703 E Unity   :
01-09 23:37:21.509  4685  4703 E Unity   : (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
01-09 23:37:21.509  4685  4703 E Unity   :
01-09 23:37:21.534   439  1600 I BufferQueueProducer: [SurfaceView - com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity#0](this:0xaf046000,id:2172,api:1,p:4685,c:439) queueBuffer: fps=5.91 dur=8803.76 max=7962.48 min=11.02
01-09 23:37:22.546   439  1081 I BufferQueueProducer: [SurfaceView - com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity#0](this:0xaf046000,id:2172,api:1,p:4685,c:439) queueBuffer: fps=61.26 dur=1012.12 max=21.21 min=7.73
01-09 23:37:23.554   439  1081 I BufferQueueProducer: [SurfaceView - com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity#0](this:0xaf046000,id:2172,api:1,p:4685,c:439) queueBuffer: fps=60.57 dur=1007.12 max=18.08 min=14.78
01-09 23:37:24.562   439   483 I BufferQueueProducer: [SurfaceView - com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity#0](this:0xaf046000,id:2172,api:1,p:4685,c:439) queueBuffer: fps=60.46 dur=1008.88 max=17.71 min=15.47
01-09 23:37:25.575   439   483 I BufferQueueProducer: [SurfaceView - com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity#0](this:0xaf046000,id:2172,api:1,p:4685,c:439) queueBuffer: fps=60.23 dur=1012.75 max=18.44 min=14.25
01-09 23:37:26.584   439   483 I BufferQueueProducer: [SurfaceView - com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity#0](this:0xaf046000,id:2172,api:1,p:4685,c:439) queueBuffer: fps=60.45 dur=1009.15 max=24.00 min=10.56
01-09 23:37:27.593   439  1600 I BufferQueueProducer: [SurfaceView - com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity#0](this:0xaf046000,id:2172,api:1,p:4685,c:439) queueBuffer: fps=60.46 dur=1008.85 max=18.28 min=14.18
01-09 23:37:28.599   439   663 I BufferQueueProducer: [SurfaceView - com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity#0](this:0xaf046000,id:2172,api:1,p:4685,c:439) queueBuffer: fps=60.67 dur=1005.39 max=22.42 min=10.66
01-09 23:37:29.110  4685  4703 I Unity   : Purchasing product asychronously: 'cheep_premium'
01-09 23:37:29.110  4685  4703 I Unity   : UnityEngine.Logger:Log(LogType, Object)
01-09 23:37:29.110  4685  4703 I Unity   : IAPManager:BuyProductID(String)
01-09 23:37:29.110  4685  4703 I Unity   : UnityEngine.Events.UnityAction:Invoke()
01-09 23:37:29.110  4685  4703 I Unity   : UnityEngine.Events.UnityEvent:Invoke()
01-09 23:37:29.110  4685  4703 I Unity   : UnityEngine.EventSystems.EventFunction`1:Invoke(T1, BaseEventData)
01-09 23:37:29.110  4685  4703 I Unity   : UnityEngine.EventSystems.ExecuteEvents:Execute(GameObject, BaseEventData, EventFunction`1)
01-09 23:37:29.110  4685  4703 I Unity   : UnityEngine.EventSystems.StandaloneInputModule:processTouchPress(PointerEventData, Boolean, Boolean)
01-09 23:37:29.110  4685  4703 I Unity   : UnityEngine.EventSystems.StandaloneInputModule:processTouchEvents()
01-09 23:37:29.110  4685  4703 I Unity   : UnityEngine.EventSystems.StandaloneInputModule:process()
01-09 23:37:29.110  4685  4703 I Unity   :
01-09 23:37:29.110  4685  4703 I Unity   : (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
01-09 23:37:29.110  4685  4703 I Unity   :
01-09 23:37:29.117  4685  4703 I Unity   : purchase({0}): cheep_premium
01-09 23:37:29.117  4685  4703 I Unity   : UnityEngine.Logger:Log(String, Object)
01-09 23:37:29.117  4685  4703 I Unity   : UnityEngine.Events.UnityAction:Invoke()
01-09 23:37:29.117  4685  4703 I Unity   : UnityEngine.Events.UnityEvent:Invoke()
01-09 23:37:29.117  4685  4703 I Unity   : UnityEngine.EventSystems.EventFunction`1:Invoke(T1, BaseEventData)
01-09 23:37:29.117  4685  4703 I Unity   : UnityEngine.EventSystems.ExecuteEvents:Execute(GameObject, BaseEventData, EventFunction`1)
01-09 23:37:29.117  4685  4703 I Unity   : UnityEngine.EventSystems.StandaloneInputModule:processTouchPress(PointerEventData, Boolean, Boolean)
01-09 23:37:29.117  4685  4703 I Unity   : UnityEngine.EventSystems.StandaloneInputModule:processTouchEvents()
01-09 23:37:29.117  4685  4703 I Unity   : UnityEngine.EventSystems.StandaloneInputModule:process()
01-09 23:37:29.117  4685  4703 I Unity   :
01-09 23:37:29.117  4685  4703 I Unity   : (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
01-09 23:37:29.117  4685  4703 I Unity   :
01-09 23:37:29.245  1004  1028 I WindowManager: Focus moving from Window{9495e07 u0 com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity} to null
01-09 23:37:29.439   439  1081 I BufferQueueProducer: [com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity#0](this:0xac77c000,id:2171,api:2,p:4685,c:439) queueBuffer: fps=0.12 dur=8002.77 max=8002.77 min=8002.77
01-09 23:37:30.461   439  1600 I BufferQueueProducer: [com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity#0](this:0xac77c000,id:2171,api:2,p:4685,c:439) queueBuffer: fps=16.63 dur=1022.33 max=701.92 min=8.35
01-09 23:37:31.716  1004  8272 D WindowManager: Input focus has changed to Window{9495e07 u0 com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity}
01-09 23:37:31.718   433   466 I vendor.mediatek.hardware.power@2.0-impl: notifyAppState pack:com.MaxAskeza.PuzzleEduBoard, act:com.unity3d.player.UnityPlayerActivity, pid:4685, state:1
01-09 23:37:31.720  1004  1028 I WindowManager: Focus moving from null to Window{9495e07 u0 com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity}
01-09 23:37:31.778   439   663 I BufferQueueProducer: [com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity#0](this:0xac77c000,id:2171,api:2,p:4685,c:439) queueBuffer: fps=13.67 dur=1316.72 max=1036.81 min=11.86
01-09 23:37:31.827  4685  4703 I Unity   : onPurchaseFailedEvent({0}): productId:cheep_premium message: {M: GPUL.HEC}
01-09 23:37:31.827  4685  4703 I Unity   : UnityEngine.Logger:Log(String, Object)
01-09 23:37:31.827  4685  4703 I Unity   : UnityEngine.Purchasing.PurchasingManager:OnPurchaseFailed(PurchaseFailureDescription)
01-09 23:37:31.827  4685  4703 I Unity   : System.Action:Invoke()
01-09 23:37:31.827  4685  4703 I Unity   : UnityEngine.Purchasing.Extension.UnityUtil:Update()
01-09 23:37:31.827  4685  4703 I Unity   :
01-09 23:37:31.827  4685  4703 I Unity   : (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
01-09 23:37:31.827  4685  4703 I Unity   :
01-09 23:37:31.832  4685  4703 E Unity   : Unknown
01-09 23:37:31.832  4685  4703 E Unity   : UnityEngine.Logger:Log(LogType, Object)
01-09 23:37:31.832  4685  4703 E Unity   : IAPManager:OnPurchaseFailed(Product, PurchaseFailureReason)
01-09 23:37:31.832  4685  4703 E Unity   : System.Action:Invoke()
01-09 23:37:31.832  4685  4703 E Unity   : UnityEngine.Purchasing.Extension.UnityUtil:Update()
01-09 23:37:31.832  4685  4703 E Unity   :
01-09 23:37:31.832  4685  4703 E Unity   : (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
01-09 23:37:31.832  4685  4703 E Unity   :
01-09 23:37:31.865   439   663 I BufferQueueProducer: [SurfaceView - com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity#0](this:0xaf046000,id:2172,api:1,p:4685,c:439) queueBuffer: fps=11.63 dur=3266.29 max=2655.23 min=11.57
01-09 23:37:32.881   439  1081 I BufferQueueProducer: [SurfaceView - com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity#0](this:0xaf046000,id:2172,api:1,p:4685,c:439) queueBuffer: fps=60.99 dur=1016.57 max=19.91 min=7.13
01-09 23:37:33.889   439  1600 I BufferQueueProducer: [SurfaceView - com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity#0](this:0xaf046000,id:2172,api:1,p:4685,c:439) queueBuffer: fps=60.52 dur=1007.99 max=19.48 min=12.51
01-09 23:37:34.899   439  1600 I BufferQueueProducer: [SurfaceView - com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity#0](this:0xaf046000,id:2172,api:1,p:4685,c:439) queueBuffer: fps=60.40 dur=1009.90 max=20.50 min=14.01
01-09 23:37:35.908   439  1600 I BufferQueueProducer: [SurfaceView - com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity#0](this:0xaf046000,id:2172,api:1,p:4685,c:439) queueBuffer: fps=60.45 dur=1009.17 max=18.36 min=14.18
01-09 23:37:36.000  4685  4703 I Unity   : Purchasing product asychronously: 'cheep_premium'
01-09 23:37:36.000  4685  4703 I Unity   : UnityEngine.Logger:Log(LogType, Object)
01-09 23:37:36.000  4685  4703 I Unity   : IAPManager:BuyProductID(String)
01-09 23:37:36.000  4685  4703 I Unity   : UnityEngine.Events.UnityAction:Invoke()
01-09 23:37:36.000  4685  4703 I Unity   : UnityEngine.Events.UnityEvent:Invoke()
01-09 23:37:36.000  4685  4703 I Unity   : UnityEngine.EventSystems.EventFunction`1:Invoke(T1, BaseEventData)
01-09 23:37:36.000  4685  4703 I Unity   : UnityEngine.EventSystems.ExecuteEvents:Execute(GameObject, BaseEventData, EventFunction`1)
01-09 23:37:36.000  4685  4703 I Unity   : UnityEngine.EventSystems.StandaloneInputModule:processTouchPress(PointerEventData, Boolean, Boolean)
01-09 23:37:36.000  4685  4703 I Unity   : UnityEngine.EventSystems.StandaloneInputModule:processTouchEvents()
01-09 23:37:36.000  4685  4703 I Unity   : UnityEngine.EventSystems.StandaloneInputModule:process()
01-09 23:37:36.000  4685  4703 I Unity   :
01-09 23:37:36.000  4685  4703 I Unity   : (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
01-09 23:37:36.000  4685  4703 I Unity   :
01-09 23:37:36.005  4685  4703 I Unity   : purchase({0}): cheep_premium
01-09 23:37:36.005  4685  4703 I Unity   : UnityEngine.Logger:Log(String, Object)
01-09 23:37:36.005  4685  4703 I Unity   : UnityEngine.Events.UnityAction:Invoke()
01-09 23:37:36.005  4685  4703 I Unity   : UnityEngine.Events.UnityEvent:Invoke()
01-09 23:37:36.005  4685  4703 I Unity   : UnityEngine.EventSystems.EventFunction`1:Invoke(T1, BaseEventData)
01-09 23:37:36.005  4685  4703 I Unity   : UnityEngine.EventSystems.ExecuteEvents:Execute(GameObject, BaseEventData, EventFunction`1)
01-09 23:37:36.005  4685  4703 I Unity   : UnityEngine.EventSystems.StandaloneInputModule:processTouchPress(PointerEventData, Boolean, Boolean)
01-09 23:37:36.005  4685  4703 I Unity   : UnityEngine.EventSystems.StandaloneInputModule:processTouchEvents()
01-09 23:37:36.005  4685  4703 I Unity   : UnityEngine.EventSystems.StandaloneInputModule:process()
01-09 23:37:36.005  4685  4703 I Unity   :
01-09 23:37:36.005  4685  4703 I Unity   : (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
01-09 23:37:36.005  4685  4703 I Unity   :
01-09 23:37:36.119  1004  1028 I WindowManager: Focus moving from Window{9495e07 u0 com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity} to null
01-09 23:37:36.295   439   484 I BufferQueueProducer: [com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity#0](this:0xac77c000,id:2171,api:2,p:4685,c:439) queueBuffer: fps=0.22 dur=4516.50 max=4516.50 min=4516.50
01-09 23:37:37.323   439   483 I BufferQueueProducer: [com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity#0](this:0xac77c000,id:2171,api:2,p:4685,c:439) queueBuffer: fps=18.47 dur=1028.92 max=691.94 min=11.27
01-09 23:37:37.874  1004  1015 D WindowManager: Input focus has changed to Window{9495e07 u0 com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity}
01-09 23:37:37.875   433   466 I vendor.mediatek.hardware.power@2.0-impl: notifyAppState pack:com.MaxAskeza.PuzzleEduBoard, act:com.unity3d.player.UnityPlayerActivity, pid:4685, state:1
01-09 23:37:37.877  1004  1028 I WindowManager: Focus moving from Window{aa755b3 u0 com.MaxAskeza.PuzzleEduBoard/com.android.billingclient.api.ProxyBillingActivity} to Window{9495e07 u0 com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity}
01-09 23:37:37.970  4685  4703 I Unity   : onPurchaseFailedEvent({0}): productId:cheep_premium message: {M: GPUL.HEC}
01-09 23:37:37.970  4685  4703 I Unity   : UnityEngine.Logger:Log(String, Object)
01-09 23:37:37.970  4685  4703 I Unity   : UnityEngine.Purchasing.PurchasingManager:OnPurchaseFailed(PurchaseFailureDescription)
01-09 23:37:37.970  4685  4703 I Unity   : System.Action:Invoke()
01-09 23:37:37.970  4685  4703 I Unity   : UnityEngine.Purchasing.Extension.UnityUtil:Update()
01-09 23:37:37.970  4685  4703 I Unity   :
01-09 23:37:37.970  4685  4703 I Unity   : (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
01-09 23:37:37.970  4685  4703 I Unity   :
01-09 23:37:37.973  4685  4703 E Unity   : Unknown
01-09 23:37:37.973  4685  4703 E Unity   : UnityEngine.Logger:Log(LogType, Object)
01-09 23:37:37.973  4685  4703 E Unity   : IAPManager:OnPurchaseFailed(Product, PurchaseFailureReason)
01-09 23:37:37.973  4685  4703 E Unity   : System.Action:Invoke()
01-09 23:37:37.973  4685  4703 E Unity   : UnityEngine.Purchasing.Extension.UnityUtil:Update()

Is this line below something special, or it say nothing about my problem?
onPurchaseFailedEvent({0}): productId:cheep_premium message:PurchaseState is UNSPECIFIED_STATE, no more details exists {M: GPUL.OPO}

Thank you for all of your help and any advices you will give to me in future :wink:
I realy want to beat this problem!:wink:

Hello! Is there ara any news? Or I should wait to new update?

Please test with a new product and try a purchase, this will help us troubleshoot.

Same problem:(
“cheep_premium” → “my_test_premium”
New logcat:

01-11 20:51:50.681 20614 20631 I Unity   : UnityIAP Version: 2.2.5
01-11 20:51:50.681 20614 20631 I Unity   : UnityEngine.Logger:Log(Object)
01-11 20:51:50.681 20614 20631 I Unity   : UnityEngine.Purchasing.StandardPurchasingModule:Instance(AppStore)
01-11 20:51:50.681 20614 20631 I Unity   : IAPManager:Start()
01-11 20:51:50.681 20614 20631 I Unity   :
01-11 20:51:50.681 20614 20631 I Unity   : (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
01-11 20:51:50.681 20614 20631 I Unity   :
01-11 20:51:52.185   439  1081 I BufferQueueProducer: [SurfaceView - com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity#0](this:0xab07b000,id:3240,api:1,p:20614,c:439) queueBuffer: fps=11.49 dur=2611.63 max=2080.65 min=15.71
01-11 20:51:52.197 20614 20631 I Unity   : IAP Manager: IAP was Initialized
01-11 20:51:52.197 20614 20631 I Unity   : UnityEngine.Logger:Log(LogType, Object)
01-11 20:51:52.197 20614 20631 I Unity   : UnityEngine.Purchasing.PurchasingManager:CheckForInitialization()
01-11 20:51:52.197 20614 20631 I Unity   : UnityEngine.Purchasing.PurchasingManager:OnProductsRetrieved(List`1)
01-11 20:51:52.197 20614 20631 I Unity   : System.Action:Invoke()
01-11 20:51:52.197 20614 20631 I Unity   : UnityEngine.Purchasing.Extension.UnityUtil:Update()
01-11 20:51:52.197 20614 20631 I Unity   :
01-11 20:51:52.197 20614 20631 I Unity   : (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
01-11 20:51:52.197 20614 20631 I Unity   :
01-11 20:52:17.606 20614 20631 I Unity   : Purchasing product asychronously: 'my_test_premium'
01-11 20:52:17.606 20614 20631 I Unity   : UnityEngine.Logger:Log(LogType, Object)
01-11 20:52:17.606 20614 20631 I Unity   : IAPManager:BuyProductID(String)
01-11 20:52:17.606 20614 20631 I Unity   : UnityEngine.Events.UnityAction:Invoke()
01-11 20:52:17.606 20614 20631 I Unity   : UnityEngine.Events.UnityEvent:Invoke()
01-11 20:52:17.606 20614 20631 I Unity   : UnityEngine.EventSystems.EventFunction`1:Invoke(T1, BaseEventData)
01-11 20:52:17.606 20614 20631 I Unity   : UnityEngine.EventSystems.ExecuteEvents:Execute(GameObject, BaseEventData, EventFunction`1)
01-11 20:52:17.606 20614 20631 I Unity   : UnityEngine.EventSystems.StandaloneInputModule:ProcessTouchPress(PointerEventData, Boolean, Boolean)
01-11 20:52:17.606 20614 20631 I Unity   : UnityEngine.EventSystems.StandaloneInputModule:ProcessTouchEvents()
01-11 20:52:17.606 20614 20631 I Unity   : UnityEngine.EventSystems.StandaloneInputModule:Process()
01-11 20:52:17.606 20614 20631 I Unity   :
01-11 20:52:17.606 20614 20631 I Unity   : (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
01-11 20:52:17.606 20614 20631 I Unity   :
01-11 20:52:17.617 20614 20631 I Unity   : purchase({0}): my_test_premium
01-11 20:52:17.617 20614 20631 I Unity   : UnityEngine.Logger:Log(String, Object)
01-11 20:52:17.617 20614 20631 I Unity   : UnityEngine.Events.UnityAction:Invoke()
01-11 20:52:17.617 20614 20631 I Unity   : UnityEngine.Events.UnityEvent:Invoke()
01-11 20:52:17.617 20614 20631 I Unity   : UnityEngine.EventSystems.EventFunction`1:Invoke(T1, BaseEventData)
01-11 20:52:17.617 20614 20631 I Unity   : UnityEngine.EventSystems.ExecuteEvents:Execute(GameObject, BaseEventData, EventFunction`1)
01-11 20:52:17.617 20614 20631 I Unity   : UnityEngine.EventSystems.StandaloneInputModule:ProcessTouchPress(PointerEventData, Boolean, Boolean)
01-11 20:52:17.617 20614 20631 I Unity   : UnityEngine.EventSystems.StandaloneInputModule:ProcessTouchEvents()
01-11 20:52:17.617 20614 20631 I Unity   : UnityEngine.EventSystems.StandaloneInputModule:Process()
01-11 20:52:17.617 20614 20631 I Unity   :
01-11 20:52:17.617 20614 20631 I Unity   : (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
01-11 20:52:17.617 20614 20631 I Unity   :
01-11 20:52:17.634   439   484 I BufferQueueProducer: [SurfaceView - com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity#0](this:0xab07b000,id:3240,api:1,p:20614,c:439) queueBuffer: fps=60.17 dur=1013.71 max=23.18 min=14.59
01-11 20:52:17.845  1004  1028 I WindowManager: Focus moving from Window{cd492bb u0 com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity} to null
01-11 20:52:17.989   439   663 I BufferQueueProducer: [com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity#0](this:0xac76b000,id:3239,api:2,p:20614,c:439) queueBuffer: fps=0.03 dur=32415.86 max=32415.86 min=32415.86
01-11 20:52:19.019   439   483 I BufferQueueProducer: [com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity#0](this:0xac76b000,id:3239,api:2,p:20614,c:439) queueBuffer: fps=18.43 dur=1030.83 max=700.27 min=13.91
01-11 20:52:26.161  1004  1430 D WindowManager: Input focus has changed to Window{cd492bb u0 com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity}
01-11 20:52:26.162   433   466 I vendor.mediatek.hardware.power@2.0-impl: notifyAppState pack:com.MaxAskeza.PuzzleEduBoard, act:com.unity3d.player.UnityPlayerActivity, pid:20614, state:1
01-11 20:52:26.164  1004  1028 I WindowManager: Focus moving from Window{979899b u0 com.MaxAskeza.PuzzleEduBoard/com.android.billingclient.api.ProxyBillingActivity} to Window{cd492bb u0 com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity}
01-11 20:52:26.197   439  1600 I BufferQueueProducer: [com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity#0](this:0xac76b000,id:3239,api:2,p:20614,c:439) queueBuffer: fps=2.09 dur=7177.56 max=6899.24 min=8.67
01-11 20:52:26.246   439   663 I BufferQueueProducer: [SurfaceView - com.MaxAskeza.PuzzleEduBoard/com.unity3d.player.UnityPlayerActivity#0](this:0xab07b000,id:3240,api:1,p:20614,c:439) queueBuffer: fps=1.28 dur=8612.09 max=8455.69 min=9.67
01-11 20:52:26.268 20614 20631 I Unity   : onPurchaseFailedEvent({0}): productId:my_test_premium message:PurchaseState is UNSPECIFIED_STATE, no more details exists {M: GPUL.OPO}
01-11 20:52:26.268 20614 20631 I Unity   : UnityEngine.Logger:Log(String, Object)
01-11 20:52:26.268 20614 20631 I Unity   : UnityEngine.Purchasing.PurchasingManager:OnPurchaseFailed(PurchaseFailureDescription)
01-11 20:52:26.268 20614 20631 I Unity   : System.Action:Invoke()
01-11 20:52:26.268 20614 20631 I Unity   : UnityEngine.Purchasing.Extension.UnityUtil:Update()
01-11 20:52:26.268 20614 20631 I Unity   :
01-11 20:52:26.268 20614 20631 I Unity   : (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
01-11 20:52:26.268 20614 20631 I Unity   :
01-11 20:52:26.278 20614 20631 E Unity   : IAP Manager: Purchase was failed with reason: Unknown
01-11 20:52:26.278 20614 20631 E Unity   : UnityEngine.Logger:Log(LogType, Object)
01-11 20:52:26.278 20614 20631 E Unity   : IAPManager:OnPurchaseFailed(Product, PurchaseFailureReason)
01-11 20:52:26.278 20614 20631 E Unity   : System.Action:Invoke()
01-11 20:52:26.278 20614 20631 E Unity   : UnityEngine.Purchasing.Extension.UnityUtil:Update()

Bytheway, is there some special way to mark product like a non-consumable in Google Play Console?
Or consumable and non-consumable are same in GPC and there is only differece at API level?

@MaxAskeza You already are doing this with this code builder.AddProduct(“cheep_premium”, ProductType.NonConsumable); There isn’t a Dashboard option.

Can you add me as a tester so I can download the game via Google Play? Send me a direct message here and I’ll give you the tester email.

I received your testing invite. However, I’m still being prompted to pay with a credit card, I believe you need to add the email here in the Google dashboard also

Oh, sorry. It done now.
Try again, please.

Not yet, I’ll wait a bit longer. So do you get the Google purchase dialog? It’s prompting me for a credit card. When I touch the background to cancel the dialog, I too get the Unknown error, I would have expected User Cancelled as the failure reason.

Jeff, thanks a lot for all of your time! And, man, sorry, that I stole so much time from you…
I finally got it!

Once I was update Unity to newest version and it’s crash my old game, so I was waste a few days to repair it. And then I was diside, that I don’t want to update it before my game will be completed.
That was a problem - I had an ancient Unity version. After updating it work perfectly!

So my steps was:

  1. Making fresh backup of my game**(necesserily)**.
  2. Downloading newest Unity version in Unity Hub.
  3. Solving several critical errors.
  4. Building new app.
  5. Profit!

So in addiatational to your message below you can surely ask people to update they Unity version:

It was dumb enough from my side to keep on working with an old version so long. I hope my mistake and answer will help some one to save their time:

Thanks for all of your help again!

So Unity 2019.2.18f1 was not working for you, but Unity 2020.2.1f1 now works? Interesting, Unity version shouldn’t matter.