PurchasingPlatform.cs 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #if UNITY_IOS
  2. using System.Runtime.InteropServices;
  3. using AOT;
  4. namespace UnityEngine.Advertisements.Purchasing
  5. {
  6. public class PurchasingPlatform : IPurchasingEventSender
  7. {
  8. private static PurchasingPlatform Instance { get; set; }
  9. delegate void unityAdsPurchasingDidInitiatePurchasingCommand(string eventString);
  10. delegate void unityAdsPurchasingGetProductCatalog();
  11. delegate void unityAdsPurchasingGetPurchasingVersion();
  12. delegate void unityAdsPurchasingInitialize();
  13. [DllImport("__Internal")]
  14. static extern void UnityAdsPurchasingDispatchReturnEvent(long eventType, string payload);
  15. [DllImport("__Internal")]
  16. static extern void UnityAdsSetDidInitiatePurchasingCommandCallback(unityAdsPurchasingDidInitiatePurchasingCommand callback);
  17. [DllImport("__Internal")]
  18. static extern void UnityAdsSetGetProductCatalogCallback(unityAdsPurchasingGetProductCatalog callback);
  19. [DllImport("__Internal")]
  20. static extern void UnityAdsSetGetVersionCallback(unityAdsPurchasingGetPurchasingVersion callback);
  21. [DllImport("__Internal")]
  22. static extern void UnityAdsSetInitializePurchasingCallback(unityAdsPurchasingInitialize callback);
  23. [MonoPInvokeCallback(typeof(unityAdsPurchasingDidInitiatePurchasingCommand))]
  24. static void UnityAdsDidInitiatePurchasingCommand(string eventString)
  25. {
  26. string result = Purchasing.InitiatePurchasingCommand(eventString).ToString();
  27. UnityAdsPurchasingDispatchReturnEvent((long)PurchasingEvent.COMMAND, result);
  28. }
  29. [MonoPInvokeCallback(typeof(unityAdsPurchasingGetProductCatalog))]
  30. static void UnityAdsPurchasingGetProductCatalog()
  31. {
  32. string result = Purchasing.GetPurchasingCatalog();
  33. UnityAdsPurchasingDispatchReturnEvent((long)PurchasingEvent.CATALOG, result);
  34. }
  35. [MonoPInvokeCallback(typeof(unityAdsPurchasingGetPurchasingVersion))]
  36. static void UnityAdsPurchasingGetPurchasingVersion()
  37. {
  38. string result = Purchasing.GetPromoVersion();
  39. UnityAdsPurchasingDispatchReturnEvent((long)PurchasingEvent.VERSION, result);
  40. }
  41. [MonoPInvokeCallback(typeof(unityAdsPurchasingInitialize))]
  42. static void UnityAdsPurchasingInitialize()
  43. {
  44. string result = Purchasing.Initialize(Instance).ToString();
  45. UnityAdsPurchasingDispatchReturnEvent((long)PurchasingEvent.INITIALIZATION, result);
  46. }
  47. public void Initialize()
  48. {
  49. Instance = this;
  50. UnityAdsSetDidInitiatePurchasingCommandCallback(UnityAdsDidInitiatePurchasingCommand);
  51. UnityAdsSetGetProductCatalogCallback(UnityAdsPurchasingGetProductCatalog);
  52. UnityAdsSetGetVersionCallback(UnityAdsPurchasingGetPurchasingVersion);
  53. UnityAdsSetInitializePurchasingCallback(UnityAdsPurchasingInitialize);
  54. }
  55. public void SendPurchasingEvent(string payload)
  56. {
  57. UnityAdsPurchasingDispatchReturnEvent((long)PurchasingEvent.EVENT, payload);
  58. }
  59. }
  60. }
  61. #endif