/// <summary> Consumes a MANAGED product. </summary> /// /// <param name="productId"> Identifier for the product. </param> public void Consume(string productId) { SoomlaUtils.LogDebug(TAG, "WStorePlugin consume " + productId); try { if (StoreConfig.STORE_TEST_MODE) { MockCurApp.ReportProductFulfillment(productId); } else { CurApp.ReportProductFulfillment(productId); } } catch (InvalidOperationException e) { SoomlaUtils.LogDebug(TAG, e.Message); } }
private async void DoPurchase(string productId) { try { bool licenceActiv = false; if (StoreConfig.STORE_TEST_MODE) { // Kick off purchase; don't ask for a receipt when it returns await MockCurApp.RequestProductPurchaseAsync(productId, false); licInfosMock = MockCurApp.LicenseInformation; licenceActiv = licInfosMock.ProductLicenses[productId].IsActive; } else { // Kick off purchase; don't ask for a receipt when it returns await CurApp.RequestProductPurchaseAsync(productId, false); licInfos = CurApp.LicenseInformation; licenceActiv = licInfos.ProductLicenses[productId].IsActive; } if (licenceActiv) { OnItemPurchasedCB(productId); } else { SoomlaUtils.LogDebug(TAG, "Purchase cancelled " + productId); OnItemPurchaseCancelCB(productId, false); } } catch (Exception ex) { // When the user does not complete the purchase (e.g. cancels or navigates back from the Purchase Page), an exception with an HRESULT of E_FAIL is expected. SoomlaUtils.LogDebug(TAG, ex.Message); OnItemPurchaseCancelCB(productId, true); } }