123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- using System;
- using System.Reflection;
- namespace UnityEngine.Advertisements.Purchasing
- {
- /// <summary>
- /// Enumerated events related to in-app purchasing (IAP).
- /// </summary>
- public enum PurchasingEvent
- {
- COMMAND,
- VERSION,
- CATALOG,
- INITIALIZATION,
- EVENT
- }
- static class Purchasing
- {
- static Type s_PurchasingManagerType;
- static Boolean s_Initialized;
- static MethodInfo s_PurchasingInitiatePurchaseMethodInfo,
- s_PurchasingGetPromoVersionMethodInfo,
- s_PurchasingGetPromoCatalogMethodInfo;
- static string s_PurchasingManagerClassName = "UnityEngine.Purchasing.Promo,Stores";
- static string s_PurchasingInitiatePurchaseMethodName = "InitiatePurchasingCommand",
- s_PurchasingGetPromoVersionMethodName = "Version",
- s_PurchasingGetPromoCatalogMethodName = "QueryPromoProducts";
- static IPurchasingEventSender s_Platform;
- public static Boolean Initialize(IPurchasingEventSender platform)
- {
- if (!s_Initialized)
- {
- try
- {
- s_PurchasingManagerType = Type.GetType(s_PurchasingManagerClassName, true);
- s_PurchasingInitiatePurchaseMethodInfo = s_PurchasingManagerType.GetMethod(s_PurchasingInitiatePurchaseMethodName, new Type[] { typeof(string) });
- s_PurchasingGetPromoVersionMethodInfo = s_PurchasingManagerType.GetMethod(s_PurchasingGetPromoVersionMethodName);
- s_PurchasingGetPromoCatalogMethodInfo = s_PurchasingManagerType.GetMethod(s_PurchasingGetPromoCatalogMethodName);
- }
- catch (Exception exception)
- {
- Debug.LogWarning(exception.Message + "It is likely that a promo has been enabled on a placement, but IAP Promo has not been enabled in the project.");
- return false;
- }
- s_Initialized = true;
- s_Platform = platform;
- }
- return s_Initialized;
- }
- public static Boolean InitiatePurchasingCommand(string eventString)
- {
- Boolean isCommandSuccessful = false;
- if (s_PurchasingInitiatePurchaseMethodInfo != null)
- {
- try
- {
- isCommandSuccessful = (Boolean)s_PurchasingInitiatePurchaseMethodInfo.Invoke(s_PurchasingManagerType, new[] { eventString });
- }
- catch (Exception exception)
- {
- Debug.LogWarning(exception.Message);
- return false;
- }
- }
- return isCommandSuccessful;
- }
- public static String GetPurchasingCatalog()
- {
- String purchasingCatalog = "";
- if (s_PurchasingGetPromoCatalogMethodInfo != null)
- {
- try
- {
- purchasingCatalog = (String)s_PurchasingGetPromoCatalogMethodInfo.Invoke(s_PurchasingManagerType, null);
- }
- catch (Exception exception)
- {
- Debug.LogWarning(exception.Message);
- }
- }
- return purchasingCatalog ?? "NULL";
- }
- public static String GetPromoVersion()
- {
- String promoVersion = "";
- if (s_PurchasingGetPromoVersionMethodInfo != null)
- {
- try
- {
- promoVersion = (String)s_PurchasingGetPromoVersionMethodInfo.Invoke(s_PurchasingManagerType, null);
- }
- catch (Exception exception)
- {
- Debug.LogWarning(exception.Message);
- }
- }
- return promoVersion ?? "NULL";
- }
- public static Boolean SendEvent(string payload)
- {
- if (s_Platform == null)
- {
- return false;
- }
- else
- {
- s_Platform.SendPurchasingEvent(payload);
- return true;
- }
- }
- }
- }
|