public void PurchaseItem(ButtonEventArgs args) { if (!CoreUtility.Me.ShowInternetConnection()) { return; } #if (UNITY_IOS && !STOREKIT) || (UNITY_ANDROID && !GOOGLEIAB) PopupMessages.Me.InAppNotIntegratedMessage(); return; #endif string coststring; int index; int.TryParse(args.data, out index); pID = InAppInfo[index].ID; isRestore = false; isRestoreItemSuccess = false; coststring = isProductReceived && isLocalStoreCost ? InAppInfo[index].CostStringLocaleBase : "$" + InAppInfo[index].CostUSD; MyDebug.Log("InAppManager::PurchaseItem => " + pID + ", " + index + ", " + InAppInfo[index].DisplayName + ", " + coststring); PopupMessages.Me.InAppProcessMessage(InAppInfo[index].DisplayName, coststring); #if UNITY_EDITOR PurchaseSuccessful(pID, "UnityTest_" + System.DateTime.Now.ToOADate()); return; #endif #region iOS Methods #if UNITY_IOS && !UNITY_EDITOR && STOREKIT StoreKitBinding.purchaseProduct(pID, 1); #endif #endregion #region Android => Google Play Mathods #if UNITY_ANDROID && !UNITY_EDITOR && !AMAZONSTORE && GOOGLEIAB GoogleIAB.queryInventory(inappids); #endif #endregion #region Android => Amazon Store Methods #if UNITY_ANDROID && !UNITY_EDITOR && AMAZONSTORE #if UNDERGROUND pID = pID.Replace("supercell.", "supercell.underground."); #endif if (unavailableSkus.Contains(pID)) { ItemUnavailable(pID); return; } // Construct object passed to operation as input SkuInput request = new SkuInput(); request.Sku = pID; // Call synchronous operation with input object RequestOutput response = iapService.Purchase(request); #endif #endregion }
public override void DoUpgrade() { var sku = new SkuInput { Sku = AmazonUpgrade.SKU }; this.amazonIapV2.Purchase(sku); }
public void PurchaseItem(Item item) { EB.Debug.Log("PurchaseItem: " + item.productId); //TODO: if user doesn't have userid yet warning / retry SkuInput sku = new SkuInput(); sku.Sku = item.productId; _iapService.Purchase(sku); }
//BUTTONS public void OnAmazonPurchasePress() { Status.GetComponent <Text>().text = "Processing Purchase...."; purchaseRequest = new SkuInput(); if (ItemToPurchaseField.GetComponent <InputField>().text.Length == 0) { purchaseRequest.Sku = _defaultSKU; } else { purchaseRequest.Sku = ItemToPurchaseField.GetComponent <InputField>().text; } purchaseRequestOutput = iapService.Purchase(purchaseRequest); }
public void Purchase(string SKU) { #if AMAZON_BILLING_ENABLED currentSKU = SKU; // Construct object passed to operation as input SkuInput request = new SkuInput(); // Set input value request.Sku = SKU; // Call synchronous operation with input object RequestOutput response = iapService.Purchase(request); // Get return value string requestIdString = response.RequestId; Debug.Log("requestIdString " + requestIdString); #endif }
/// <summary> /// Purchase iap or sub /// </summary> /// <param name="productId">iap or sub sku to be purchased</param> /// <param name="itemType">not required for amazon</param> /// <param name="payload">not used for amazon</param> /// <param name="verifyPurchase">not used for amazon</param> /// <returns></returns> public async Task <PurchaseResult> PurchaseAsync(string productId, ItemType itemType = ItemType.InAppPurchase, string payload = null, IInAppBillingVerifyPurchase verifyPurchase = null) { if (await CheckIfUserHasActiveSubscriptionAsync(productId)) { return new PurchaseResult() { PurchaseState = PurchaseState.Purchased, Sku = productId } } ; if (context == null) { context = AmazonIapV2Impl.Instance; } //bool userOwnsSubscription = await CheckIfUserHasSubscriptionAsync(subscriptionStoreId); //if (userOwnsSubscription) //{ // Settings.IsSubscribed = true; // // Unlock all the subscription add-on features here. // return true; //} // Construct object passed to operation as input //await Task.Delay(TimeSpan.FromMilliseconds(1));an.FromMilliseconds(1)); var taskCompletionSource = new TaskCompletionSource <PurchaseResult>(); try { SkuInput request = new SkuInput(); // Set input value request.Sku = productId; // Call synchronous operation with input object string requestId = context.Purchase(request).RequestId; // Get return value PurchaseResponseDelegator delegator = null; delegator = new PurchaseResponseDelegator(async response => { await Task.Run(() => { if (response.RequestId == requestId) { var result = GetPurchaseEventHandler(response); var sucess = taskCompletionSource.TrySetResult(result); //await Task.Delay(TimeSpan.FromMilliseconds(1)); context.RemovePurchaseResponseListener(delegator.responseDelegate); } }); }); // Register for an event context.AddPurchaseResponseListener(delegator.responseDelegate); return(await taskCompletionSource.Task); } catch (Exception) { return(new PurchaseResult() { PurchaseState = PurchaseState.Failed, Sku = productId }); } }