public AMN_GetProductDataResponse(GetProductDataResponse data) : base(true) { _requestId = data.RequestId; _productDataMap = data.ProductDataMap; _unavailableSkus = data.UnavailableSkus; _status = data.Status; }
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); }
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; }
// 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; }
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()); } }