Ejemplo n.º 1
0
    public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs args)
    {
        string productID = args.purchasedProduct.definition.id;

        PayoutDefinition payout = args.purchasedProduct.definition.payout;

        if (payout != null)
        {
            Debug.Log("Payout for this item detected...");
        }

        bool validReceipt = ValidateReceipt(args.purchasedProduct);

        switch (productID)
        {
        case productIDConsumable_MediumPotion:
            Debug.LogFormat("Consumable product {0} successfully purchased!", productID);
            break;

        case productIDNonConsumable_RareHelm:
            Debug.LogFormat("Non-Consumable product {0} successfully purchased!", productID);
            break;

        case productIDSubscription_AutoRenew:
            Debug.LogFormat("Subscription {0} successfully purchased!", productID);
            QuerySubscriptionInfo(args.purchasedProduct);
            break;

        default:
            Debug.LogFormat("Product purchase failed due to unrecognized product ID -> {0}", productID);
            break;
        }

        return(PurchaseProcessingResult.Complete);
    }
Ejemplo n.º 2
0
    private static Product BuildProduct()
    {
        PayoutDefinition  payout     = new PayoutDefinition("subtype", 3);
        ProductDefinition definition = new ProductDefinition("product_id", "store_id", ProductType.Consumable, true, payout);
        ProductMetadata   metadata   = new ProductMetadata("15.00", "my_product", "prodcut decription", "USD", decimal.Parse("15.00"));

        var     ctor    = typeof(Product).GetConstructor(BindingFlags.NonPublic | BindingFlags.Instance, null, new[] { typeof(ProductDefinition), typeof(ProductMetadata), typeof(string) }, null);
        Product product = ctor.Invoke(new object[] { definition, metadata, IOSProductReceipt }) as Product;

        return(product);
    }
Ejemplo n.º 3
0
        public static float GetFloat([CanBeNull] this PayoutDefinition def)
        {
            var retval = 0f;

            if (def != null)
            {
                if (!float.TryParse(def.data, out retval))
                {
                    retval = (float)def.quantity;
                }
            }
            return(retval);
        }
Ejemplo n.º 4
0
        public static int GetInt([CanBeNull] this PayoutDefinition def)
        {
            var retval = 0;

            if (def != null)
            {
                if (!int.TryParse(def.data, out retval))
                {
                    retval = (int)def.quantity;
                }
            }
            return(retval);
        }
Ejemplo n.º 5
0
        public static ShopItem FromPayoutDefinition(PayoutDefinition definition)
        {
            ShopItem shopItem = new ShopItem();

            shopItem.count = (int)definition.quantity;
            if (definition.subtype.Contains("gems"))
            {
                shopItem.type = ShopItemType.Gem;
            }
            else if (definition.subtype.Contains("coins"))
            {
                shopItem.type = ShopItemType.Coin;
            }
            else if (definition.subtype.Contains("tank") && definition.subtype.Contains("Cards"))
            {
                shopItem.type = ShopItemType.TankCard;
                shopItem.id   = definition.subtype.Replace("Cards", "");
            }
            return(shopItem);
        }