public AMN_GetProductDataResponse(GetProductDataResponse data) : base(true)
 {
     _requestId       = data.RequestId;
     _productDataMap  = data.ProductDataMap;
     _unavailableSkus = data.UnavailableSkus;
     _status          = data.Status;
 }
Esempio n. 2
0
    private void GetProductDataHandler(GetProductDataResponse data)
    {
        availableItems = new Dictionary <string, AmazonProductTemplate>();

        // for each item in the productDataMap you can get the following values for all your SKU`s
        foreach (KeyValuePair <string, ProductData> entry in data.ProductDataMap)
        {
            AmazonProductTemplate product = new AmazonProductTemplate(entry.Value);
            availableItems.Add(entry.Key, product);
        }

        unavailableSkus = data.UnavailableSkus;

        AMN_GetProductDataResponse result = new AMN_GetProductDataResponse(data);

        OnGetProductDataReceived(result);
    }
Esempio n. 3
0
        void OnProductDataResponse(GetProductDataResponse args)
        {
            string sku          = string.Empty;
            string productType  = string.Empty;
            string price        = string.Empty;
            string title        = string.Empty;
            string description  = string.Empty;
            string smallIconUrl = string.Empty;

            string status    = args.Status;
            string requestId = args.RequestId;
            Dictionary <string, ProductData> productDataMap = args.ProductDataMap;

            unavailableSkus = args.UnavailableSkus;

            /*
             * if(productDataMap != null) {
             *      // for each item in the productDataMap you can get the following values for a given SKU
             *      // (replace "sku" with the actual SKU)
             *      sku = productDataMap["sku"].Sku;
             *      productType = productDataMap["sku"].ProductType;
             *      price = productDataMap["sku"].Price;
             *      title = productDataMap["sku"].Title;
             *      description = productDataMap["sku"].Description;
             *      smallIconUrl = productDataMap["sku"].SmallIconUrl;
             * }
             */
            string rdata = string.Format("R_ID: {0}\nStatus: {1}",
                                         requestId, status);

            MyDebug.Log("InAppManager::OnProductDataResponse => " + rdata);

            if (status.ToUpper().Equals("NOT_SUPPORTED"))
            {
                MarketPlaceNotSuported();
                return;
            }

            isRestore = false;
        }
Esempio n. 4
0
        // Define event handler
        private List <InAppBillingProduct> GetProductEventHandler(GetProductDataResponse args)
        {
            if (args == null)
            {
                return(null);
            }

            string requestId = args.RequestId;
            List <InAppBillingProduct>       Products    = new List <InAppBillingProduct>();
            Dictionary <string, ProductData> IapProducts = args.ProductDataMap;

            // List<string> unavailableSkus = args.UnavailableSkus;
            if (IapProducts?.Count > 0)
            {
                foreach (var Product in IapProducts)
                {
                    Products.Add(new InAppBillingProduct
                    {
                        Description    = Product.Value.Description,
                        LocalizedPrice = Product.Value.Price,
                        ProductId      = Product.Value.Sku,
                        Name           = Product.Value.Title
                    });
                }
            }

            return(Products);
            //string status = args.Status;

            //// for each item in the productDataMap you can get the following values for a given SKU
            //// (replace "sku" with the actual SKU)
            //string sku = Products["sku"].Sku;
            //string productType = Products["sku"].ProductType;
            //string price = Products["sku"].Price;
            //string title = Products["sku"].Title;
            //string description = Products["sku"].Description;
            //string smallIconUrl = Products["sku"].SmallIconUrl;
        }
Esempio n. 5
0
        private void GetProductDataResponseCallback(GetProductDataResponse eventName)
        {
            if (eventName.Status == "NOT_SUPPORTED")
            {
                EB.Debug.LogError("GetProductDataResponseCallback: NOT_SUPPORTED");

                if (_items != null)
                {
                    foreach (Item item in _items)
                    {
                        item.valid = false;
                    }

                    if (_config.OnEnumerate != null)
                    {
                        _config.OnEnumerate();
                    }
                }

                return;
            }

            if (eventName.Status == "FAILED")
            {
                EB.Debug.LogError("GetProductDataResponseCallback: FAILED");

                if (_items != null)
                {
                    foreach (Item item in _items)
                    {
                        item.valid = false;
                    }

                    if (_config.OnEnumerate != null)
                    {
                        _config.OnEnumerate();
                    }
                }

                return;
            }

            if (_items != null && eventName.ProductDataMap != null)
            {
                EB.Debug.Log("GetProductDataResponseCallback: products = {0}", eventName.ToJson());
                foreach (Item item in _items)
                {
                    if (eventName.ProductDataMap.ContainsKey(item.productId))
                    {
                        ProductData productData = eventName.ProductDataMap[item.productId];
                        item.valid          = true;
                        item.localizedTitle = productData.Title;
                        item.localizedDesc  = productData.Description;
                        item.localizedCost  = productData.Price;

                        //TODO: amazon doesn't seem to provide a currency code, or cents value
                        //item.currencyCode = "";

                        EB.Debug.Log("parsing cents: {0}", productData.Price);
                        float  costValue = 0.0f;
                        string price     = productData.Price;

                        //TODO: need to make sure this works for all currency
                        if (float.TryParse(price, out costValue))
                        {
                            item.cents = (int)(costValue * 100);
                            EB.Debug.Log("cents: {0}", item.cents);
                            break;
                        }
                        else
                        {
                            item.cents = (int)item.cost * 100;
                        }

                        EB.Debug.Log("Cost {0}", item.cost);
                        EB.Debug.Log("item currency code {0}", item.currencyCode);

                        //TODO: Are there other item members that need filling here?
                    }
                }

                if (_config.OnEnumerate != null)
                {
                    _config.OnEnumerate();
                }

                // now that we've successfully called Amazon, AmazonIAP.initiateItemDataRequest we are allowed to start other AmazonIAP operations.
                Coroutines.Run(RequestAmazonUserId());
            }
        }