iOS: Subscription issues with 2.2.7 Store Pakage

Environment:

  • Unity 2019.4.18
  • Unity IAP Store package 2.2.7 and Core package 2.2.2
  • iOS 14.4
  • iPhone XS Max
  • Sandbox Country: USA
  • Monthly Subscription (Auto-Renewed)
  • Server-side verification
  • [Simple IAP System] 4.3.6

After 1st 5-min test period (1 month), I restart the app & can’t verify subscription:

Unable to confirm purchase; Product has missing or empty transactionID
SIS.<WaitForRequest>d__5:MoveNext()
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)

(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

The receipt for 'org.makaka.armasker.pro.subscription.monthly' could not be verified: []
SIS.<WaitForRequest>d__5:MoveNext()
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)

This state is actual until the end of 30 min and after.

If I try to purchase again (before subscription Automatically Canceled after 30 min) then I get restoration of purchase:

2021-02-05 16:06:55.068289+0300 armasker[1379:296368] UnityIAP: PurchaseProduct: org.makaka.armasker.pro.subscription.monthly
purchase(org.makaka.armasker.pro.subscription.monthly)

2021-02-05 16:06:55.091372+0300 armasker[1379:296368] UnityIAP: UpdatedTransactions
-> applicationWillResignActive()
2021-02-05 16:07:03.689253+0300 armasker[1379:296395] [tcp] tcp_input [C8.1:3] flags=[R] seq=3495540459, ack=0, win=0 state=LAST_ACK rcv_nxt=3495540459, snd_una=1486995219
2021-02-05 16:07:03.690121+0300 armasker[1379:296395] [tcp] tcp_input [C8.1:3] flags=[R] seq=3495540459, ack=0, win=0 state=CLOSED rcv_nxt=3495540459, snd_una=1486995219
2021-02-05 16:07:03.690483+0300 armasker[1379:296395] [tcp] tcp_input [C8.1:3] flags=[R] seq=3495540459, ack=0, win=0 state=CLOSED rcv_nxt=3495540459, snd_una=1486995219
2021-02-05 16:07:16.966487+0300 armasker[1379:296368] UnityIAP: UpdatedTransactions
-> applicationDidBecomeActive()

(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)

UnityIAP Promo: Clearing promo product metadata
UnityEngine.Purchasing.Promo:ProvideProductsToAds(HashSet`1, Boolean)
System.Action:Invoke()
UnityEngine.Purchasing.Extension.UnityUtil:Update()

2021-02-05 16:07:19.974879+0300 armasker[1379:296368] UnityIAP: Finishing transaction 1000000774460650
org.makaka.armasker.pro.subscription.monthly verification success.
SIS.<WaitForRequest>d__5:MoveNext()
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)


IAPListener reports: HandleSuccessfulPurchase: org.makaka.armasker.pro.subscription.monthly
SIS.IAPListener:HandleSuccessfulPurchase(String)
System.Action`1:Invoke(T)
SIS.IAPManager:PurchaseVerified(String)
SIS.<WaitForRequest>d__5:MoveNext()
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)

On Next Restart verification failed as above. This is a new experience if compare with Unity IAP 1.23.5. So with 1.23.5 verifications worked.

Tested several times. Also, Transaction Log is not provided now as was in Unity IAP 1.23.5.

P.S. Tested also with Android 10 & Samsung Galaxy A71.
Works without issues, but one day Google Servers had problems as I understand => verification problems as a result: email notifications were received on the next day, timing in notifications & in subscription center were different, periods has different times (5-8 minutes).

You will need to contact Simple IAP. And it sounds like it’s working now “works without issues”, so that would imply that the issue is not with the IAP code. Also, what code is producing the “could not be verified” error, is that from your server? If you can reproduce without Simple IAP, perhaps with the Sample IAP Project, it would be helpful Sample IAP Project . I trust you are not using Codeless? I see a listener mentioned.

The bug was fixed by the publisher of [Simple IAP System]. Thank you.