Esempio n. 1
0
        void OnEnable()
        {
#if UNITY_IOS && STOREKIT
            StoreKitManager.productListReceivedEvent += ASKProductListReceived;

            StoreKitManager.purchaseSuccessfulEvent += ASKPurchaseSuccessful;
            StoreKitManager.purchaseFailedEvent     += ASKPurchaseFailed;
            StoreKitManager.purchaseCancelledEvent  += ASKPurchaseCancel;

            StoreKitManager.restoreTransactionsFailedEvent   += ASKRestoreTransactionsFailed;
            StoreKitManager.restoreTransactionsFinishedEvent += ASKRestoreTransactionsFinished;
#endif
#if UNITY_ANDROID && !AMAZONSTORE && GOOGLEIAB
            GoogleIABManager.billingSupportedEvent        += IABBillingSupported;
            GoogleIABManager.billingNotSupportedEvent     += IABBillingNotSupported;
            GoogleIABManager.queryInventorySucceededEvent += IABQueryInventorySucceeded;
            GoogleIABManager.queryInventoryFailedEvent    += IABQueryInventoryFailed;
            GoogleIABManager.purchaseCompleteAwaitingVerificationEvent += IABPurchaseCompleteAwaitingVerification;
            GoogleIABManager.purchaseSucceededEvent        += IABPurchaseSucceeded;
            GoogleIABManager.purchaseFailedEvent           += IABPurchaseFailed;
            GoogleIABManager.consumePurchaseSucceededEvent += IABConsumePurchaseSucceeded;
            GoogleIABManager.consumePurchaseFailedEvent    += IABConsumePurchaseFailed;
#endif
#if UNITY_ANDROID && AMAZONSTORE
            // Register for an event
            iapService.AddGetPurchaseUpdatesResponseListener(OnPurchaseUpdatesResponse);
            iapService.AddGetProductDataResponseListener(OnProductDataResponse);
            iapService.AddPurchaseResponseListener(OnPurchaseResponse);
            iapService.AddGetUserDataResponseListener(OnUserDataResponse);
#endif
        }
Esempio n. 2
0
 void OnEnable()
 {
     EB.Debug.Log("AmazonIAPOnEnable");
     // Listen to all events for illustration purposes
     _iapService.AddGetUserDataResponseListener(GetUserDataResponseCallback);
     _iapService.AddPurchaseResponseListener(PurchaseResponseCallback);
     _iapService.AddGetProductDataResponseListener(GetProductDataResponseCallback);
     _iapService.AddGetPurchaseUpdatesResponseListener(GetPurchaseUpdatesResponseCallback);
 }
Esempio n. 3
0
 private void SubscribeToEvents()
 {
             #if AMAZON_BILLING_ENABLED
     iapService.AddGetUserDataResponseListener(GetUserDataHandler);
     iapService.AddPurchaseResponseListener(PurchaseProductHandler);
     iapService.AddGetProductDataResponseListener(GetProductDataHandler);
     iapService.AddGetPurchaseUpdatesResponseListener(GetPurchaseUpdatesHandler);
             #endif
 }
Esempio n. 4
0
        /// <summary>
        /// get iaps and subs information by skus
        /// </summary>
        /// <param name="ProductIds">list of iaps to be retrieved. iap and subs are mixed</param>
        /// <param name="itemType">not required for amazon</param>
        /// <returns></returns>
        public async Task <List <InAppBillingProduct> > GetProductsAsync(List <string> ProductIds, ItemType itemType = ItemType.InAppPurchase)
        {
            var taskCompletionSource = new TaskCompletionSource <List <InAppBillingProduct> >();


            //await Task.Delay(TimeSpan.FromMilliseconds(1));an.FromMilliseconds(1));
            if (context == null)
            {
                context = AmazonIapV2Impl.Instance;
            }


            // Construct object passed to operation as input
            SkusInput request = new SkusInput();

            request.Skus = ProductIds;

            // Call synchronous operation with input object
            string requestId = context.GetProductData(request).RequestId;
            // Get return value
            GetProductDataResponseDelegator delegator = null;

            delegator = new GetProductDataResponseDelegator(async response =>
            {
                await Task.Run(() =>
                {
                    if (response.RequestId == requestId)
                    {
                        var result = GetProductEventHandler(response);
                        var sucess = taskCompletionSource.TrySetResult(result);

                        context.RemoveGetProductDataResponseListener(delegator.responseDelegate);
                    }
                });
            });

            // Register for an event
            context.AddGetProductDataResponseListener(delegator.responseDelegate);

            return(await taskCompletionSource.Task);
        }