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); }