コード例 #1
0
ファイル: PurchaserDataModel.cs プロジェクト: Pasdedeux/LTool
    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
    }
コード例 #2
0
ファイル: PurchaserDataModel.cs プロジェクト: Pasdedeux/LTool
    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);
        }
    }