public static void RequestProductPurchase(string productId, Action <InAppProductPurchaseResult> callback) { if (callback == null) { return; } Execute.ExecuteOnUIThread(async delegate { InAppProductPurchaseResult inAppProductPurchaseResult = new InAppProductPurchaseResult { Status = InAppProductPurchaseStatus.Cancelled }; try { productId = InAppPurchaseService.ToInAppProductId(productId); PurchaseResults purchaseResults = await CurrentApp.RequestProductPurchaseAsync(productId); if (purchaseResults != null) { inAppProductPurchaseResult.ReceiptXml = purchaseResults.ReceiptXml; inAppProductPurchaseResult.TransactionId = purchaseResults.TransactionId; if (!string.IsNullOrEmpty(purchaseResults.ReceiptXml)) { inAppProductPurchaseResult.Status = InAppProductPurchaseStatus.Purchased; } } } catch { inAppProductPurchaseResult.Status = InAppProductPurchaseStatus.Error; } callback.Invoke(inAppProductPurchaseResult); }); }
public static async void LoadUnfulfilledConsumables(string productId, Action <List <InAppUnfulfilledProduct> > callback) { if (callback != null) { List <InAppUnfulfilledProduct> list = new List <InAppUnfulfilledProduct>(); if (AppGlobalStateManager.Current.GlobalState.PaymentType == AccountPaymentType.money) { callback.Invoke(list); } else { try { IEnumerator <UnfulfilledConsumable> var_2 = (await CurrentApp.GetUnfulfilledConsumablesAsync()).GetEnumerator(); try { while (var_2.MoveNext()) { UnfulfilledConsumable var_3_BD = var_2.Current; string var_4_C9 = InAppPurchaseService.ToServerMerchantProductId(var_3_BD.ProductId); if (string.IsNullOrEmpty(productId) || !(var_4_C9 != productId)) { list.Add(new InAppUnfulfilledProduct { ProductId = var_4_C9, TransactionId = var_3_BD.TransactionId }); } } } finally { if (var_2 != null) { var_2.Dispose(); } } } catch { } callback.Invoke(list); } } }
public static async void LoadProductReceipt(string productId, Action <string> callback) { if (callback != null) { string text = ""; try { productId = InAppPurchaseService.ToInAppProductId(productId); string text2 = await CurrentApp.GetProductReceiptAsync(productId); text = text2; } catch { } callback.Invoke(text); } }
public static void Generate(AccountPaymentType paymentType, List <StockItem> stockItems, Action <List <VotesPack> > callback) { if (paymentType == AccountPaymentType.inapp) { InAppPurchaseService.LoadProductPrices((Action <Dictionary <string, string> >)(votesPrices => { if (votesPrices == null) { return; } VotesPacksGenerator.CreateVotesPacks((IEnumerable <StockItem>)stockItems, (IDictionary <string, string>)votesPrices, callback); })); } else { VotesPacksGenerator.CreateVotesPacks((IEnumerable <StockItem>)stockItems, null, callback); } }
public static void ReportConsumableProductFulfillment(InAppUnfulfilledProduct product, Action callback = null) { if (product == null) { return; } Execute.ExecuteOnUIThread(async delegate { try { await CurrentApp.ReportConsumableFulfillmentAsync(InAppPurchaseService.ToInAppProductId(product.ProductId), product.TransactionId); } catch { } Action expr_A2 = callback; if (expr_A2 != null) { expr_A2.Invoke(); } }); }