public static void Purchase(string productId) { Init(); m_buyingProductId = new NSString(productId); m_priceObserver = NSNotificationCenter.DefaultCenter.AddObserver( PurchaseManager.InAppPurchaseManagerTransactionSucceededNotification, (notification) => { string prodDescr = IAP.GetDescription(productId); Console.WriteLine("Success Purchasing " + productId + ": " + prodDescr); MarkPurchased(productId); IAPOK?.Invoke(productId); }); m_requestObserver = NSNotificationCenter.DefaultCenter.AddObserver( PurchaseManager.InAppPurchaseManagerRequestFailedNotification, (notification) => { string errorStr = IAP.GetStringFromNotification(notification); IAPError?.Invoke(errorStr); }); SKPaymentQueue.DefaultQueue.AddTransactionObserver(m_observer); if (!m_pricesLoaded) { m_iap.RequestProductData(m_products); } else { m_iap.PurchaseProduct(m_buyingProductId); } }