IAP - iOS : Can't purchase an item if Restore has been called

Hello,

Here is my problem:
When I hit the Restore button, since I had a lot of transaction finished, a lot of transactions are “restored” then “finished”.

I discovered that “finishing” a restored transaction takes time and the transactions that are to be finished seems to be queued somewhere.

If I purchase an auto-renewable subscription while any transaction is finishing, the transactionId given may be wrong and it creates a DuplicateTransaction error.

When all the transactions are finished (and this method is no longer called : )

- (void)paymentQueue:(SKPaymentQueue *)queue removedTransactions:(NSArray *)transactions

, then I can finally purchase something.

The whole restore process (with the finishing) takes multiple minutes.

I’m afraid that some user might experience the same problem if their subscription renewed a lot and they reinstall the app.

Have you got a similar issue?
I’m planning on populating a queue to send a progress message whenever transactions are finishing, to show a loading bar within the app.

Is this issue already known to Unity?
Note that the issue also occurs if I remove all the scripts and plugins in my project (except unityPurchasing, but I still remove the IAPCodelessManager) and use the IAP_Demo scene.

Best regards,
Sylvain

We have no control over the Restore process. How many purchases are you restoring? What is taking time, and queued somewhere? What leads you to this conclusion? You probably want to disable any purchase buttons while Restore is happening.