Exemple #1
0
        public TransactionDeleteConfirmationPopupViewModel(ShopTransactionItem transactionItem, Action <ShopTransactionItem> confirmDeleteAction)
        {
            _transactionItem     = transactionItem;
            _confirmDeleteAction = confirmDeleteAction;

            RaisePropertyChanged(() => Articles);
            RaisePropertyChanged(() => Cash);
            RaisePropertyChanged(() => BankCard);
            RaisePropertyChanged(() => DiscountPercentage);
        }
        public static void ValidateIAP(MetaDataStateBase metaDataState, string internalId, string receiptID, bool isOffer, Action <ShopRequestResult> callBack)
        {
            ShopTransactionItem shopTransactionItem = new ShopTransactionItem(ShopItemType.HardCurrency, internalId);
            string            platformType          = UnityEngine.Application.platform.ToString();
            CloudScriptMethod cloudScriptMethod     = new CloudScriptMethod("Shop/ValidateIAP", false);

            cloudScriptMethod.Params.Add("internalId", internalId);
            cloudScriptMethod.Params.Add("receiptID", receiptID);
            cloudScriptMethod.Params.Add("platformType", platformType);
            PlayFabManager.Instance.InvokeBackOffice(cloudScriptMethod, (CloudScriptResponse r, CloudScriptMethod m) => HandleShopResult(r, metaDataState, shopTransactionItem, callBack, true));
        }
        private static void HandleShopResult(CloudScriptResponse response, MetaDataStateBase metaDataState, ShopTransactionItem shopTransactionItem, Action <ShopRequestResult> callBack, bool isIAP = false)
        {
            ShopRequestResult result = null;

            if (response.ResponseCode == ResponseCode.Success && response.Params != null && response.Params.ContainsKey("ShopRequestResult"))
            {
                result = JsonConvert.DeserializeObject <ShopRequestResult>(response.Params["ShopRequestResult"].ToString()) as ShopRequestResult;

                if (result.Result == GenericRequestRewardResultType.Success)
                {
                    shopTransactionItem.Result = GenericRequestRewardResultType.Success;

                    if (result.GetCost() != null && result.GetCost().ConsumableCostItems.Count > 0)
                    {
                        metaDataState.Consumables.SpendConsumables(result.GetCost().ConsumableCostItems);
                    }

                    foreach (RewardDataItem entry in result.GetReward())
                    {
                        metaDataState.Consumables.AddConsumable(entry.Consumable, entry.Amount, isIAP ? "InAppPurchase" : string.Empty);
                    }
                }
            }

            shopTransactionItem.SetTransactionTime();
            metaDataState.ShopState.AllTransactions.Add(shopTransactionItem);

            //result with error code.
            if (result == null)
            {
                result = new ShopRequestResult();
            }

            callBack.Invoke(result);
        }