+ add new iap API method for subscraption.
							parent
							
								
									ad47a9696b
								
							
						
					
					
						commit
						2cc9d66aa1
					
				|  | @ -233,12 +233,12 @@ namespace Guru | ||||||
|         private void CheckPermission() |         private void CheckPermission() | ||||||
|         { |         { | ||||||
|             float delay = 1; |             float delay = 1; | ||||||
|             Debug.Log($"---- Check PushPermission ---"); |             UnityEngine.Debug.Log($"---- Check PushPermission ---"); | ||||||
| #if UNITY_ANDROID | #if UNITY_ANDROID | ||||||
|             // 如果已经请求过权限的话, 则不做动作 |             // 如果已经请求过权限的话, 则不做动作 | ||||||
|             if (UnityEngine.Android.Permission.HasUserAuthorizedPermission(PERMISSION_POST_NOTIFICATION)) |             if (UnityEngine.Android.Permission.HasUserAuthorizedPermission(PERMISSION_POST_NOTIFICATION)) | ||||||
|             { |             { | ||||||
|                 Debug.Log($"--- PushPermission has passed ---"); |                 UnityEngine.Debug.Log($"--- PushPermission has passed ---"); | ||||||
|                 return; |                 return; | ||||||
|             } |             } | ||||||
| #endif | #endif | ||||||
|  | @ -251,7 +251,7 @@ namespace Guru | ||||||
|         private void RequestNotification() |         private void RequestNotification() | ||||||
|         { |         { | ||||||
| #if UNITY_ANDROID | #if UNITY_ANDROID | ||||||
|             Debug.Log("--- Target 33 Request Notification ---"); |             UnityEngine.Debug.Log("--- Target 33 Request Notification ---"); | ||||||
|             // Android直接申请授权 |             // Android直接申请授权 | ||||||
|             if (!UnityEngine.Android.Permission.HasUserAuthorizedPermission(PERMISSION_POST_NOTIFICATION)) |             if (!UnityEngine.Android.Permission.HasUserAuthorizedPermission(PERMISSION_POST_NOTIFICATION)) | ||||||
|             { |             { | ||||||
|  |  | ||||||
|  | @ -23,7 +23,7 @@ namespace Guru | ||||||
|         /// <summary> |         /// <summary> | ||||||
|         /// 初始化IAP 功能 |         /// 初始化IAP 功能 | ||||||
|         /// </summary> |         /// </summary> | ||||||
|         public static void InitIAP(byte[] googleKey, byte[] appleRootCerts) |         public static void InitIAP(string userId, byte[] googleKey, byte[] appleRootCerts) | ||||||
|         { |         { | ||||||
|             GuruIAP.Instance.OnInitResult += OnIAPInitResult; |             GuruIAP.Instance.OnInitResult += OnIAPInitResult; | ||||||
|             GuruIAP.Instance.OnRestored += OnRestored; |             GuruIAP.Instance.OnRestored += OnRestored; | ||||||
|  | @ -34,7 +34,7 @@ namespace Guru | ||||||
|              |              | ||||||
|             Callbacks.IAP._onIAPInitStart?.Invoke(); // 初始化之前进行调用 |             Callbacks.IAP._onIAPInitStart?.Invoke(); // 初始化之前进行调用 | ||||||
|              |              | ||||||
|             GuruIAP.Instance.InitWithKeys(googleKey, appleRootCerts, IsDebugMode); |             GuruIAP.Instance.InitWithKeys(userId, googleKey, appleRootCerts, IsDebugMode); | ||||||
|         } |         } | ||||||
|          |          | ||||||
|         /// <summary> |         /// <summary> | ||||||
|  | @ -244,6 +244,94 @@ namespace Guru | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         #endregion |         #endregion | ||||||
|  | 
 | ||||||
|  |         #region Subscriptions | ||||||
|  | 
 | ||||||
|  |         /// <summary> | ||||||
|  |         /// 订阅是否被取消 | ||||||
|  |         /// </summary> | ||||||
|  |         /// <param name="productName"></param> | ||||||
|  |         /// <returns></returns> | ||||||
|  |         public static bool IsSubscriptionCancelled(string productName) | ||||||
|  |         { | ||||||
|  |             return GuruIAP.Instance.IsSubscriptionCancelled(productName); | ||||||
|  |         } | ||||||
|          |          | ||||||
|  |         /// <summary> | ||||||
|  |         /// 订阅是否可用 | ||||||
|  |         /// </summary> | ||||||
|  |         /// <param name="productName"></param> | ||||||
|  |         /// <returns></returns> | ||||||
|  |         public static bool IsSubscriptionAvailable(string productName) | ||||||
|  |         { | ||||||
|  |             return GuruIAP.Instance.IsSubscriptionAvailable(productName); | ||||||
|  |         } | ||||||
|  |          | ||||||
|  |         /// <summary> | ||||||
|  |         /// 订阅是否过期 | ||||||
|  |         /// </summary> | ||||||
|  |         /// <param name="productName"></param> | ||||||
|  |         /// <returns></returns> | ||||||
|  |         public static bool IsSubscriptionExpired(string productName) | ||||||
|  |         { | ||||||
|  |             return GuruIAP.Instance.IsSubscriptionExpired(productName); | ||||||
|  |         } | ||||||
|  |          | ||||||
|  |         public static bool IsSubscriptionFreeTrail(string productName) | ||||||
|  |         { | ||||||
|  |             return GuruIAP.Instance.IsSubscriptionFreeTrail(productName); | ||||||
|  |         } | ||||||
|  |          | ||||||
|  |         public static bool IsSubscriptionAutoRenewing(string productName) | ||||||
|  |         { | ||||||
|  |             return GuruIAP.Instance.IsSubscriptionAutoRenewing(productName); | ||||||
|  |         } | ||||||
|  |          | ||||||
|  |         public static bool IsSubscriptionIntroductoryPricePeriod(string productName) | ||||||
|  |         { | ||||||
|  |             return GuruIAP.Instance.IsSubscriptionIntroductoryPricePeriod(productName); | ||||||
|  |         } | ||||||
|  |          | ||||||
|  |         public DateTime GetSubscriptionExpireDate(string productName) | ||||||
|  |         { | ||||||
|  |             return GuruIAP.Instance.GetSubscriptionExpireDate(productName); | ||||||
|  |         } | ||||||
|  |          | ||||||
|  |          | ||||||
|  |         public DateTime GetSubscriptionPurchaseDate(string productName) | ||||||
|  |         { | ||||||
|  |             return GuruIAP.Instance.GetSubscriptionPurchaseDate(productName); | ||||||
|  |         } | ||||||
|  |          | ||||||
|  |          | ||||||
|  |         public DateTime GetSubscriptionCancelDate(string productName) | ||||||
|  |         { | ||||||
|  |             return GuruIAP.Instance.GetSubscriptionCancelDate(productName); | ||||||
|  |         } | ||||||
|  |          | ||||||
|  | 
 | ||||||
|  |         public TimeSpan GetSubscriptionRemainingTime(string productName) | ||||||
|  |         { | ||||||
|  |             return GuruIAP.Instance.GetSubscriptionRemainingTime(productName); | ||||||
|  |         } | ||||||
|  |          | ||||||
|  |         public TimeSpan GetSubscriptionIntroductoryPricePeriod(string productName) | ||||||
|  |         { | ||||||
|  |             return GuruIAP.Instance.GetSubscriptionIntroductoryPricePeriod(productName); | ||||||
|  |         } | ||||||
|  |          | ||||||
|  |          | ||||||
|  |         public TimeSpan GetSubscriptionFreeTrialPeriod(string productName) | ||||||
|  |         { | ||||||
|  |             return GuruIAP.Instance.GetSubscriptionFreeTrialPeriod(productName); | ||||||
|  |         } | ||||||
|  |          | ||||||
|  |         public string GetSubscriptionInfoJsonString(string productName) | ||||||
|  |         { | ||||||
|  |             return GuruIAP.Instance.GetSubscriptionInfoJsonString(productName); | ||||||
|  |         } | ||||||
|  |          | ||||||
|  | 
 | ||||||
|  |         #endregion | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  | @ -334,7 +334,13 @@ namespace Guru | ||||||
|                 Try(() => |                 Try(() => | ||||||
|                 { |                 { | ||||||
|                     LogI($"#4.3 --- Start IAP ---"); |                     LogI($"#4.3 --- Start IAP ---"); | ||||||
|                     InitIAP(_initConfig.GoogleKeys, _initConfig.AppleRootCerts); // 初始化IAP |                     if (_initConfig.GoogleKeys == null || _initConfig.AppleRootCerts == null) | ||||||
|  |                     { | ||||||
|  |                         LogException("[IAP] GoogleKeys is null when using IAPService! Integration failed. App will Exit"); | ||||||
|  |                     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |                     InitIAP(UID, _initConfig.GoogleKeys, _initConfig.AppleRootCerts); // 初始化IAP | ||||||
|                 }, ex => |                 }, ex => | ||||||
|                 { |                 { | ||||||
|                     UnityEngine.Debug.LogError($"--- ERROR on useIAP: {ex.Message}"); |                     UnityEngine.Debug.LogError($"--- ERROR on useIAP: {ex.Message}"); | ||||||
|  |  | ||||||
|  | @ -2,13 +2,13 @@ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| using UnityEngine; |  | ||||||
| 
 | 
 | ||||||
| namespace Guru.Debug.Tests | namespace Guru.Debug.Tests | ||||||
| { | { | ||||||
|     using Debug; |  | ||||||
|     using UnityEditor; |     using UnityEditor; | ||||||
|     using NUnit.Framework; |     using NUnit.Framework; | ||||||
|  |     using UnityEngine; | ||||||
|  |     using System; | ||||||
|      |      | ||||||
|     public class Test_IAP |     public class Test_IAP | ||||||
|     { |     { | ||||||
|  | @ -18,9 +18,16 @@ namespace Guru.Debug.Tests | ||||||
|         { |         { | ||||||
|             var model = IAPModel.Load(); |             var model = IAPModel.Load(); | ||||||
|             int level = 1; |             int level = 1; | ||||||
|  |             int orderType = 0; | ||||||
|             for (int i = 0; i < 5; i++) |             for (int i = 0; i < 5; i++) | ||||||
|             { |             { | ||||||
|                 model.AddAppleOrder(new AppleOrderData(0, $"i.iap.test.icon_{i}", "receipt_{i}", level)); |                 model.AddAppleOrder(new AppleOrderData(orderType,  | ||||||
|  |                     $"i.iap.test.icon_{i}",  | ||||||
|  |                     $"receipt_{i}",  | ||||||
|  |                     $"order_id_{i}",  | ||||||
|  |                     DateTime.Now.ToString("g"),  | ||||||
|  |                     level)); | ||||||
|  |                  | ||||||
|                 level++; |                 level++; | ||||||
|             } |             } | ||||||
|              |              | ||||||
|  |  | ||||||
|  | @ -5,7 +5,7 @@ | ||||||
|   "description": "Guru SDK for unity project", |   "description": "Guru SDK for unity project", | ||||||
|   "unity": "2020.3", |   "unity": "2020.3", | ||||||
|   "author":{ |   "author":{ | ||||||
|     "name": "Guru Games" |     "name": "Guru Game" | ||||||
|   }, |   }, | ||||||
|   "license": "MIT", |   "license": "MIT", | ||||||
|   "category": "Game,Tool,Development", |   "category": "Game,Tool,Development", | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue