- using BravestarsSDK;
- using System;
- using UnityEngine;
- using UnityEngine.Purchasing;
- using UnityEngine.Purchasing.Extension;
- using UnityEngine.UI;
- public class IAPServices : MonoBehaviour, IStoreListener
- {
- #if UNITY_ANDROID||UNITY_EDITOR
- string removeAds1 = "com.bravestars.amaze.flag.coloring.removeads.1";
- string removeAds2 = "com.bravestars.amaze.flag.coloring.removeads.2";
- string removeAds3 = "com.bravestars.amaze.flag.coloring.removeads.3";
- #endif
- #if UNITY_IOS
- string removeAds1 = "com.bravestars.amaze.flag.coloring.removeads.1";
- string removeAds2 = "com.bravestars.amaze.flag.coloring.removeads.2";
- string removeAds3 = "com.bravestars.amaze.flag.coloring.removeads.3";
- #endif
- IStoreController _storeController;
- IExtensionProvider _storeExtensionProvider;
- public static IAPServices Instance;
- void Awake()
- {
- //if (Application.platform!=RuntimePlatform.IPhonePlayer)
- //{
- //}
- Instance = this;
- Debug.LogWarning("siuuuu");
- }
- public void OnPurchaseComplete(Product product)
- {
- if (product.definition.id == removeAds1 || product.definition.id == removeAds2 || product.definition.id == removeAds3)
- {
- Debug.Log("iap: remove success!!");
- UserData.Instance.isBoughtRemoveAds = true;
- MediationManager.IsSkipResumeAds = true;
- MediationManager.IsStopResume = false;
- BS_Data.MediationEnableAd = true;
- UserData.Instance.HideElementAds();
- UIGameplayController.Instance.OffButtonRemoveAds();
- }
- }
- public void OnPurchaseFailed(Product product, PurchaseFailureReason failReason)
- {
- Debug.LogWarning("iap: " + product.definition.id + " fail because " + failReason);
- #if UNITY_IOS||UNITY_EDITOR
- if (product.definition.id == removeAds1 || product.definition.id == removeAds2 || product.definition.id == removeAds3)
- {
- if (failReason == PurchaseFailureReason.DuplicateTransaction)
- {
- UserData.Instance.isBoughtRemoveAds = true;
- if (UserData.Instance.isBoughtRemoveAds)
- {
- MediationManager.IsSkipResumeAds = true;
- BS_Data.MediationEnableAd = true;
- MediationManager.IsStopResume = false;
- UserData.Instance.HideElementAds();
- UIGameplayController.Instance.OffButtonRemoveAds();
- }
- }
- }
- #endif
- }
- public void OnPurchaseFailed(Product product, PurchaseFailureDescription failReason)
- {
- MediationManager.IsStopResume = false;
- Debug.LogWarning(product.definition.id + " fail because " + failReason.message);
- }
- public void OnInitializeFailed(InitializationFailureReason error)
- {
- Debug.Log($"====> IAP Initilize Failed: {error}");
- }
- public void OnInitializeFailed(InitializationFailureReason error, string message)
- {
- Debug.Log($"====> IAP Initilize Failed:{error}, message : {message} ");
- }
- public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs purchaseEvent)
- {
- return PurchaseProcessingResult.Complete;
- }
- public void OnInitialized(IStoreController controller, IExtensionProvider extensions)
- {
- _storeController = controller;
- _storeExtensionProvider = extensions;
- #if UNITY_ANDROID || UNITY_EDITOR
- if (controller.products.WithID(removeAds1).hasReceipt || controller.products.WithID(removeAds2).hasReceipt || controller.products.WithID(removeAds3).hasReceipt)
- {
- UserData.Instance.isBoughtRemoveAds = true;
- }
- else
- {
- UserData.Instance.isBoughtRemoveAds = false;
- }
- if (UserData.Instance.isBoughtRemoveAds)
- {
- BS_Data.MediationEnableAd = true;
- UserData.Instance.HideElementAds();
- UIGameplayController.Instance.OffButtonRemoveAds();
- }
- #endif
- #if UNITY_IOS
- extensions.GetExtension<IAppleExtensions>().RestoreTransactions((result, error) =>
- {
- if (result)
- {
- // This does not mean anything was restored,
- // merely that the restoration process succeeded.
- Debug.Log("iap: restore success ");
- UserData.Instance.isBoughtRemoveAds = result;
- if (UserData.Instance.isBoughtRemoveAds)
- {
- BS_Data.MediationEnableAd = true;
- UserData.Instance.HideElementAds();
- UIGameplayController.Instance.OffButtonRemoveAds();
- }
- }
- else
- {
- // Restoration failed.
- Debug.Log("iap: restore fail ????? " + error);
- }
- });
- extensions.GetExtension<IAppleExtensions>().RefreshAppReceipt((receipt) =>
- {
- // This handler is invoked if the request is successful.
- // Receipt will be the latest app receipt.
- Debug.Log("iap: receipt " + receipt);
- MediationManager.IsSkipResumeAds = true;
- },
- (err) =>
- {
- // This handler will be invoked if the request fails,
- // such as if the network is unavailable or the user
- // enters the wrong password.
- Debug.Log("iap: err " + err);
- });
- #endif
- }
- public void OnTransactionsRestored(bool isRestore, string text)
- {
- if (isRestore)
- {
- Debug.Log("iap: restore remove ads success");
- MediationManager.IsSkipResumeAds = true;
- UserData.Instance.isBoughtRemoveAds = true;
- }
- }
- }