public void Install() { #if IAP Purchaser.Instance.InitializedEventHandler += Initialized; Purchaser.Instance.ProcessPurchaseFailEventHandler += BuyFailEventHandler; Purchaser.Instance.ProcessPurchaseEventHandler += ProcessPurchase; Purchaser.Instance.ProcessPurchaseReceiptEventHandler += ProcessPurchaseReceipt; ProductsDict = new Dictionary <string, PurchaserStoreItem>(); var products = PurchaserConfig.Instance.products; for (int i = 0; i < products.Count; i++) { PurchaserStoreItem si = new PurchaserStoreItem(products[i]); si.AddStoreItemEventHandler += AddShopItem; if (!ProductsDict.ContainsKey(si.BuyID)) { ProductsDict.Add(si.BuyID, si); } else { ProductsDict[si.BuyID] = si; } } Purchaser.Instance.Initialize(); #endif }
public void AddShopItem(string productID, bool isConfig = false)//, ProductMetadata meta = null) { LDebug.Log("========>购买了商品 " + productID); //StatisticManager.Instance.DOT( "shop_buy_" + Purchaser.Instance.products.IndexOf( productID ) ); PurchaserStoreItem result = null; //商品购买成功逻辑 if (ProductsDict.ContainsKey(productID)) { result = ProductsDict[productID]; } else { var targets = ProductsDict.Where(e => e.Value.AlternativeBuyID == productID); if (targets.Count() > 0) { var target = targets.First(); result = target.Value; } } if (result != null) { BuySuccessEvent?.Invoke(result); } }