void CheckAndGrantSkin(string SkinName) { GetUserInventoryRequest items = new GetUserInventoryRequest { }; PlayFabClientAPI.GetUserInventory(items, itemInfo => { foreach (var eachStat in itemInfo.Inventory) { bool grant = true; if (eachStat.ItemId == SkinName) { grant = false; } if (grant) { var purchaseRequest = new PurchaseItemRequest(); purchaseRequest.CatalogVersion = "Skins"; purchaseRequest.ItemId = SkinName + "Bundle"; purchaseRequest.VirtualCurrency = "ST"; purchaseRequest.Price = 0; PlayFabClientAPI.PurchaseItem(purchaseRequest, result => { Debug.Log(SkinName + " added"); }, error => { Debug.Log(SkinName + " was not added added"); }); for (int j = 0; j < skinSelection.SkinDetails.Length; j++) { if (skinSelection.SkinDetails[j].Name == SkinName) { skinSelection.Locked[j] = false; } } } } }, itemError => { itemError.GenerateErrorReport(); }); }
public static void PurchaseUserItem(string itemId, uint qty) { if (qty == 1) { string vcKey; int cost; if (PfSharedModelEx.globalClientUser.GetClientItemPrice(null, itemId, out vcKey, out cost)) { var purchaseRequest = new PurchaseItemRequest(); purchaseRequest.ItemId = itemId; purchaseRequest.VirtualCurrency = vcKey; purchaseRequest.Price = cost; PlayFabClientAPI.PurchaseItem(purchaseRequest, PurchaseUserItemCallback, PfSharedControllerEx.FailCallback("PurchaseItem")); } else { Debug.LogWarning("You cannot afford this item"); } } else { var multiRequest = new StartPurchaseRequest(); multiRequest.Items = new List <ItemPurchaseRequest>(); multiRequest.Items.Add(new ItemPurchaseRequest { ItemId = itemId, Quantity = qty }); PlayFabClientAPI.StartPurchase(multiRequest, StartPurchaseCallback, PfSharedControllerEx.FailCallback("StartPurchase")); } }
//注册成功后 void OnRegisterResult(RegisterPlayFabUserResult result) { PlayerPrefs.SetString("Account", username.text); PlayFabUserData.playFabId = result.PlayFabId; PlayFabUserData.username = username.text; PlayFabUserData.displayName = username.text; //连接Photon服务器 PhotonNetwork.ConnectUsingSettings("1.0"); PhotonNetwork.player.name = result.Username; /* 玩家创建账号成功时,为玩家添加默认枪支:AK47 * 先使用PurchaseItemRequest声明一个道具购买请求,再使用PlayFabClientAPI.PurchaseItem发起道具购买请求 * 道具购买成功,禁用游戏登录面板,启用游戏主面板(OnPurchaseItemRequest函数) * 道具购买失败,在控制台输出失败原因(OnPlayFabError函数) */ PurchaseItemRequest request = new PurchaseItemRequest() { CatalogVersion = PlayFabUserData.catalogVersion, VirtualCurrency = "FR", Price = 0, ItemId = "AK47" }; PlayFabClientAPI.PurchaseItem(request, OnPurchaseItemResult, OnPlayFabError); loginingWindow.SetActive(false); //禁用账号登录中提示窗口 loginPanel.SetActive(false); //禁用游戏登录面板 mainPanel.SetActive(true); //启用游戏主面板 }
private void PurchaseInitialHero(string heroId, int cash) { makingPlayFabRequest = true; PurchaseItemRequest purchaseItemRequest = new PurchaseItemRequest() { VirtualCurrency = "GC", Price = cash, ItemId = heroId }; PlayFabClientAPI.PurchaseItem(purchaseItemRequest, (result) => { if (result.Items.Count > 0) { Debug.Log("It looks like player just purchased (" + result.Items[0].ItemId + ") from the catalog"); } else { Debug.Log("Something went wrong and no items were purchased"); } makingPlayFabRequest = false; }, (error) => { Debug.Log("Error purchasing " + heroId + ": " + error.ErrorMessage); makingPlayFabRequest = false; }); }
/// <summary> /// Starts the buy store item. /// </summary> /// <param name="item">Item.</param> /// <param name="storeID">Store I.</param> public static void StartBuyStoreItem(CatalogItem item, string storeID) { if (item.VirtualCurrencyPrices.ContainsKey("RM")) { PF_Bridge.IAB_CurrencyCode = "US"; PF_Bridge.IAB_Price = (int)item.VirtualCurrencyPrices["RM"]; MakeRmPurchase(item.ItemId); return; } var vcKvp = item.VirtualCurrencyPrices.First(); // normal purchase item flow var request = new PurchaseItemRequest(); request.ItemId = item.ItemId; request.VirtualCurrency = vcKvp.Key; request.Price = (int)vcKvp.Value; request.StoreId = storeID; if (PF_PlayerData.activeCharacter != null) { request.CharacterId = PF_PlayerData.activeCharacter.characterDetails.CharacterId; } DialogCanvasController.RequestLoadingPrompt(PlayFabAPIMethods.MakePurchase); PlayFabClientAPI.PurchaseItem(request, OnBuyStoreItemSuccess, PF_Bridge.PlayFabErrorCallback); }
public void PurchaseItem(string username, string password, string itemId, string price) { var loginWithPlayFabRequest = new LoginWithPlayFabRequest { Username = username, Password = password }; PlayFabClientAPI.LoginWithPlayFab(loginWithPlayFabRequest, delegate(LoginResult loginResult) { var purchaseItemRequest = new PurchaseItemRequest() { ItemId = itemId, Price = Convert.ToInt32(price), VirtualCurrency = "MC" }; PlayFabClientAPI.PurchaseItem(purchaseItemRequest, delegate(PurchaseItemResult purchaseItemResult) { Debug.Log("Item Purchased: "); purchaseItemResult.Items.ForEach(item => { Debug.Log("ItemId: " + item.ItemId + ", Price: " + item.UnitPrice + ", VirtualCurrency: " + item.UnitCurrency); }); }, SharedError.OnSharedError); }, SharedError.OnSharedError); }
// Initiate Purchase internal void PurchaseItem(ICatalogItem item) { if (item.IsNativeCatalog) { // Use Unity IAP for real money purchases controller.InitiatePurchase(((NativeCatalogItem)item).item); } else { // PlayFab purcahse using virtual currency var catalogItem = ((PlayFabCatalogItem)item).item; var request = new PurchaseItemRequest { ItemId = catalogItem.ItemId, Price = (int)catalogItem.VirtualCurrencyPrices[cVC], StoreId = cStoreId, VirtualCurrency = cVC }; PlayFabClientAPI.PurchaseItem(request, OnPurchaseSuccess, OnError); spinnerScreen.SetActive(true); } }
public void PreparePurchaseRequest(int price, string itemID) { PurchaseItemRequest request = new PurchaseItemRequest(); request.CatalogVersion = "RetroRun"; request.VirtualCurrency = "GC"; request.Price = price; request.ItemId = itemID; PlayFabClientAPI.PurchaseItem(request, InventoryScript.Instance.OnPurchase, OnPlayFabError); if (price <= PlayFabGameBridge.Instance.userBalance) { updateMarketItems(request.ItemId); OnPurchaseProcess(); if(itemID.StartsWith("S")){ buySkinButton.interactable = false; wearSkinButton.interactable = true; } else { buyMissileButton.interactable = false; wearMissileButton.interactable = true; } } }
void GrantItems() { string defaultSkinID = PlayFabGameBridge.Instance.defaultSkin.skinID; string defaultMissileID = PlayFabGameBridge.Instance.defaultMissile.missileID; int defaultSkinPrice = (int)PlayFabGameBridge.Instance.defaultSkin.price; int defaultMissilePrice = (int)PlayFabGameBridge.Instance.defaultMissile.price; PurchaseItemRequest skinRequest = new PurchaseItemRequest(); skinRequest.CatalogVersion = "RetroRun"; skinRequest.VirtualCurrency = "GC"; skinRequest.Price = defaultSkinPrice; skinRequest.ItemId = defaultSkinID; PlayFabClientAPI.PurchaseItem(skinRequest, InventoryScript.Instance.OnPurchase, OnPlayFabError); PurchaseItemRequest missileRequest = new PurchaseItemRequest(); missileRequest.CatalogVersion = "RetroRun"; missileRequest.VirtualCurrency = "GC"; missileRequest.Price = defaultMissilePrice; missileRequest.ItemId = defaultMissileID; PlayFabClientAPI.PurchaseItem(missileRequest, InventoryScript.Instance.OnPurchase, OnPlayFabError); }
public void PurchaseItem(PurchaseItemRequest request, Action <SimpleItemInfo> callback) { Instance.StartCoroutine(ServiceGetString(callObjectCreator.CreatePurchaseItemCall(request), x => { callback(responseCreator.CreateSimpleItemInfoResponse(x)); })); }
public void PreparePurchaseRequest(int price, string itemID) { PurchaseItemRequest request = new PurchaseItemRequest(); request.CatalogVersion = "RetroRun"; request.VirtualCurrency = "GC"; request.Price = price; request.ItemId = itemID; PlayFabClientAPI.PurchaseItem(request, InventoryScript.Instance.OnPurchase, OnPlayFabError); if (price <= PlayFabGameBridge.Instance.userBalance) { updateMarketItems(request.ItemId); OnPurchaseProcess(); if (itemID.StartsWith("S")) { buySkinButton.interactable = false; wearSkinButton.interactable = true; } else { buyMissileButton.interactable = false; wearMissileButton.interactable = true; } } }
/// <summary> /// Purchase overload for virtual products, as they differ in their workflow on PlayFab. /// Also the virtual currency funds are checked locally before forwarding the request to PlayFab. /// </summary> public void Purchase(IAPObject obj) { int curIndex = 0; for (int i = 0; i < obj.virtualPrice.Count; i++) { if (obj.virtualPrice[i].amount != 0) { curIndex = i; break; } } //local check before doing the request if (DBManager.GetFunds(obj.virtualPrice[curIndex].name) < obj.virtualPrice[curIndex].amount) { IAPManager.OnPurchaseFailed("Insufficient Funds."); return; } PurchaseItemRequest request = new PurchaseItemRequest() { ItemId = obj.id, VirtualCurrency = obj.virtualPrice[curIndex].name.Substring(0, 2).ToUpper(), Price = obj.virtualPrice[curIndex].amount }; PlayFabClientAPI.PurchaseItem(request, OnPurchaseSucceeded, OnVirtualPurchaseFailed); }
void GrantSkin(string skinName) { RewardLabel.text = skinName + " skin"; GetUserInventoryRequest items = new GetUserInventoryRequest { }; PlayFabClientAPI.GetUserInventory(items, itemInfo => { bool grant = true; foreach (var eachStat in itemInfo.Inventory) { if (skinName == eachStat.ItemId) { grant = false; } } if (grant) { var purchaseRequest = new PurchaseItemRequest(); purchaseRequest.CatalogVersion = "Skins"; purchaseRequest.ItemId = skinName + "Bundle"; purchaseRequest.VirtualCurrency = "ST"; purchaseRequest.Price = 0; PlayFabClientAPI.PurchaseItem(purchaseRequest, result => { Debug.Log(skinName + " added"); }, error => { Debug.Log(skinName + " was not added added"); }); } }, itemError => { itemError.GenerateErrorReport(); }); }
public void PurchaseWeaponPrimary() { PurchaseItemRequest request = new PurchaseItemRequest(); request.CatalogVersion = "Weapons"; request.VirtualCurrency = "GO"; if (PrimaryWeaponImages[0].activeSelf) { request.ItemId = "AKM"; request.Price = 2000; PlayFabClientAPI.PurchaseItem(request, result => { Alerts a = new Alerts(); StartCoroutine(a.CreateNewAlert("You have purchased the AKM!")); UpdateCurrentGold(); PlayerOwnsAKM = true; }, error => { Alerts a = new Alerts(); StartCoroutine(a.CreateNewAlert(error.ErrorMessage)); }); } else if (PrimaryWeaponImages[1].activeSelf) { request.ItemId = "M4"; request.Price = 2000; PlayFabClientAPI.PurchaseItem(request, result => { Alerts a = new Alerts(); StartCoroutine(a.CreateNewAlert("You have purchased the M4!")); UpdateCurrentGold(); PlayerOwnsM4 = true; }, error => { Alerts a = new Alerts(); StartCoroutine(a.CreateNewAlert(error.ErrorMessage)); }); } else if (PrimaryWeaponImages[2].activeSelf) { request.ItemId = "L96"; request.Price = 4500; PlayFabClientAPI.PurchaseItem(request, result => { Alerts a = new Alerts(); StartCoroutine(a.CreateNewAlert("You have purchased the L96 Sniper!")); UpdateCurrentGold(); PlayerOwnsL96 = true; }, error => { Alerts a = new Alerts(); StartCoroutine(a.CreateNewAlert(error.ErrorMessage)); }); } }
public void PurchaseItemPlayFab(int itemID, string currency, int price) { var request = new PurchaseItemRequest { ItemId = itemID.ToString(), VirtualCurrency = currency, Price = price }; PlayFabClientAPI.PurchaseItem(request, OnPurchaseItemSuccess, OnPurchaseItemFailure); }
private void Kumo() { PurchaseItemRequest request = new PurchaseItemRequest(); request.ItemId = "Kumo"; request.VirtualCurrency = "DM"; request.Price = 0; PlayFabClientAPI.PurchaseItem(request, OnPurchaseSuccess, OnPlayfabError); }
private UnityTask <PurchaseItemResult> Do(PurchaseItemRequest request) { if (string.IsNullOrEmpty(request.CatalogVersion)) { request.CatalogVersion = PF.CatalogVersion; } return(PF.Do <PurchaseItemRequest, PurchaseItemResult>(request, PlayFabClientAPI.PurchaseItem)); }
public void TryToSpin() { Debug.Log("Attempting to spin..."); var request = new PurchaseItemRequest() { ItemId = "PrizeWheel1", VirtualCurrency = "ST", Price = 1 }; PlayFabClientAPI.PurchaseItem(request, TryToSpinCallback, OnApiCallError); }
public void GrantSkin() { var purchaseRequest = new PurchaseItemRequest(); purchaseRequest.CatalogVersion = "Skins"; purchaseRequest.ItemId = SkinDetails[Chosen].Name + "Bundle"; purchaseRequest.VirtualCurrency = "ST"; purchaseRequest.Price = 0; PlayFabClientAPI.PurchaseItem(purchaseRequest, result => { Debug.Log(SkinDetails[Chosen].Name + " added"); }, error => { Debug.Log(SkinDetails[Chosen].Name + " was not added added"); }); }
public void PurchaseItem() { Debug.Log(SelectCarName); var request = new PurchaseItemRequest() { CatalogVersion = "Main", ItemId = SelectCarName.ToString(), VirtualCurrency = "GD", Price = 20 }; PlayFabClientAPI.PurchaseItem(request, (result) => print("아이템 구입 성공"), (error) => print("아이템 구입 실패")); }
public void TryBuyLives() { Debug.Log("Purchaseing Lives..."); PurchaseItemRequest request = new PurchaseItemRequest() { ItemId = extraLivesBundleId, VirtualCurrency = gmCode, Price = livesBundlePrice }; PlayFabClientAPI.PurchaseItem(request, TryBuyLivesCallback, OnApiCallError); }
/// <summary> /// 상점에서 아이텝 구입 /// </summary> /// <param name="storeName"></param> <=스토어 이름 /// <param name="itemid"></param> <=아이템이 고유의 아이디 playfab 홈페이지에서 앙템 설정해줄때 생성됨 받아올수 아이템 정보를 받아올때 가져 올수 있음 /// <param name="virtualCurrency"></param><=게임내 화폐의 종류 playfab 홈페이지에서 화폐 설정가능하다 /// <param name="price"></param><= 100원? 200원? 얼마나 게임내 화페를 사용할지 public void BuyItem(string storeName, string itemid, string virtualCurrency, int price) { buylastItem = itemid; buyItemPice = price; var request = new PurchaseItemRequest() { CatalogVersion = storeName, ItemId = itemid, VirtualCurrency = virtualCurrency, Price = price }; PlayFabClientAPI.PurchaseItem(request, BuyOk, BuyFail); }
public void BuyItem(string storeID, string itemID, string currency, int price, System.Action <PurchaseItemResult> successCallback, System.Action <PlayFabError> failureCallback) { if (failureCallback == null) { failureCallback = Callback_Generic_Error; } var request = new PurchaseItemRequest { ItemId = itemID, VirtualCurrency = currency, Price = price, StoreId = storeID }; PlayFabClientAPI.PurchaseItem(request, successCallback, failureCallback); }
/// <summary> /// Tries to buy item with virtual currency. /// </summary> /// <param name="item">Item to buy.</param> /// <param name="OnBuySuccess">Callback in case scceeds.</param> public void BuyItemWithVirtualCurrency(CatalogItem item, ProjectDelegates.PlayFabItemBuyCallback OnBuySuccess) { this.OnBuySuccessCallback = OnBuySuccess; PurchaseItemRequest request = new PurchaseItemRequest(); request.ItemId = item.ItemId; request.Price = (int)item.VirtualCurrencyPrices["1"]; request.VirtualCurrency = "1"; PlayFabClientAPI.PurchaseItem(request, OnPurchaseSuccess, OnPurchaseError); }
private void ConfirmBuy() { if ((ItemToBuy != null) && (MainMenuComponent != null)) { Debug.Log("Request buy :" + ItemToBuy.ItemID); PurchaseItemRequest request = new PurchaseItemRequest(); request.ItemId = ItemToBuy.ItemID; request.Price = (int)ItemToBuy.Price; request.VirtualCurrency = ItemToBuy.Currency; PlayFabClientAPI.PurchaseItem(request, PurchaseItemResult, PurchaseItemFailed); MainMenuComponent.ShowWaitIndicator(); } }
public void PurchaseRequest(string catalogVersion, string item, int price, string storeID, string virtualCurrency) { var purchaseItemRequest = new PurchaseItemRequest { CatalogVersion = catalogVersion, ItemId = item, Price = price, StoreId = storeID, VirtualCurrency = virtualCurrency }; PlayFabClientAPI.PurchaseItem(purchaseItemRequest, PurchaseSuccess, PurchaseError); }
/// <summary> /// get the machine items, and determine which country you are working in to pass to the <see cref="Machine"/> to handle the logic. /// </summary> /// <param name="request"><see cref="PurchaseItemRequest"/></param> /// <returns><see cref="PurchaseItemResponse"/></returns> public PurchaseItemResponse PurchaseItem(PurchaseItemRequest request) { List <Change> denominations = null; List <int> coinsDue = null; try { VendingMachineItems items = GetVendingMachineItems(); Country country = countries.Find(x => x.Alpha2Code.ToLower() == request.Alpha2Code.ToLower()); if (country == null) { throw new ApplicationException($"Unable to find a config set for the country with the Alpha2Code: {request.Alpha2Code}"); } Machine machine = new Machine(items, country.Currency); decimal changeDue = machine.ProcessPurchase(request.Position, request.TenderAmount); if (changeDue != 0.0M) { denominations = machine.GiveCoins(changeDue); var ordered = denominations.OrderByDescending(x => x.Coin).ToList(); coinsDue = new List <int>(); foreach (Change change in ordered) { int count = 0; while (count < change.Total) { count++; coinsDue.Add(change.Coin); } } } return(new PurchaseItemResponse { IsSuccessful = true, IsClientFriendlyMessage = true, Message = $"Successfully purchased: {request.Position.ToString()}.{Environment.NewLine}Change due: {country.Currency.Symbol}{changeDue.ToString()}", TotalChangeDue = changeDue, Denominations = denominations, Coins = coinsDue }); } catch (ApplicationException exception) { return(new PurchaseItemResponse { IsSuccessful = false, IsClientFriendlyMessage = true, Message = exception.Message }); } catch (Exception exception) { return(new PurchaseItemResponse { IsSuccessful = false, IsClientFriendlyMessage = false, Message = exception.ToString() }); } }
void OnGUI() { // If the catalog has already been constructed, check if menu should be displayed. if (renderCatalog) { Rect marketIconRect = new Rect(1, 1, 1, 1); // Pause the game and show menu. if (GUI.Button(marketIconRect, marketIcon, GUIStyle.none)) { showMenu = !showMenu; Time.timeScale = !showMenu ? 1.0f : 0.0f; } if (showMenu) { // Area for market window. Rect winRect = new Rect((Screen.width - marketMenu.width) * 0.5f, (Screen.height - marketMenu.height) * 0.5f, marketMenu.width, marketMenu.height); GUI.DrawTexture(winRect, marketMenu); Rect closeRect = new Rect(winRect.x + winRect.width - 10, winRect.y, 10, 10); if (GUI.Button(closeRect, closeIcon, GUIStyle.none)) { showMenu = false; Time.timeScale = !showMenu ? 1.0f : 0.0f; } int btnWidth = 50; int btnHeight = 50; // Create buttons for each item in the list. for (int x = 0; x < items.Count; x++) { Texture2D texture = itemIcons[items[x].ItemId]; Rect btnIconRect = new Rect(winRect.x + 50, winRect.y + 50, 50, 50); foreach (KeyValuePair <string, uint> price in items[x].VirtualCurrencyPrices) { // Create a button that creates a purchase request if pressed. if (GUI.Button(btnIconRect, "")) { PurchaseItemRequest request = new PurchaseItemRequest(); request.CatalogVersion = items[x].CatalogVersion; request.VirtualCurrency = price.Key; request.Price = Convert.ToInt32(price.Value); request.ItemId = items[x].ItemId; PlayFabClientAPI.PurchaseItem(request, ItemsController.OnPurchase, OnPlayFabError); } } } } } }
public override void Execute() { if (_args is BuyItemCommandArgs buyItemArgs) { var request = new PurchaseItemRequest { ItemId = buyItemArgs.ItemID, Price = buyItemArgs.Price, VirtualCurrency = buyItemArgs.CurrencyType }; PlayFabClientAPI.PurchaseItem(request, OnItemPurchased, OnHttpError); } }
public void MakePurchase(string name, int price) { PurchaseItemRequest request = new PurchaseItemRequest(); request.CatalogVersion = "Weapons"; request.ItemId = name; request.VirtualCurrency = "GD"; request.Price = price; PlayFabClientAPI.PurchaseItem(request, result => { }, error => { Debug.Log(error.ErrorMessage); }); UpdateInventory(); }
public void PurhaseItem(CatalogItem item, string vc, Action <PurchaseItemResult> onPurchase, Action <PlayFabError> onError) { uint price; item.VirtualCurrencyPrices.TryGetValue(vc, out price); var request = new PurchaseItemRequest() { CatalogVersion = "Main Catalog", ItemId = item.ItemId, Price = (int)price, VirtualCurrency = vc }; PlayFabClientAPI.PurchaseItem(request, onPurchase, onError); }
/// <summary> /// Tries to buy item with virtual currency. /// </summary> /// <param name="item">Item to buy.</param> /// <param name="OnBuySuccess">Callback in case scceeds.</param> public void BuyItemWithVirtualCurrency(CatalogItem item,ProjectDelegates.PlayFabItemBuyCallback OnBuySuccess) { this.OnBuySuccessCallback = OnBuySuccess; PurchaseItemRequest request = new PurchaseItemRequest(); request.ItemId = item.ItemId; request.Price = (int)item.VirtualCurrencyPrices["1"]; request.VirtualCurrency = "1"; PlayFabClientAPI.PurchaseItem(request, OnPurchaseSuccess, OnPurchaseError); }
/// <summary> /// Starts the process of buying something from the store. /// </summary> /// <param name="item">Item to be bought.</param> public void BuyItemWithVirtualCurrency(CatalogItem item) { if (OnStatsUpgradesCallback == null) { Debug.LogWarning("Set all the necessary callbacks using SetUpgradesCallbacks() before starting a purchase"); return; } PurchaseItemRequest request = new PurchaseItemRequest(); request.ItemId = item.ItemId; request.Price = (int)item.VirtualCurrencyPrices[GameConstants.inGameCurrencyID]; request.VirtualCurrency = GameConstants.inGameCurrencyID; PlayFabClientAPI.PurchaseItem(request, OnPurchaseSuccess, OnPurchaseError); }
void TryToSpin() { Debug.Log("Attempting to spin..."); PurchaseItemRequest request = new PurchaseItemRequest() { ItemId = "PrizeWheel1", VirtualCurrency = "ST", Price = 1 }; PlayFabClientAPI.PurchaseItem(request, TryToSpinCallback, OnApiCallError); }