I have an app that implements Non-renewable subscriptions. During development I believe I did not properly finish multiple SKPaymentTransactions. Now every time I build and run the app on device then add an SKPaymentTransactionObserver to SKPaymentQueue.default() some of those transactions show up when paymentQueue(:updatedTransactions:) is called. I’ve tried finishing those transactions but they never seem to actually do so. paymentQueue(:removedTransactions:) does get called some time after my attempt to finish the transactions so I would assume those transactions would be finished but when I build and run the app again on device those same transactions show up again from paymentQueue(:updatedTransactions:).
Now every time I make a purchase for a different ProductId the purchase will go though properly. I handle receipt validation and finish the transaction. If I then attempt to purchase the same non-renewable subscription I get “This In-App Purchase has already been bought” alert. If I restart the app again that last transaction will show up via paymentQueue(:updatedTransactions:) as if it was never actually finished.
It seem like nothing I do will finish these transactions that seem to linger on forever.
Is there some other alternative to finishing/clearing these transactions? Am I stuck in this loop forever? :(
Now every time I make a purchase for a different ProductId the purchase will go though properly. I handle receipt validation and finish the transaction. If I then attempt to purchase the same non-renewable subscription I get “This In-App Purchase has already been bought” alert. If I restart the app again that last transaction will show up via paymentQueue(:updatedTransactions:) as if it was never actually finished.
It seem like nothing I do will finish these transactions that seem to linger on forever.
Is there some other alternative to finishing/clearing these transactions? Am I stuck in this loop forever? :(