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); }
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); }
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); }
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); }
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); }