Firstborn/Library/PackageCache/com.unity.ads@3.7.5/Runtime/Advertisement/Purchasing/PurchasingPlatform.cs
Schaken-Mods b486678290 Library -Artifacts
Library -Artifacts
2023-03-28 12:24:16 -05:00

75 lines
3.1 KiB
C#

#if UNITY_IOS
using System.Runtime.InteropServices;
using AOT;
namespace UnityEngine.Advertisements.Purchasing
{
public class PurchasingPlatform : IPurchasingEventSender
{
private static PurchasingPlatform Instance { get; set; }
delegate void unityAdsPurchasingDidInitiatePurchasingCommand(string eventString);
delegate void unityAdsPurchasingGetProductCatalog();
delegate void unityAdsPurchasingGetPurchasingVersion();
delegate void unityAdsPurchasingInitialize();
[DllImport("__Internal")]
static extern void UnityAdsPurchasingDispatchReturnEvent(long eventType, string payload);
[DllImport("__Internal")]
static extern void UnityAdsSetDidInitiatePurchasingCommandCallback(unityAdsPurchasingDidInitiatePurchasingCommand callback);
[DllImport("__Internal")]
static extern void UnityAdsSetGetProductCatalogCallback(unityAdsPurchasingGetProductCatalog callback);
[DllImport("__Internal")]
static extern void UnityAdsSetGetVersionCallback(unityAdsPurchasingGetPurchasingVersion callback);
[DllImport("__Internal")]
static extern void UnityAdsSetInitializePurchasingCallback(unityAdsPurchasingInitialize callback);
[MonoPInvokeCallback(typeof(unityAdsPurchasingDidInitiatePurchasingCommand))]
static void UnityAdsDidInitiatePurchasingCommand(string eventString)
{
string result = Purchasing.InitiatePurchasingCommand(eventString).ToString();
UnityAdsPurchasingDispatchReturnEvent((long)PurchasingEvent.COMMAND, result);
}
[MonoPInvokeCallback(typeof(unityAdsPurchasingGetProductCatalog))]
static void UnityAdsPurchasingGetProductCatalog()
{
string result = Purchasing.GetPurchasingCatalog();
UnityAdsPurchasingDispatchReturnEvent((long)PurchasingEvent.CATALOG, result);
}
[MonoPInvokeCallback(typeof(unityAdsPurchasingGetPurchasingVersion))]
static void UnityAdsPurchasingGetPurchasingVersion()
{
string result = Purchasing.GetPromoVersion();
UnityAdsPurchasingDispatchReturnEvent((long)PurchasingEvent.VERSION, result);
}
[MonoPInvokeCallback(typeof(unityAdsPurchasingInitialize))]
static void UnityAdsPurchasingInitialize()
{
string result = Purchasing.Initialize(Instance).ToString();
UnityAdsPurchasingDispatchReturnEvent((long)PurchasingEvent.INITIALIZATION, result);
}
public void Initialize()
{
Instance = this;
UnityAdsSetDidInitiatePurchasingCommandCallback(UnityAdsDidInitiatePurchasingCommand);
UnityAdsSetGetProductCatalogCallback(UnityAdsPurchasingGetProductCatalog);
UnityAdsSetGetVersionCallback(UnityAdsPurchasingGetPurchasingVersion);
UnityAdsSetInitializePurchasingCallback(UnityAdsPurchasingInitialize);
}
public void SendPurchasingEvent(string payload)
{
UnityAdsPurchasingDispatchReturnEvent((long)PurchasingEvent.EVENT, payload);
}
}
}
#endif