#if UNITY_PURCHASE using System.Collections; using System.Collections.Generic; using UnityEngine; namespace WZ { public class IAPGoogleJsonInfo { public struct GoogleToken { public string packageName; public string productId; public string token; public string projectId; } public class ProductData { public string productId; public int checkStatus; public string timestamp; public string sign; } public class GooglePurchaseData { // INAPP_PURCHASE_DATA public string inAppPurchaseData; // INAPP_DATA_SIGNATURE public string inAppDataSignature; public GooglePurchaseJson json; [System.Serializable] private struct GooglePurchaseReceipt { public string Payload; } [System.Serializable] private struct GooglePurchasePayload { public string json; public string signature; } [System.Serializable] public struct GooglePurchaseJson { public string packageName; public string productId; public long purchaseTime; public int purchaseState; public string purchaseToken; public string orderId; public bool autoRenewing; } public GooglePurchaseData(string receipt) { try { var purchaseReceipt = JsonUtility.FromJson(receipt); var purchasePayload = JsonUtility.FromJson(purchaseReceipt.Payload); var inAppJsonData = JsonUtility.FromJson(purchasePayload.json); inAppPurchaseData = purchasePayload.json; inAppDataSignature = purchasePayload.signature; json = inAppJsonData; } catch { Debug.Log("Could not parse receipt: " + receipt); inAppPurchaseData = ""; inAppDataSignature = ""; } } } } } #endif