public void OnPurchaseSucceeded(Purchase purchase) { if (AudioManager.instance.sfxEnabled) { this.GetComponent <AudioSource>().Play(); } Debug.Log("OnPurchaseSucceeded"); OpenIAB.consumeProduct(purchase); ValidateGooglePlayPurchaseRequest request = new ValidateGooglePlayPurchaseRequest(); request.ReceiptJson = purchase.OriginalJson; request.Signature = purchase.Signature; PlayFabClientAPI.ValidateGooglePlayPurchase(request, OnValidateCompleted, OnValidateError); // calling this before validation? UpdateUserDataRequest dataRequest = new UpdateUserDataRequest(); dataRequest.Data = new Dictionary <string, string>(); dataRequest.Data.Add(GameConstants.boughtSheKey, "true"); dataRequest.Permission = UserDataPermission.Public; PlayFabClientAPI.UpdateUserData(dataRequest, OnDataUpdateCompleted, OnDataUpdateError); AccountManager.instance.BuyShe(); }
public override void OnEnter() { var request = new ValidateGooglePlayPurchaseRequest() { ReceiptJson = receipt.Value, Signature = signature.Value, CurrencyCode = currencyCode.Value, PurchasePrice = (uint?)price.Value }; PlayFabClientAPI.ValidateGooglePlayPurchase(request, OnSucces, OnFailure); }
/// <summary> /// Validates the android IAP completed through the GooglePlay store. /// </summary> public static void ValidateAndroidPurcahse(string json, string sig) { var request = new ValidateGooglePlayPurchaseRequest { Signature = sig, ReceiptJson = json }; PlayFabClientAPI.ValidateGooglePlayPurchase(request, result => { RaiseCallbackSuccess(string.Empty, PlayFabAPIMethods.ValidateIAP, MessageDisplayStyle.none); }, PlayFabErrorCallback); }
// /// <summary> // /// Makes sure we have a proper API endpoint to access Cloud Script // /// </summary> // /// <returns><c>true</c>, if cloud script was setup, <c>false</c> otherwise.</returns> // /// <param name="cb">callback to run after check is completed</param> // public static bool SetupCloudScript(Action cb = null) // { // if(string.IsNullOrEmpty(PlayFabSettings.LogicServerURL)) // { // PlayFabClientAPI.GetCloudScriptUrl(new GetCloudScriptUrlRequest(), (s) => // { // PF_Bridge.RaiseCallbackSuccess("CloudScript URL Loaded", PlayFabAPIMethods.GetCloudScriptUrl, MessageDisplayStyle.none); // if(cb != null) // { // cb(); // } // }, // PlayFabErrorCallback); // return false; // } // else // { // return true; // } // } /// <summary> /// Validates the android IAP completed through the GooglePlay store. /// </summary> /// <param name="json">Json.</param> /// <param name="sig">Sig.</param> public static void ValidateAndroidPurcahse(string json, string sig) { var request = new ValidateGooglePlayPurchaseRequest(); request.Signature = sig; request.ReceiptJson = json; DialogCanvasController.RequestLoadingPrompt(PlayFabAPIMethods.ValidateIAP); PlayFabClientAPI.ValidateGooglePlayPurchase(request, (ValidateGooglePlayPurchaseResult result) => { Debug.Log("Reciept Validated!!"); PF_Bridge.RaiseCallbackSuccess(string.Empty, PlayFabAPIMethods.ValidateIAP, MessageDisplayStyle.none); }, PF_Bridge.PlayFabErrorCallback); }
//the actual method constructing the web request for validation private void WaitForRequest(Product p) { #pragma warning disable 0219 Hashtable hash = SIS.MiniJson.JsonDecode(p.receipt) as Hashtable; string receipt = string.Empty; #pragma warning restore 0219 #if UNITY_ANDROID string signature = string.Empty; switch (StandardPurchasingModule.Instance().androidStore) { case AndroidStore.GooglePlay: hash = SIS.MiniJson.JsonDecode(hash["Payload"] as string) as Hashtable; receipt = hash["json"] as string; signature = hash["signature"] as string; ValidateGooglePlayPurchaseRequest gRequest = new ValidateGooglePlayPurchaseRequest() { ReceiptJson = receipt, Signature = signature, CurrencyCode = p.metadata.isoCurrencyCode, PurchasePrice = (uint)(p.metadata.localizedPrice * 100) }; PlayFabClientAPI.ValidateGooglePlayPurchase(gRequest, OnValidationResult, OnValidationError, p.definition.storeSpecificId); break; case AndroidStore.AmazonAppStore: ValidateAmazonReceiptRequest aRequest = new ValidateAmazonReceiptRequest() { ReceiptId = p.receipt, UserId = IAPManager.extensions.GetExtension <IAmazonExtensions>().amazonUserId, CurrencyCode = p.metadata.isoCurrencyCode, PurchasePrice = (int)(p.metadata.localizedPrice * 100) }; PlayFabClientAPI.ValidateAmazonIAPReceipt(aRequest, OnValidationResult, OnValidationError, p.definition.storeSpecificId); break; } #elif UNITY_IOS || UNITY_TVOS receipt = hash["Payload"] as string; ValidateIOSReceiptRequest request = new ValidateIOSReceiptRequest() { ReceiptData = receipt, CurrencyCode = p.metadata.isoCurrencyCode, PurchasePrice = (int)(p.metadata.localizedPrice * 100) }; PlayFabClientAPI.ValidateIOSReceipt(request, OnValidationResult, OnValidationError, p.definition.storeSpecificId); #endif }
public void Request(string currencyCode, uint purchasePrice, string reciept, string signature) { Debug.Log("Validating " + Environment.NewLine + reciept + Environment.NewLine + signature); var request = new ValidateGooglePlayPurchaseRequest { CatalogVersion = PlayFab.Catalog.Version, CurrencyCode = currencyCode, PurchasePrice = purchasePrice, ReceiptJson = reciept, Signature = signature, }; PlayFabClientAPI.ValidateGooglePlayPurchase(request, RetrieveCallback, ErrorCallback); }
// Unity IAP public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs e) { #if UNITY_ANDROID && !UNITY_EDITOR // https://api.playfab.com/docs/tutorials/landing-commerce/getting-started-unity-iap-android var googleReceipt = GooglePurchase.FromJson(e.purchasedProduct.receipt); var request = new ValidateGooglePlayPurchaseRequest() { CurrencyCode = e.purchasedProduct.metadata.isoCurrencyCode, PurchasePrice = (uint)(e.purchasedProduct.metadata.localizedPrice * 100), ReceiptJson = googleReceipt.PayloadData.json, Signature = googleReceipt.PayloadData.signature }; PlayFabClientAPI.ValidateGooglePlayPurchase(request, result => { RefreshCatalog(); RefreshInventory(); }, OnError); #endif return(PurchaseProcessingResult.Complete); }
public static IEnumerator <ValidateGooglePlayPurchaseResult> Do(ValidateGooglePlayPurchaseRequest request) { return(Do <ValidateGooglePlayPurchaseRequest, ValidateGooglePlayPurchaseResult>(request, PlayFabClientAPI.ValidateGooglePlayPurchase)); }
public static UnityTask <ValidateGooglePlayPurchaseResult> Do(ValidateGooglePlayPurchaseRequest request) { return(Do <ValidateGooglePlayPurchaseRequest, ValidateGooglePlayPurchaseResult>(request, PlayFabClientAPI.ValidateGooglePlayPurchase)); }