/// <summary>
        /// Dispose
        /// </summary>
        /// <param name="disposing"></param>
        public void Dispose(bool disposing)
        {
            if (disposed)
            {
                Disposing(disposing);
                return;
            }

            disposed = true;

            if (!disposing)
            {
                Disposing(disposing);
                return;
            }

            if (paymentObserver != null)
            {
                SKPaymentQueue.DefaultQueue.RemoveTransactionObserver(paymentObserver);
                paymentObserver.Dispose();
                paymentObserver = null;
            }


            Disposing(disposing);
        }
 /// <summary>
 /// Default constructor for In App Billing on iOS
 /// </summary>
 public XFInAppBillingImplementation()
 {
     paymentObserver = new PaymentObserver(OnPurchaseComplete, OnShouldAddStorePayment);
     SKPaymentQueue.DefaultQueue.AddTransactionObserver(paymentObserver);
     Dispose(false);
 }