Exemple #1
0
        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);
        }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
    //--------------------------------------
    // 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
    }
Exemple #4
0
        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
        }