Beispiel #1
0
 public void OnPurchaseFailed(Product i, PurchaseFailureReason p)
 {
     try
     {
         Debug.Log($"PurchaseFailed: {i} - {p}");
         if (i != null && onConsumablePurcheseActions.ContainsKey(i.definition.id))
         {
             var act = onConsumablePurcheseActions[i.definition.id];
             act?.Invoke(false, null);
             onConsumablePurcheseActions.Remove(i.definition.id);
         }
     }
     catch { }
 }
Beispiel #2
0
    public void OnPurchaseFailed(Product InProduct, PurchaseFailureReason InReason)
    {
        Debug.Log(string.Format("[IapPurchaser]    OnPurchaseFailed: FAIL. Product: '{0}', PurchaseFailureReason: {1}", InProduct.definition.storeSpecificId, InReason));

        UnityAction <int, Product> action;

        if (orderQueue.TryGetValue(InProduct.transactionID, out action))
        {
            if (null != action)
            {
                action.Invoke((int)InReason, InProduct);
            }
        }
    }
    /// <summary>
    /// OnPurchaseFailed.
    /// </summary>
    public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason)
    {
#if DEBUG_MY_IAP || UNITY_EDITOR
        Debug.LogError(string.Format("[" + typeof(MyIAPManager).Name + "] OnPurchaseFailed(): storeSpecificId={0} | failureReason={1}", product.definition.storeSpecificId, failureReason.ToString()));
#endif

        mPurchasingProductID = null;

        if (mOnPurchaseFailureCallback != null)
        {
            mOnPurchaseFailureCallback(product, failureReason);
            mOnPurchaseFailureCallback = null;
        }
    }
            public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason)
            {
                // A product purchase attempt did not succeed. Check failureReason for more detail. Consider sharing
                // this reason with the user to guide their troubleshooting actions.
                if (Debug.isDebugBuild)
                {
                    Debug.Log(string.Format("Purchase product FAILED: Product: '{0}', PurchaseFailureReason: {1}", product.definition.storeSpecificId, failureReason));
                }

                // Fire purchase failure event
                IAPProduct pd = GetIAPProductById(product.definition.id);

                PurchaseFailed(pd);
            }
Beispiel #5
0
        public override void Purchase(ProductDefinition product, string developerPayload)
        {
            m_Bindings.Purchase(product.storeSpecificId, (success, message) =>
            {
                var dic = message.HashtableFromJson();
                if (success)
                {
                    var transactionId   = dic.GetString("GameOrderId");
                    var storeSpecificId = dic.GetString("ProductId");
                    if (!string.IsNullOrEmpty(transactionId))
                    {
                        dic["transactionId"] = transactionId;
                    }

                    if (!string.IsNullOrEmpty(storeSpecificId))
                    {
                        dic["storeSpecificId"] = storeSpecificId;
                    }

                    if (!product.storeSpecificId.Equals(storeSpecificId))
                    {
                        m_Logger.LogFormat(LogType.Error,
                                           "UDPImpl received mismatching product Id for purchase. Expected {0}, received {1}",
                                           product.storeSpecificId, storeSpecificId);
                    }

                    var data = dic.toJson();
                    unity.OnPurchaseSucceeded(product.storeSpecificId, data, transactionId);
                }
                else
                {
                    PurchaseFailureReason reason = (PurchaseFailureReason)Enum.Parse(typeof(PurchaseFailureReason),
                                                                                     k_Unknown);

                    var reasonString = reason.ToString();
                    var errDic       = new Dictionary <string, object> {
                        ["error"] = reasonString
                    };

                    if (dic.ContainsKey("purchaseInfo"))
                    {
                        errDic["purchaseInfo"] = dic["purchaseInfo"];
                    }

                    var errData = errDic.toJson();
                    var pfd     = new PurchaseFailureDescription(product.storeSpecificId, reason, message);
                    unity.OnPurchaseFailed(pfd);
                }
            }, developerPayload);
        }
Beispiel #6
0
        public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason)
        {
            PurchaseFailed?.Invoke(product.definition.id, failureReason);
            SceneActivationBehaviour <GameLogicActivator> .Instance.AnalyticsController.SendPurchaseEvent(AnalyticsScripts.QLPurchaseState.QLPurchaseStateFailed,
                                                                                                          product.definition.id,
                                                                                                          (float)product.metadata.localizedPrice,
                                                                                                          product.metadata.isoCurrencyCode,
                                                                                                          SceneActivationBehaviour <StoreUIActivator> .Instance.CoinsForProduct(product.definition.id),
                                                                                                          SceneActivationBehaviour <StoreUIActivator> .Instance.StoreOpenSource);

            // A product purchase attempt did not succeed. Check failureReason for more detail. Consider sharing
            // this reason with the user to guide their troubleshooting actions.
            Debug.Log(string.Format("[IAP] OnPurchaseFailed: FAIL. Product: '{0}', PurchaseFailureReason: {1}", product.definition.storeSpecificId, failureReason));
        }
Beispiel #7
0
 public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason)
 {
     // A product purchase attempt did not succeed. Check failureReason for more detail. Consider sharing
     // this reason with the user to guide their troubleshooting actions.
     if (product.definition.id == remove_ads)
     {
         Debug.Log("REMOVE ADS FAILED");
     }
     else
     {
         Debug.Log("REMOVE ADS HASN'T FAILED");
     }
     Debug.Log(string.Format("OnPurchaseFailed: FAIL. Product: '{0}', PurchaseFailureReason: {1}", product.definition.id, failureReason));
 }
Beispiel #8
0
    /// <summary>
    /// 内购失败
    /// </summary>
    /// <param name="i"></param>
    /// <param name="p">失败原因</param>
    public void OnPurchaseFailed(Product i, PurchaseFailureReason p)
    {
        string failed = "内购失败";

        AllSDKManager.SDKDebug(Name + "内购失败");
        switch (p)
        {
        case PurchaseFailureReason.PurchasingUnavailable:
            AllSDKManager.GetSDK <AllAnalyticsSdk>().Event_IAP_End("系统购买功能不可用");
            break;

        case PurchaseFailureReason.ExistingPurchasePending:
            AllSDKManager.GetSDK <AllAnalyticsSdk>().Event_IAP_End("在请求新购买时,购买已在进行中");
            break;

        case PurchaseFailureReason.ProductUnavailable:
            AllSDKManager.GetSDK <AllAnalyticsSdk>().Event_IAP_End("该商品无法在商店购买");
            break;

        case PurchaseFailureReason.SignatureInvalid:
            AllSDKManager.GetSDK <AllAnalyticsSdk>().Event_IAP_End("购买收据的签名验证失败");
            break;

        case PurchaseFailureReason.UserCancelled:
            AllSDKManager.GetSDK <AllAnalyticsSdk>().Event_IAP_End("用户选择取消而不是继续购买");
            break;

        case PurchaseFailureReason.PaymentDeclined:
            AllSDKManager.GetSDK <AllAnalyticsSdk>().Event_IAP_End("付款有问题");
            break;

        case PurchaseFailureReason.DuplicateTransaction:
            AllSDKManager.GetSDK <AdSdk>().IsEnable = false;
            AllSDKManager.GetSDK <AllAnalyticsSdk>().Event_IAP_End("事务已成功完成时出现重复的事务错误");
            break;

        case PurchaseFailureReason.Unknown:
            AllSDKManager.GetSDK <AllAnalyticsSdk>().Event_IAP_End("未知失败");
            break;

        default:
            break;
        }
        if (buyItemCompleteEvent != null)
        {
            buyItemCompleteEvent(failed);
        }
        AllSDKManager.GetSDK <AllAnalyticsSdk>().Event_IAP_End(failed);
    }
    public void OnPurchaseFailed(Product item, PurchaseFailureReason r)
    {
        string  errorMsg = "";
        Message msg      = new Message();

        switch (r)
        {
        case PurchaseFailureReason.PurchasingUnavailable:
            errorMsg = msg.getMessage(107);
            audioSources[4].Play();
            break;

        case PurchaseFailureReason.ExistingPurchasePending:
            errorMsg = msg.getMessage(108);
            audioSources[4].Play();
            break;

        case PurchaseFailureReason.PaymentDeclined:
            errorMsg = msg.getMessage(109);
            audioSources[4].Play();
            break;

        case PurchaseFailureReason.ProductUnavailable:
            errorMsg = msg.getMessage(110);
            audioSources[4].Play();
            break;

        case PurchaseFailureReason.SignatureInvalid:
            errorMsg = msg.getMessage(111);
            audioSources[4].Play();
            break;

        case PurchaseFailureReason.UserCancelled:
            errorMsg = msg.getMessage(112);
            audioSources[4].Play();
            break;

        case PurchaseFailureReason.Unknown:
            errorMsg = msg.getMessage(113);
            audioSources[4].Play();
            break;
        }
        m_PurchaseInProgress = false;

        //reset
        //Msg

        msg.makeMessageOnGameObject(errorMsg, canvasObj);
    }
Beispiel #10
0
    public void Purchase_Failed(Product _product, PurchaseFailureReason _failureReason)
    {
        switch (_failureReason)
        {
        case PurchaseFailureReason.PurchasingUnavailable:
            textFailureReason = "Compra no disponible";
            break;

        case PurchaseFailureReason.ExistingPurchasePending:
            textFailureReason = "Existencia de compra pendiente";
            break;

        case PurchaseFailureReason.ProductUnavailable:
            textFailureReason = "Producto no disponible";
            break;

        case PurchaseFailureReason.SignatureInvalid:
            textFailureReason = "Firma invalida";
            break;

        case PurchaseFailureReason.UserCancelled:
            textFailureReason = "Usuario cancelado";
            break;

        case PurchaseFailureReason.PaymentDeclined:
            textFailureReason = "Pago rechazado";
            break;

        case PurchaseFailureReason.DuplicateTransaction:
            textFailureReason = "Transaccion duplicada";
            break;

        case PurchaseFailureReason.Unknown:
            textFailureReason = "Desconocido";
            break;
        }

        //Si el producto ya esta cargado, nos muestra el error; sino muestra el texto "Inicializando"
        if (_product != null)
        {
            print("ERROR: " + textFailureReason + " / Producto: " + _product.definition.id);
            txtMessage.text = "ERROR: " + textFailureReason + " / Producto: " + _product.definition.id;
        }
        else
        {
            print("Cargando el producto..");
            txtMessage.text = "Cargando el producto..";
        }
    }
    private void OnPurchaseFailed(Product t, PurchaseFailureReason t1)
    {
        Debug.Log("OnPurchaseFailed ! t:" + t + " PurchaseFailureReason:" + t1);

        OnPayInfo payInfo = new OnPayInfo();

        payInfo.isSuccess = false;
        if (t != null)
        {
            Debug.Log("OnPurchaseFailed ! t.definition:" + t.definition);
            payInfo.goodsId   = t.definition.id;
            payInfo.goodsType = ProductType2GoodsType(t.definition.type);
        }
        PayCallBack(payInfo);
    }
Beispiel #12
0
    public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason)
    {
        // A product purchase attempt did not succeed. Check failureReason for more detail. Consider sharing
        // this reason with the user to guide their troubleshooting actions.
        Debug.Log(
            $"OnPurchaseFailed: FAIL. Product: '{product.definition.storeSpecificId}', PurchaseFailureReason: {failureReason}");

        // When purchase fail due to duplicate transaction, and the item is not shown in client side,
        // do restore purchase to fetch the product.
        // This situation may happen when the user lose internet connection after paying to play store.
        if (failureReason == PurchaseFailureReason.DuplicateTransaction)
        {
            _playStoreExtensions.RestoreTransactions(null);
        }
    }
Beispiel #13
0
        public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason)
        {
            Debug.Log(string.Format("OnPurchaseFailed: FAIL. Product: '{0}', PurchaseFailureReason: {1}", product.definition.storeSpecificId, failureReason));

            if (failureReason.ToString().Contains("DuplicateTransaction"))
            {
                MainScript.self.bannerView.Destroy();
                MainScript.self.ads.SetActive(false);
                MainScript.self.ads_restore.SetActive(false);

                PlayerPrefs.SetInt("noads", 1);
                PlayerPrefs.Save();
                Debug.Log("NO ADS");
            }
        }
Beispiel #14
0
    /// <summary>
    /// A purchase failed with specified reason.
    /// </summary>
    /// <param name="item">The product that was attempted to be purchased. </param>
    /// <param name="r">The failure reason.</param>
    public void OnPurchaseFailed(Product item, PurchaseFailureReason r)
    {
        Debug.Log("Purchase failed: " + item.definition.id);
        Debug.Log(r);

        // Detailed debugging information
        Debug.Log("Store specific error code: " + m_TransactionHistoryExtensions.GetLastStoreSpecificPurchaseErrorCode());
        if (m_TransactionHistoryExtensions.GetLastPurchaseFailureDescription() != null)
        {
            Debug.Log("Purchase failure description message: " +
                      m_TransactionHistoryExtensions.GetLastPurchaseFailureDescription().message);
        }

        m_PurchaseInProgress = false;
    }
Beispiel #15
0
        public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason)
        {
            ShopThingDataReal prod = GetProductById(product.definition.id);

            if (prod != null)
            {
                if (PEvent)
                {
                    PEvent.FailedPurchaseMessage(prod.kProductID, prod.name);
                }
            }

            // A product purchase attempt did not succeed. Check failureReason for more detail. Consider sharing this reason with the user.
            Debug.Log(string.Format("OnPurchaseFailed: FAIL. Product: '{0}', PurchaseFailureReason: {1}", product.definition.storeSpecificId, failureReason));
        }
Beispiel #16
0
        public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason)
        {
            GStateManager.Instance.EnableLoadingSpinner(false);
            IsPurchasing = false;
            // A product purchase attempt did not succeed. Check failureReason for more detail. Consider sharing
            // this reason with the user to guide their troubleshooting actions.
            if (m_enableDebug)
            {
                GDebug.LogError(string.Format("OnPurchaseFailed: FAIL. Product: '{0}', PurchaseFailureReason: {1}", product.definition.storeSpecificId, failureReason));
            }

            if (m_failureCallback != null)
            {
                m_failureCallback.Invoke(-1, -1, "{'reason':'" + failureReason.ToString() + "' }", product);
            }
        }
        public void OnPurchaseFailed(Product i, PurchaseFailureReason p)
        {
            //UserCancelled means the user tapped outside of the payment dialog, closing it
            //Unknown happens when the user hits the Home button while the purchase dialog is open
            //Existing Purchase Pending can happen when the user attempts a purchase offline, then gets an internet connection and tries again
            if (p != PurchaseFailureReason.UserCancelled && p != PurchaseFailureReason.Unknown) //UserCancelled and Unknown are success cases
            {
                _logToDebugOutput("Purchase Failed:");
                _logToDebugOutput("Reason: " + p.ToString());
            }

            //todo real game: save data key for this product id as FALSE
            if (OnPurchaseFailedEventHandler != null)
            {
                OnPurchaseFailedEventHandler();
            }
        }
        public void OnPurchaseFailed(Product item, PurchaseFailureReason reason)
        {
            Debug.Log("Billing::OnPurchaseFailed:" + item.metadata.localizedTitle);

            PurchaseIAPResultCode resultCode = PurchaseIAPResultCode.Failed;
            BillerErrors          error      = BillerErrors.NO_ERROR;
            InAppPurchasableItem  inApp      = CreatePurchasableInAppItem(item);

            switch (reason)
            {
            case PurchaseFailureReason.ExistingPurchasePending:
                error = BillerErrors.ATTEMPTING_TO_PURCHASE_PRODUCT_WITH_SAME_RECEIPT;
                break;

            case PurchaseFailureReason.PaymentDeclined:
                error = BillerErrors.PAYMENT_DECLINED;
                break;

            case PurchaseFailureReason.ProductUnavailable:
                error = BillerErrors.PRODUCT_UNAVAILABLE;
                break;

            case PurchaseFailureReason.PurchasingUnavailable:
                error = BillerErrors.PURCHASING_UNAVAILABLE;
                break;

            case PurchaseFailureReason.SignatureInvalid:
                error = BillerErrors.REMOTE_VALIDATION_FAILED;
                break;

            case PurchaseFailureReason.Unknown:
                error = BillerErrors.UNKNOWN;
                break;

            case PurchaseFailureReason.UserCancelled:
                resultCode = PurchaseIAPResultCode.Cancelled;
                break;
            }

            _isPurchaseInProgress = false;

            PurchaseIAPResult result = new PurchaseIAPResult(inApp, resultCode, error);

            PsdkEventSystem.Instance.NotifyOnBillingPurchased(result);
            reportPurchaseCampaignResult(false);
        }
Beispiel #19
0
        /// <summary>
        /// Called when a purchase fails.
        /// </summary>
        public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason)
        {
            Debug.Log(string.Format("OnPurchaseFailed: FAIL. Product: '{0}', PurchaseFailureReason: {1}", product.definition.storeSpecificId, failureReason));

            // A product purchase attempt did not succeed. Check failureReason for more detail. Consider sharing this reason with the user.
            switch (failureReason)
            {
            // for these cases we don't need to inform further
            case PurchaseFailureReason.UserCancelled:
                break;

            // for these we show an error
            default:
                DialogManager.Instance.ShowError(LocaliseText.Format("GeneralMessage.Error.GeneralError", failureReason));
                break;
            }
        }
Beispiel #20
0
    /// <summary>
    /// This will be called if an attempted purchase fails.
    /// </summary>
    public void OnPurchaseFailed(Product item, PurchaseFailureReason r)
    {
        Debug.Log("Purchase failed: " + item.definition.id);
        Debug.Log(r);

        if (m_IsUnityChannelSelected)
        {
            var extra         = m_UnityChannelExtensions.GetLastPurchaseError();
            var purchaseError = JsonUtility.FromJson <UnityChannelPurchaseError>(extra);

            if (purchaseError != null && purchaseError.purchaseInfo != null)
            {
                // Additional information about purchase failure.
                var purchaseInfo = purchaseError.purchaseInfo;
                Debug.LogFormat(
                    "UnityChannel purchaseInfo: productCode = {0}, gameOrderId = {1}, orderQueryToken = {2}",
                    purchaseInfo.productCode, purchaseInfo.gameOrderId, purchaseInfo.orderQueryToken);
            }

            // Determine if the user already owns this item and that it can be added to
            // their inventory, if not already present.
#if UNITY_5_6_OR_NEWER
            if (r == PurchaseFailureReason.DuplicateTransaction)
            {
                // Unlock `item` in inventory if not already present.
                Debug.Log("Duplicate transaction detected, unlock this item");
            }
#else // Building using Unity strictly less than 5.6; e.g 5.3-5.5.
            // In Unity 5.3 the enum PurchaseFailureReason.DuplicateTransaction
            // may not be available (is available in 5.6 ... specifically
            // 5.5.1p1+, 5.4.4p2+) and can be substituted with this call.
            if (r == PurchaseFailureReason.Unknown)
            {
                if (purchaseError != null && purchaseError.error != null &&
                    purchaseError.error.Equals("DuplicateTransaction"))
                {
                    // Unlock `item` in inventory if not already present.
                    Debug.Log("Duplicate transaction detected, unlock this item");
                }
            }
#endif
        }

        m_PurchaseInProgress = false;
    }
Beispiel #21
0
    private void FailedStorePurchase(PurchaseFailureReason _reason)
    {
        UpdateStoreButtons();
        string reason = "";

        switch (_reason)
        {
        case PurchaseFailureReason.PurchasingUnavailable:
            reason = "Purchasing is Currently Unavaliable";
            break;

        case PurchaseFailureReason.ExistingPurchasePending:
            reason = "Existing Purchase is Pending";
            break;

        case PurchaseFailureReason.ProductUnavailable:
            reason = "Product is Currently Unavaliable";
            break;

        case PurchaseFailureReason.SignatureInvalid:
            reason = "Signature Invalid";
            break;

        case PurchaseFailureReason.UserCancelled:
            reason = "User Cancelled";
            break;

        case PurchaseFailureReason.PaymentDeclined:
            reason = "Payment was Declined";
            break;

        case PurchaseFailureReason.DuplicateTransaction:
            reason = "Duplicate Transaction";
            break;

        case PurchaseFailureReason.Unknown:
            reason = "Please Check your Internet Connection and Try Again";
            break;

        default:
            reason = "Please Check your Internet Connection and try again";
            break;
        }
        upgradesUI.ShowStorePurchaseFailed(reason);
    }
Beispiel #22
0
        public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason)
        {
            Debug.LogError(string.Format("OnPurchaseFailed: FAIL. Product: '{0}', PurchaseFailureReason: {1}",
                                         product.definition.storeSpecificId, failureReason));

            if (failureReason != PurchaseFailureReason.UserCancelled)
            {
                ToastMessage.ShowCustom(DLocalizationManager.Instance.GetLocalText("cannot_purchase"));
            }

            PurchaseInfo info = FindPurchase(product.definition.id);

            if (onPurchaseCompleted != null)
            {
                onPurchaseCompleted(false, info);
            }
            onPurchaseCompleted = null;
        }
Beispiel #23
0
    public void OnPurchaseFailed(Product i, PurchaseFailureReason p)
    {
        PurchaseInProgress.SetValueAndForceNotify(value: false);
        switch (p)
        {
        case PurchaseFailureReason.DuplicateTransaction:
            GiveIAPToUser(i);
            break;

        case PurchaseFailureReason.UserCancelled:
            IAPNotCompleted.Value = new IAPNotCompleted(m_currentlyActiveIAP, "Cancelled", p.ToString());
            break;

        default:
            IAPNotCompleted.Value = new IAPNotCompleted(m_currentlyActiveIAP, "Failed", p.ToString());
            break;
        }
    }
Beispiel #24
0
    public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason)
    {
        Debug.LogFormat(string.Format("Product {0} purchase failed...", product.definition.storeSpecificId));
        switch (failureReason)
        {
        case PurchaseFailureReason.PaymentDeclined:
            Debug.Log("Your payment was declined...");
            break;

        case PurchaseFailureReason.ProductUnavailable:
            Debug.Log("That product is no longer available...");
            break;

        case PurchaseFailureReason.Unknown:
            Debug.Log("An unknown problem occurred with your purchase...");
            break;
        }
    }
    public void unityProductPurchaseFailure(Product product, PurchaseFailureReason purchaseFailureReason)
    {
        string productId      = product.definition.storeSpecificId;
        string productType    = product.definition.type.ToString().ToLower();
        string productReceipt = product.receipt;
        int    quantity       = 1;

        string networkStoreType    = unityNetworkStoreTypeGet();
        string productPurchaseType = unityProductPurchaseTypeGet(productType);

        LogUtil.LogProduct("SCREEN purchased product: " + productId + ", quantity: " + quantity);

        purchaseProcessCompleted = true;

        //ProductNetworkRecord data =
        //    ProductNetworkRecord.Create(
        //        productId,
        //        "Product Purchase",
        //        "Product purchased:" + productId,
        //        false,
        //        product.ToJson(),
        //        productReceipt,
        //        productId,
        //        quantity,
        //        ProductNetworkType.typeThirdParty,
        //        networkStoreType,
        //        productPurchaseType);

        ProductNetworkRecord data =
            ProductNetworkRecord.Create(
                productId,
                "Product Purchase FAILED",
                purchaseFailureReason.ToString(),
                false,
                product.ToJson(),
                productReceipt,
                productId,
                quantity,
                ProductNetworkType.typeThirdParty,
                networkStoreType,
                productPurchaseType);

        BroadcastProductNetworksFailed(data);
    }
    /// <summary>
    /// Called when a purchase fails.
    /// </summary>
    public void OnPurchaseFailed(Product i, PurchaseFailureReason p)
    {
        string key = "购买失败";

        switch (p)
        {
        case PurchaseFailureReason.PurchasingUnavailable:
            key = "系统购买功能不可用";
            break;

        case PurchaseFailureReason.ExistingPurchasePending:
            key = "购买正在进行中";
            break;

        case PurchaseFailureReason.ProductUnavailable:
            key = "开发人员配置错误没有商品";
            break;

        case PurchaseFailureReason.SignatureInvalid:
            key = "购买验证失败";
            break;

        case PurchaseFailureReason.UserCancelled:
            key = "您取消了购买";
            break;

        case PurchaseFailureReason.PaymentDeclined:
            key = "付款出现问题";
            break;

        case PurchaseFailureReason.DuplicateTransaction:
            key = "退出appStore后完成购买";
            break;

        case PurchaseFailureReason.Unknown:
            key = "未知错误购买失败";
            break;
        }
        string [] value = { "购买失败", ", ", key };
        UIController.Instance.PushHint(p.ToString(), null, value);

        SendCallBack(false, i.definition.id);
    }
Beispiel #27
0
        /// <summary>
        ///
        /// </summary>
        public void OnPurchaseFailed(string error, int code)
        {
            if (error.Contains("response:"))
            {
                int startAt = error.IndexOf("response:") + 10;
                int lastAt  = error.IndexOf(":", startAt);
                int.TryParse(error.Substring(startAt, lastAt - startAt), out code);
            }

            PurchaseFailureReason reason = PurchaseFailureReason.Unknown;

            switch (code)
            {
            case 1:
            case -1005:
                reason = PurchaseFailureReason.UserCancelled;
                break;

            case 2:
            case 3:
            case -1001:
            case -1009:
                reason = PurchaseFailureReason.PurchasingUnavailable;
                break;

            case 4:
                reason = PurchaseFailureReason.ProductUnavailable;
                break;

            case 5:
            case -1003:
            case -1004:
            case -1007:
                reason = PurchaseFailureReason.SignatureInvalid;
                break;

            case 7:
                reason = PurchaseFailureReason.ExistingPurchasePending;
                break;
            }

            callback.OnPurchaseFailed(new PurchaseFailureDescription(currentProduct, reason, error));
        }
Beispiel #28
0
        public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason)
        {
            if (isLog)
            {
                Debug.Log(string.Format("Percent [IAP] OnPurchaseFailed: FAIL. Product: {0}, PurchaseFailureReason: {1}", product.definition.storeSpecificId, failureReason));
            }

            isPurchaseInProgress = false;

            if (buyCallback != null)
            {
                buyCallback(GameBaseShopErrorCode.PurchaseFailed, shopId, null, null, null, null, null);
            }
            buyCallback = null;
            if (inappViewUnLockCallback != null)
            {
                inappViewUnLockCallback();
            }
        }
Beispiel #29
0
        public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason)
        {
            // == для IAP Buttons ===

            //bool resultProcessed = false;
            foreach (IAPButton button in activeButtons)
            {
                if (button.productId == product.definition.id)
                {
                    button.OnPurchaseFailedCallback(product, failureReason);
                    //resultProcessed = true;
                }
            }
            // === end ===

            #region === Статистика ===
            double p_price       = Convert.ToDouble(product.metadata.localizedPrice);
            string p_currency    = product.metadata.isoCurrencyCode;
            string p_transaction = "";
            if (!string.IsNullOrEmpty(product.transactionID))
            {
                p_transaction = product.transactionID;
            }

            string receipt = "";
            if (product.hasReceipt)
            {
                receipt = product.receipt;
            }
            Game.Metrica.Report_PurchaseComplete(product.definition.id, false, p_price, p_currency, p_transaction, receipt, failureReason.ToString());
            #endregion


            // A product purchase attempt did not succeed. Check failureReason for more detail. Consider sharing
            // this reason with the user to guide their troubleshooting actions.
            if (debugMode)
            {
                Debug.Log(string.Format("OnPurchaseFailed: FAIL. Product: '{0}', PurchaseFailureReason: {1}", product.definition.storeSpecificId, failureReason));
            }

            OnPurchaseFailedListener?.Invoke(product, failureReason);
        }
 public void ShowStatus(bool isSuccess, UnityEngine.Purchasing.Product product, PurchaseFailureReason reason = PurchaseFailureReason.Unknown)
 {
     if (!autoClose)
     {
         if (isSuccess)
         {
             panel.SetActive(false);
         }
         else
         {
             transactionStatus.text = "Failed";
             if (product != null)
             {
                 buyStatus.text = product.definition.id + "\n" + reason.ToString() + "\n\n<color=#005ed2>Double tap to close.</color>";
             }
             autoClose = true;
         }
         timeStamp = Time.time;
     }
 }
 public void OnPurchaseFailed(Product product, PurchaseFailureReason reason)
 {
     Dictionary<string, object> data = new Dictionary<string, object> {
         { 
             "productID",
             product.definition.storeSpecificId
         },
         { 
             "reason",
             reason
         },
         { 
             "price",
             product.metadata.localizedPrice
         },
         { 
             "currency",
             product.metadata.isoCurrencyCode
         }
     };
     this.m_Analytics.CustomEvent("unity.PurchaseFailed", data);
 }
 public void OnPurchaseFailed(Product i, PurchaseFailureReason p)
 {
     this.m_Analytics.OnPurchaseFailed(i, p);
     this.m_ForwardTo.OnPurchaseFailed(i, p);
 }
Beispiel #33
0
    public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason)
    {
        libraryMenu.windowWarning.Show("Произошла ошибка покупки. Ваши деньги не списаны");

        Debug.Log(string.Format("OnPurchaseFailed: FAIL. Product: '{0}', PurchaseFailureReason: {1}", product.definition.storeSpecificId, failureReason));
    }
        public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason)
        {
            // A product purchase attempt did not succeed. Check failureReason for more detail. Consider sharing
            // this reason with the user to guide their troubleshooting actions.
            string errorText = failureReason.ToString();
            Debug.LogError("IAPMgr Product: "+ product +" failed: "+errorText);

            if (mCurrentOnFailureCallback != null)
            {
                mCurrentOnFailureCallback(errorText);
                mCurrentOnFailureCallback = null;
            }
        }
Beispiel #35
0
 public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason)
 {
     // A product purchase attempt did not succeed. Check failureReason for more detail. Consider sharing this reason with the user.
    // NGUIDebug.Log (string.Format("OnPurchaseFailed: FAIL. Product: '{0}', PurchaseFailureReason: {1}",product.definition.storeSpecificId, failureReason));
 }
Beispiel #36
0
 public void OnPurchaseFailed(Product product, PurchaseFailureReason reason)
 {
     Debug.Log(string.Format("OnPurchaseFailed: FAIL. Product: '{0}', PurchaseFailureReason: {1}", product.definition.storeSpecificId, reason));
 }
Beispiel #37
0
 public void OnPurchaseFailed(Product i, PurchaseFailureReason p)
 {
     
 }
Beispiel #38
0
		/// <summary>
		/// This will be called when an attempted purchase fails.
		/// </summary>
		public void OnPurchaseFailed(Product item, PurchaseFailureReason reason)
		{
            if (isDebug) Debug.Log("IAPManager reports: PurchaseFailed. Error: " + reason);
            if (purchaseFailedEvent != null)
                purchaseFailedEvent(reason.ToString());
		}
Beispiel #39
0
	/// <summary>
	/// This will be called is an attempted purchase fails.
	/// </summary>
	public void OnPurchaseFailed(Product item, PurchaseFailureReason r)
	{
		Debug.Log("Purchase failed: " + item.definition.id);
		Debug.Log(r);

		m_PurchaseInProgress = false;
	}