public void Enumerate(List <Item> items) { _items = items; List <string> productIds = ArrayUtils.Map <Item, string>(items, delegate(Item item) { return(item.productId); }); SkusInput skus = new SkusInput(); skus.Skus = productIds; _iapService.GetProductData(skus); }
/// <summary> /// get iaps and subs information by skus /// </summary> /// <param name="ProductIds">list of iaps to be retrieved. iap and subs are mixed</param> /// <param name="itemType">not required for amazon</param> /// <returns></returns> public async Task <List <InAppBillingProduct> > GetProductsAsync(List <string> ProductIds, ItemType itemType = ItemType.InAppPurchase) { var taskCompletionSource = new TaskCompletionSource <List <InAppBillingProduct> >(); //await Task.Delay(TimeSpan.FromMilliseconds(1));an.FromMilliseconds(1)); if (context == null) { context = AmazonIapV2Impl.Instance; } // Construct object passed to operation as input SkusInput request = new SkusInput(); request.Skus = ProductIds; // Call synchronous operation with input object string requestId = context.GetProductData(request).RequestId; // Get return value GetProductDataResponseDelegator delegator = null; delegator = new GetProductDataResponseDelegator(async response => { await Task.Run(() => { if (response.RequestId == requestId) { var result = GetProductEventHandler(response); var sucess = taskCompletionSource.TrySetResult(result); context.RemoveGetProductDataResponseListener(delegator.responseDelegate); } }); }); // Register for an event context.AddGetProductDataResponseListener(delegator.responseDelegate); return(await taskCompletionSource.Task); }
//-------------------------------------- // PRIVATE API CALL METHODS //-------------------------------------- private void Init(List <AmazonProductTemplate> product_ids) { #if AMAZON_BILLING_ENABLED List <string> products = new List <string> (); foreach (AmazonProductTemplate tpl in product_ids) { products.Add(tpl.Sku); } SkusInput request = new SkusInput(); request.Skus = products; // Call synchronous operation with input object RequestOutput response = iapService.GetProductData(request); // Get return value string requestIdString = response.RequestId; Debug.Log("requestIdString " + requestIdString); #endif }
void Start() { GetInAppIdsArrayForIOS(); #region iOS Methods #if UNITY_IOS && STOREKIT && !UNITY_EDITOR InvokeRepeating("RequestProduct", 0f, 15f); #endif #endregion // #region Android => Google Play Mathods #if UNITY_ANDROID && !AMAZONSTORE && !UNITY_EDITOR && GOOGLEIAB GoogleIAB.init("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAg1PP4V7cVb2kBIfWYcLYxx9OAXkT6/1EbfOxyI+hkvJN07mP/U1pmdfn8QIvCnCHA6gual2H1tUOu4DHUtwISnVWwSZqzNPYMsgVHEDMV+nC9/K09k+PNkL8PUaSRfg/wcUYyjOlRBNPXgNdzJ+KSYPrsFxdcY5pIdQYzYoO8kOCTfhJFTukPF+vtXMjtZBt2QppgMWtqSOGL79qk5buv9q15YLG6HN0XBTrK+dE2/2KbDZA58tiMMaGTqTTmHFRWZxtkvdosUf5xVofSsoR/3pevhJ9nZ2nhnFjzQiHUooKeUmCrsOzzWk6e80rXCPwrfWJaa1RKe0fgXz2wqCi8QIDAQAB"); #endif #endregion // #region Android => Amazon Store Methods #if UNITY_ANDROID && AMAZONSTORE && !UNITY_EDITOR iapService.GetUserData(); SkusInput sin = new SkusInput(); sin.Skus = new List <string>(); supportedMarketplaces = "USA, UK, Germany, Frane,\nSpain, Italy, Japan, Canada, Brazil, Australia"; #if UNDERGROUND supportedMarketplaces = "USA, UK, Germany, Frane"; #endif string sku = string.Empty; foreach (string s in InAppIDs) { sku = s; #if UNDERGROUND sku = sku.Replace("supercell.", "supercell.underground."); #endif sin.Skus.Add(sku); } iapService.GetProductData(sin); #endif #endregion }