/// <summary> /// Overriding the order initiation with Facebook-specific purchase request over FB.Canvas. /// </summary> public override void OnPurchaseStarted(StartPurchaseResult result) { orderId = result.OrderId; FB.Canvas.Pay("https://" + PlayFabSettings.TitleId.ToLower() + ".playfabapi.com/OpenGraphProduct/" + PlayFabSettings.TitleId.ToLower() + "/Facebook/1/" + result.Contents[0].ItemId, requestId: orderId, callback: OnPurchaseResult); }
private void HandleConfirmPurchase() { if (Order != null) { var payRequest = new PayForPurchaseRequest() { OrderId = Order.OrderId, ProviderName = string.Format("Title{0}", PlayFabSettings.TitleId), Currency = "GO" }; PlayFabClientAPI.PayForPurchase(payRequest, (payResult) => { //Here we should add to the inventory locally in the game and then confirm the purchase. //But for now we are just going to confirm the purchase. var confirmRequest = new ConfirmPurchaseRequest() { OrderId = payResult.OrderId }; PlayFabClientAPI.ConfirmPurchase(confirmRequest, (confirmResult) => { Debug.Log("Purchase was completed."); Order = null; WindowManager.SendEvent("Store"); }, PlayFabErrorHandler.HandlePlayFabError); }, PlayFabErrorHandler.HandlePlayFabError); } }
private void onStartPurchaseResult(StartPurchaseResult result) { OrderID = result.OrderId; ProviderName = result.PaymentOptions [0].ProviderName; Currency = result.PaymentOptions [0].Currency; Debug.Log("Start Purchase Result"); onPayForPurchase(); }
public void StartPurchase(CatalogItemInfo[] catalogItemInfos, Action <StartPurchaseResult> onResult, Action <PlayFabError> onError) { if (!CanStartPurchase()) { Debug.LogWarning("Tried starting purchase when state was " + state); return; } if (catalogItemInfos.Length == 1) { Debug.Log("Starting purchase " + catalogItemInfos[0].itemId); } else { Debug.Log("Starting purchase of " + catalogItemInfos.Length + " items"); } state = PlayfabPurchaserState.Started; this.catalogItemInfos = catalogItemInfos; List <ItemPurchaseRequest> items = catalogItemInfos.Select(catalogItemInfo => new ItemPurchaseRequest() { ItemId = catalogItemInfo.itemId, Quantity = catalogItemInfo.quantity, Annotation = "Purchased via in-game store" } ).ToList(); string catalogVersion = catalogItemInfos.Select(catalogItemInfo => catalogItemInfo.catalogVersion).FirstOrDefault(); PlayFabClientAPI.StartPurchase(new StartPurchaseRequest() { CatalogVersion = catalogVersion, Items = items }, result => { startPurchaseResult = result; state = PlayfabPurchaserState.StartedSuccess; orderId = result.OrderId; Debug.Log("Start purchase success, order Id" + result.OrderId); onResult(result); }, error => { this.error = error; state = PlayfabPurchaserState.StartedError; Debug.Log("Start purchase error\n" + error.GenerateErrorReport()); onError(error); }); }
/// <summary> /// Callback retrieved when an (real money) order on PlayFab's servers has been initiated. /// Here the payment request for the order is being sent off, triggering native overlays. /// </summary> public virtual void OnPurchaseStarted(StartPurchaseResult result) { orderId = result.OrderId; currentProduct = result.Contents[0].ItemId; PayForPurchaseRequest request = new PayForPurchaseRequest() { OrderId = orderId, ProviderName = storeId, Currency = "RM" }; PlayFabClientAPI.PayForPurchase(request, OnPurchaseResult, OnPurchaseFailed); }
// Use this for initialization private void OnEnable() { Order = PlayFabDataStore.Orders.Dequeue(); var itemId = Order.Contents[0].ItemId; var cost = Order.Contents[0].VirtualCurrencyPrices["GO"]; var catItem = PlayFabDataStore.Catalog.Find((ci) => { return(ci.ItemId == itemId); }); if (catItem != null) { ItemDisplay.text = catItem.DisplayName; ItemDesc.text = catItem.Description; ItemCost.text = string.Format("Cost: {0} Gold Coins", cost); } ConfirmPurchase.onClick.AddListener(HandleConfirmPurchase); CancelPurchase.onClick.AddListener(HandleCancelPurchase); }
private static void StartPurchaseCallback(StartPurchaseResult result) { foreach (var payment in result.PaymentOptions) { if (payment.Currency == "RM") { continue; } var request = new PayForPurchaseRequest { Currency = payment.Currency, OrderId = result.OrderId, ProviderName = payment.ProviderName }; PlayFabClientAPI.PayForPurchase(request, PayForPurchaseCallback, null); return; // Successful } // Failed to purchase items Debug.LogError("Failed to purchase items"); // TODO: Add more info about items that failed }
private void OnSucces(StartPurchaseResult result) { orderId.Value = result.OrderId; Fsm.Event(successEvent); }