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); } }
/// <summary> /// Confirms with the payment provider that the purchase was approved (if applicable) and adjusts inventory and virtual currency balances as appropriate /// </summary> public static void ConfirmPurchase(ConfirmPurchaseRequest request, ConfirmPurchaseCallback resultCallback, ErrorCallback errorCallback) { if (AuthKey == null) throw new Exception ("Must be logged in to call this method"); string serializedJSON = JsonConvert.SerializeObject(request, Util.JsonFormatting, Util.JsonSettings); Action<string,string> callback = delegate(string responseStr, string errorStr) { ConfirmPurchaseResult result = null; PlayFabError error = null; ResultContainer<ConfirmPurchaseResult>.HandleResults(responseStr, errorStr, out result, out error); if(error != null && errorCallback != null) { errorCallback(error); } if(result != null) { if(resultCallback != null) { resultCallback(result); } } }; PlayFabHTTP.Post(PlayFabSettings.GetURL()+"/Client/ConfirmPurchase", serializedJSON, "X-Authorization", AuthKey, callback); }
/// <summary> /// Confirms with the payment provider that the purchase was approved (if applicable) and adjusts inventory and virtual currency balances as appropriate /// </summary> public static void ConfirmPurchase(ConfirmPurchaseRequest request, ProcessApiCallback<ConfirmPurchaseResult> resultCallback, ErrorCallback errorCallback, object customData = null) { if (_authKey == null) throw new Exception("Must be logged in to call this method"); string serializedJson = SimpleJson.SerializeObject(request, Util.ApiSerializerStrategy); Action<CallRequestContainer> callback = delegate(CallRequestContainer requestContainer) { ResultContainer<ConfirmPurchaseResult>.HandleResults(requestContainer, resultCallback, errorCallback, null); }; PlayFabHTTP.Post("/Client/ConfirmPurchase", serializedJson, "X-Authorization", _authKey, callback, request, customData); }
/// <summary> /// Confirms with the payment provider that the purchase was approved (if applicable) and adjusts inventory and virtual currency balances as appropriate /// </summary> public static async Task<PlayFabResult<ConfirmPurchaseResult>> ConfirmPurchaseAsync(ConfirmPurchaseRequest request) { if (AuthKey == null) throw new Exception ("Must be logged in to call this method"); object httpResult = await PlayFabHTTP.DoPost(PlayFabSettings.GetURL() + "/Client/ConfirmPurchase", request, "X-Authorization", AuthKey); if(httpResult is PlayFabError) { PlayFabError error = (PlayFabError)httpResult; if (PlayFabSettings.GlobalErrorHandler != null) PlayFabSettings.GlobalErrorHandler(error); return new PlayFabResult<ConfirmPurchaseResult> { Error = error, }; } string resultRawJson = (string)httpResult; var serializer = JsonSerializer.Create(PlayFabSettings.JsonSettings); var resultData = serializer.Deserialize<PlayFabJsonSuccess<ConfirmPurchaseResult>>(new JsonTextReader(new StringReader(resultRawJson))); ConfirmPurchaseResult result = resultData.data; return new PlayFabResult<ConfirmPurchaseResult> { Result = result }; }