Firstborn/Library/PackageCache/com.unity.ads@3.7.5/Runtime/Advertisement/Purchasing/Purchasing.cs

118 lines
4.2 KiB
C#
Raw Normal View History

2023-03-28 13:24:16 -04:00
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;
}
}
}
}