public static IIAPService Create(IList <IProductIAP> products, IAPServiceProvider provider)
        {
            if (products.IsNullOrEmpty())
            {
                return(null);
            }

            if (_IAPService == null)
            {
                _IAPService = new Dictionary <IAPServiceProvider, IIAPService>();
            }

            if (_IAPService.ContainsKey(provider))
            {
                return(_IAPService[provider]);
            }

            switch (provider)
            {
                #if UNITY_IAP
            case IAPServiceProvider.Unity:
            {
                return(_IAPService[provider] = new Unity.UnityIAP(products));
            }
                #endif

            default:
            {
                "Service Not Available".LogError();
                return(null);
            }
            }
        }
        public static IIAPService Get(IAPServiceProvider type)
        {
            if (_IAPService.ContainsKey(type))
            {
                return(_IAPService[type]);
            }

            return(null);
        }
 public static async Task <IIAPService> GetAsync(IAPServiceProvider type)
 {
     await new WaitUntil(() => !Get(type).IsNull());
     return(Get(type));
 }