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);
        }
Beispiel #3
0
    /// <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);
    }
Beispiel #4
0
    //	/// <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
        }
Beispiel #6
0
                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);
                }
Beispiel #7
0
    // 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);
    }
Beispiel #8
0
 public static IEnumerator <ValidateGooglePlayPurchaseResult> Do(ValidateGooglePlayPurchaseRequest request)
 {
     return(Do <ValidateGooglePlayPurchaseRequest, ValidateGooglePlayPurchaseResult>(request, PlayFabClientAPI.ValidateGooglePlayPurchase));
 }
Beispiel #9
0
 public static UnityTask <ValidateGooglePlayPurchaseResult> Do(ValidateGooglePlayPurchaseRequest request)
 {
     return(Do <ValidateGooglePlayPurchaseRequest, ValidateGooglePlayPurchaseResult>(request, PlayFabClientAPI.ValidateGooglePlayPurchase));
 }