Skip to content

Commit 65c06c8

Browse files
committed
- add method subscription info
1 parent 4db1f14 commit 65c06c8

File tree

4 files changed

+26
-12
lines changed

4 files changed

+26
-12
lines changed

Editor/IapSettingsEditor.cs

+5
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,11 @@ void GenerateProductImpl()
9494
$"\n\t\tpublic static UnityEngine.Purchasing.Product GetProduct{CultureInfo.CurrentCulture.TextInfo.ToTitleCase(itemName)}() => IapManager.GetProduct(IapSettings.Instance.IapDataProducts[{i}]);";
9595

9696
str += $"\n\t\tpublic static float PriceConfig{CultureInfo.CurrentCulture.TextInfo.ToTitleCase(itemName)}() => IapSettings.Instance.IapDataProducts[{i}].price;";
97+
if (iapDataProducts[i].iapProductType == IapProductType.Subscription)
98+
{
99+
str +=
100+
$"\n\t\tpublic static UnityEngine.Purchasing.SubscriptionInfo GetSubscriptionInfo{CultureInfo.CurrentCulture.TextInfo.ToTitleCase(itemName)}() => IapManager.GetSubscriptionInfo(IapSettings.Instance.IapDataProducts[{i}]);";
101+
}
97102
str += "\n";
98103
}
99104

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@
2323

2424
### Add the line below to `Packages/manifest.json`
2525

26-
for version `1.0.7`
26+
for version `1.0.8`
2727
```csharp
28-
"com.wolf-org.in-app-purchasing":"https://github.com/unity-package/in-app-purchasing-unity.git#1.0.7",
28+
"com.wolf-org.in-app-purchasing":"https://github.com/unity-package/in-app-purchasing-unity.git#1.0.8",
2929
```
3030
dependency `extensions-unity-1.0.5`
3131
```csharp

Runtime/IapManager.cs

+18-9
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public class IapManager : MonoBehaviour, IDetailedStoreListener
1919

2020
private IStoreController _controller;
2121
private IExtensionProvider _extensionProvider;
22-
private bool IsInitialized { get; set; }
22+
public static bool IsInitialized { get; private set; }
2323
private IapSettings iapSettings;
2424

2525
private void Awake()
@@ -65,7 +65,7 @@ void InitImpl()
6565
builder.Configure<IGooglePlayConfiguration>();
6666

6767
UnityPurchasing.Initialize(this, builder);
68-
IsInitialized = true;
68+
6969
}
7070

7171

@@ -179,13 +179,14 @@ public void OnInitialized(IStoreController controller, IExtensionProvider extens
179179
_controller = controller;
180180
_extensionProvider = extensions;
181181

182-
#if UNITY_ANDROID && !UNITY_EDITOR
183-
foreach (var product in _controller.products.all)
184-
{
185-
if (product != null && !string.IsNullOrEmpty(product.transactionID))
186-
_controller.ConfirmPendingPurchase(product);
187-
}
188-
#endif
182+
// #if UNITY_ANDROID && !UNITY_EDITOR
183+
// foreach (var product in _controller.products.all)
184+
// {
185+
// if (product != null && !string.IsNullOrEmpty(product.transactionID))
186+
// _controller.ConfirmPendingPurchase(product);
187+
// }
188+
// #endif
189+
IsInitialized = true;
189190
}
190191

191192
public void OnPurchaseFailed(Product product, PurchaseFailureDescription failureDescription)
@@ -238,6 +239,12 @@ ProductType ConvertProductType(IapProductType iapProductType)
238239
}
239240

240241
#region Internal API
242+
private SubscriptionInfo InternalGetSubscriptionInfo(IapDataProduct product)
243+
{
244+
if (_controller == null || ConvertProductType(product.iapProductType) != ProductType.Subscription || !_controller.products.WithID(product.Id).hasReceipt) return null;
245+
var subscriptionManager = new SubscriptionManager(InternalGetProduct(product), null);
246+
return subscriptionManager.getSubscriptionInfo();
247+
}
241248

242249
private IapDataProduct InternalPurchaseProduct(string id)
243250
{
@@ -294,6 +301,8 @@ public static IapDataProduct PurchaseProduct(IapDataProduct product) =>
294301

295302
public static Product GetProduct(string id) => _instance.InternalGetProduct(id);
296303
public static Product GetProduct(IapDataProduct product) => _instance.InternalGetProduct(product);
304+
public static SubscriptionInfo GetSubscriptionInfo(IapDataProduct iapDataProduct) =>
305+
_instance.InternalGetSubscriptionInfo(iapDataProduct);
297306
#if UNITY_IOS
298307
public static void RestorePurchase() => _instance.InternalRestorePurchase();
299308
#endif

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "com.wolf-org.in-app-purchasing",
33
"displayName": "UnityCommon-IAP",
44
"description": "Support for unity in-app-purchasing",
5-
"version": "1.0.7",
5+
"version": "1.0.8",
66
"unity": "2021.3",
77
"category": "virtuesky",
88
"license": "MIT",

0 commit comments

Comments
 (0)