// Constructor void Start() { var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance()); for (int i = 0; i < inAppPurchaseSettings.products.Length; i++) { InAppPurchaseSettings.GameProduct gameProduct = inAppPurchaseSettings.products [i]; IDs ids = new IDs(); ids.Add(inAppPurchaseSettings.mainId + "." + gameProduct.id, GooglePlay.Name); ids.Add(inAppPurchaseSettings.mainId + "." + gameProduct.id, AppleAppStore.Name); builder.AddProduct(gameProduct.id, gameProduct.type, ids); } UnityPurchasing.Initialize(this, builder); }
/// <summary> /// Called when Unity IAP is ready to make purchases. /// </summary> public void OnInitialized(IStoreController controller, IExtensionProvider extensions) { this.controller = controller; this.extensions = extensions; for (int i = 0; i < inAppPurchaseSettings.products.Length; i++) { InAppPurchaseSettings.GameProduct gameProduct = inAppPurchaseSettings.products [i]; Product product = controller.products.WithID(gameProduct.id); if (product == null) { Debug.LogError("$ Critical error product with id returns null."); } foreach (var function in inAppPurchaseSettings.onInitialized) { function.SafeInvoke(product); } } }
/// <summary> /// Called when a purchase completes. /// /// May be called at any time after OnInitialized(). /// </summary> public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs e) { for (int i = 0; i < inAppPurchaseSettings.products.Length; i++) { InAppPurchaseSettings.GameProduct gameProduct = inAppPurchaseSettings.products [i]; if (string.Equals(e.purchasedProduct.definition.id, gameProduct.id, System.StringComparison.Ordinal)) { Debug.Log(string.Format("ProcessPurchase : PASS. Product {0}", e.purchasedProduct.definition.id)); foreach (var function in inAppPurchaseSettings.onBuyProduct) { function.SafeInvoke(e.purchasedProduct); } return(gameProduct.result); } } return(PurchaseProcessingResult.Complete); }