Interrupted IAP not triggering new transaction after resolving interruption

I am currently testing the IAP flow as described here in the dev sandbox.

https://developer.apple.com/documentation/storekit/original_api_for_in-app_purchase/testing_in-app_purchases_with_sandbox/testing_an_interrupted_purchase

In short, user needs to first agree to terms and conditions before a purchase can be made. The flow works until point 10.

User requests to buy something, transaction starts in purchasing state, then it fails, I call finishTransaction on the failed on and update the UI accordingly. The system popup triggers "You need to agree to the T&Cs.", the user agrees to it, then a system message says "Your purchase is ready" and returns to my app.

However, in point 10, it would expect a new transaction in my queue but I am not getting one. If I move the app to the background and foreground again, the queue receives one but not immediately after the purchase which is pretty bad user experience because the UI just says that the transaction failed (which is true).

Am I doing something wrong here? As I said, I am getting the valid transaction but the queue triggers only on app "relaunch". :(

  • This is the same experience I am seeing as well. Xcode 12.5, IOS14.5 on a physical device.

    The only way to get the purchase to be "successful" and have the consumable / renewable etc registered by the app is via an app "relaunch" like you said. I tried triggering a transaction observer again on 

    `        

    NotificationCenter.default.addObserver(self, selector:#selector(appActive), name: UIApplication.didBecomeActiveNotification, object: nil)

    `

    but it doesn't make a difference. Did you manage to resolve this?

Add a Comment