75 lines
3.1 KiB
C#
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
|