示例#1
0
        public void OnPurchaseFailed (Product i, PurchaseFailureReason p) {

            Debug.Log("OnPurchaseFailed : " + p.ToString());
            Debug.Log(JsonConvert.SerializeObject(i));

            ProductMetadata metaData = i.metadata;

            if (this.PurchaseFailedDelegate != null) this.PurchaseFailedDelegate(p.ToString());

        }
示例#2
0
        //购买失败
        public void OnPurchaseFailed(Product e, PurchaseFailureReason p)
        {
            //var wrapper = (Dictionary<string, object>)MiniJson.JsonDecode(e.receipt);
            //var store = (string)wrapper["Store"];

            //var payload = (string)wrapper["Payload"];
            //ISGoogle = true;
            //var gpDetails = (Dictionary<string, object>)MiniJson.JsonDecode(payload);
            //var gpJson = (string)gpDetails["json"];
            //var gpSig = (string)gpDetails["signature"];

            //NetworkManager.(CLIENT_CUSTOM_MESSAGE_ENUM.CLIENT_CUSTOMMSG_GOOGLE_DELIVERY, (int)p, gpJson, gpSig);
            if (p == PurchaseFailureReason.UserCancelled)
            {
                mPayCallback(-2000, null);
            }
            else
            {
                if (p == PurchaseFailureReason.PurchasingUnavailable || p == PurchaseFailureReason.DuplicateTransaction)
                {
                    OnConfirmProduct(e.definition.id);
                }
                mPayCallback(-3000, null);
                //OnConfirmProduct(e.definition.id);
            }
            currenTransaction = null;
            EB.Debug.Log("购买失败--------------------" + p.ToString());
        }
示例#3
0
 public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason)
 {
     if (OnIAPPurchaseFailed != null)
     {
         OnIAPPurchaseFailed(ConvertFromProduct(product), failureReason.ToString());
     }
 }
示例#4
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(string.Format("OnPurchaseFailed: FAIL. Product: '{0}', PurchaseFailureReason: {1}", product.definition.storeSpecificId, failureReason));
     options.ShowResult(4, failureReason.ToString());
 }
示例#5
0
 /// <summary>
 /// Called when a purchase fails, providing the product and reason.
 /// </summary>
 public void OnPurchaseFailed(Product p, PurchaseFailureReason r)
 {
     if (purchaseFailedEvent != null)
     {
         purchaseFailedEvent(r.ToString());
     }
 }
示例#6
0
文件: IAP.cs 项目: srob7556/UnityGame
 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.
     Debug.Log(string.Format("OnPurchaseFailed: FAIL. Product: '{0}', PurchaseFailureReason: {1}", product.definition.storeSpecificId, failureReason));
     purchaseFailed.SetActive(true);
     failInformation.text = "Purchase failed: " + failureReason.ToString();
 }
示例#7
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
                {
                    if (dic.ContainsKey(k_Errorcode) && Convert.ToInt32(dic[k_Errorcode]) == PURCHASE_PENDING_CODE)
                    {
                        if (null != m_DeferredCallback)
                        {
                            OnPurchaseDeferred(product.storeSpecificId);
                        }
                        return;
                    }

                    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);
        }
示例#8
0
 public void OnPurchaseFailed(Product i, PurchaseFailureReason p)
 {
     if (isDebugging)
     {
         Debug.Log(string.Format("[IAP] Product purchase for {0} failed: {1}", i.definition.id.ToString(), p.ToString()));
     }
     listener.OnPurchaseResult(false, i.definition.id, p.ToString());
 }
 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(string.Format("OnPurchaseFailed: FAIL. Product: '{0}', PurchaseFailureReason: {1}", product.definition.storeSpecificId, failureReason));
     FirebaseManager.LogCrashlytics(failureReason.ToString());
     FirebaseManager.LogException(new Exception("IAP Purchase Failed"));
 }
 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.
     PurchaseResult(false,
                    Regex.Replace(failureReason.ToString(), "(?!^)([A-Z])", " $1"),
                    "[" + TAG_PURCHASE + "]: FAIL. Product: " + product.definition.storeSpecificId + ", PurchaseFailureReason: " + failureReason);
 }
示例#11
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);
     }
     purchaseFailedEvent(reason.ToString());
 }
示例#12
0
 private void OnPurchaseFail(PurchaseFailureReason reason)
 {
     //支付失败原因
     Debug.Log("Purchase Fail:" + reason.ToString());
     if (reason == PurchaseFailureReason.UserCancelled)
     {
         //用户取消支付
     }
 }
示例#13
0
    public void OnPurchaseFailed(Product product, PurchaseFailureReason reason)
    {
        Debug.Log(GetType().Name + " OnInitializeFailed() : " + product.definition.storeSpecificId + " " + reason);

        _isInProgress = false;

        if (handleFailed != null)
        {
            handleFailed(product.definition.id, reason.ToString());
        }
    }
示例#14
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");
            }
        }
示例#15
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();
            }
        }
示例#17
0
    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);
    }
示例#18
0
    /// <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);
    }
 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;
     }
 }
示例#20
0
        void IStoreListener.OnPurchaseFailed(UnityEngine.Purchasing.Product unityProduct, PurchaseFailureReason reuqest)
        {
            string id      = unityProduct.definition.id;
            var    product = _products.Find(_ => _.Id == id);

            Result result;

            if (reuqest == PurchaseFailureReason.UserCancelled)
            {
                result = Result.Other;
                Debug.Log("Purchase user cancelled: " + id);
            }
            else
            {
                result = Result.Fail;
                Debug.Log("Purchase error: " + id + " " + reuqest.ToString());
            }

            _purchasingEvent?.Invoke(id, result, null);
        }
示例#21
0
 public void OnPurchaseFailed(Product i, PurchaseFailureReason p)
 {
     Debug.Log("IAP purchase failed: " + p.ToString());
 }
示例#22
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);
        }
示例#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;
        }
    }
示例#24
0
 public void OnPurchaseFailed(Product i, PurchaseFailureReason p)
 {
     Debug.Log("Error while buying" + p.ToString());
 }
示例#25
0
 public void OnPurchaseFailed(Product i, PurchaseFailureReason error)
 {
     OnPurchaseFailedHandler(this, new ErrorEventArgs(error.ToString()));
 }
        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;
            }
        }
示例#27
0
 public void OnPurchaseFailed(Product product, PurchaseFailureReason error)
 {
     _client._exception = new BadGatewayException(error.ToString());
     _client._status    = Status.PurchaseFailed;
 }
示例#28
0
 // 支付失败回掉函数;
 public void OnPurchaseFailed(Product item, PurchaseFailureReason r)
 {
     Debug.LogError($"UNITY IAP FIALD id = {item.definition.id} , reason : {r.ToString()}");
     m_PurchaseInProgress = false;
 }
示例#29
0
 public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason)
 {
     goPremiumPopup.ShowFailPopup(failureReason.ToString());
     Firebase.Analytics.FirebaseAnalytics.LogEvent("go_premium_popup_purchase_fail");
 }
示例#30
0
 public void OnPurchaseFailed(Product product, PurchaseFailureReason reason)
 {
     _OnPurchaseFailed(product.definition.id, reason.ToString());
 }
示例#31
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());
		}
示例#32
0
 public void PurchaseFail(Product product, PurchaseFailureReason purchaseFailureReason)
 {
     Information.text = purchaseFailureReason.ToString();
     NotificationPanel.SetActive(true);
     BackPanel.SetActive(true);
 }