示例#1
0
        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);
            }
        }