/// <summary> /// Initializes the Payment Observer and adds it to the Payment Queue /// </summary> public Task StartAsync() { // Make sure we don't get initialized twice if (_paymentObserver != null) { throw new InAppPurchaseException(PurchaseError.DeveloperError, "PaymentObserver has been already created"); } _paymentObserver = new PaymentObserver(); // Start Observing the Payment Queue SKPaymentQueue.DefaultQueue.AddTransactionObserver(_paymentObserver); return(Task.CompletedTask); }
/// <summary> /// Removes the Observer from the Payment Queue /// </summary> public Task StopAsync() { try { // Disconnect only if we were connected if (_paymentObserver != null) { SKPaymentQueue.DefaultQueue.RemoveTransactionObserver(_paymentObserver); _paymentObserver = null; } } catch (Exception ex) { Debug.WriteLine($"Unable to RemoveTransactionObserver: {ex.Message}"); } return(Task.CompletedTask); }