PurchaseProcess.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using Eiko.YaSDK;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using UnityEngine;
  5. public class PurchaseProcess : MonoBehaviour
  6. {
  7. private static PurchaseProcess instance;
  8. public List<Purchase> purchases;
  9. private string signature;
  10. private void Awake()
  11. {
  12. if(instance)
  13. {
  14. Destroy(gameObject);
  15. return;
  16. }
  17. instance = this;
  18. DontDestroyOnLoad(gameObject);
  19. }
  20. private void Start()
  21. {
  22. InitPurchases();
  23. }
  24. public void InitPurchases()
  25. {
  26. YandexSDK.instance.onPurchaseSuccess += Instance_onPurchaseSuccess;
  27. YandexSDK.instance.GettedPurchase += Instance_GettedPurchase;
  28. YandexSDK.instance.onPurchaseInitialize += Instance_onPurchaseInitialize;
  29. YandexSDK.instance.InitializePurchases();
  30. }
  31. private void Instance_onPurchaseInitialize()
  32. {
  33. GetPurchases();
  34. }
  35. private void Instance_GettedPurchase(GetPurchasesCallback obj)
  36. {
  37. purchases = obj.purchases.ToList();
  38. signature = obj.signature;
  39. }
  40. private void Instance_onPurchaseSuccess(Purchase obj)
  41. {
  42. purchases.Add(obj);
  43. }
  44. private void GetPurchases()
  45. {
  46. YandexSDK.instance.TryGetPurchases();
  47. }
  48. public static bool Has(string id)
  49. {
  50. return null != instance.purchases.FirstOrDefault(x=>x.productID==id);
  51. }
  52. }