public PurchaseResults(Windows.ApplicationModel.Store.PurchaseResults purchaseResults) { OfferId = purchaseResults.OfferId; ReceiptXml = purchaseResults.ReceiptXml; Status = (ProductPurchaseStatus)purchaseResults.Status; TransactionId = purchaseResults.TransactionId; }
/// <summary> /// Requests a purchase of the application. completionHandler gets called with either true or false indicating if /// the app was purchased. /// /// </summary> public static async void RequestProductPurchase(string productId, Action <PurchaseResults, Exception> onComplete) { try { await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async() => { try { var task = CurrentApp.RequestProductPurchaseAsync(productId).AsTask(); await task; if (onComplete != null) { Windows.ApplicationModel.Store.PurchaseResults result = task.Result; PurchaseResults purchase = null; if (result != null) { purchase = new PurchaseResults(); purchase.OfferId = result.OfferId; purchase.Status = (ProductPurchaseStatus)result.Status; purchase.ReceiptXml = result.ReceiptXml; purchase.ProductReceipt = ProductReceipt.CreateReceipt(result.ReceiptXml); purchase.TransactionId = result.TransactionId; } onComplete(purchase, null); } } catch (Exception ex) { if (onComplete != null) { onComplete(null, ex); } } }); } catch (Exception ex) { if (onComplete != null) { onComplete(null, ex); } } }