StoreKit causes transactions that has already finished to occur again.

■Incident After executing restoreCompletedTransactions and finish a transaction of the StateRestored that occurred, the finished transaction occurred again as StatePurchased. StatePurchasedagain. When this occurred, no functions other thanrestoreCompletedTransactionswere called, the Transaction identifier was the same and only the state changed fromStateRestoredtoStatePurchased`. This is not a subscription renewal or other timing.

■Information I want to get. We are aware that StatePurchased Transactions that have been purchased and finishTransaction in the past will not occur again with updatedTransactions. However, by performing the following steps, a finishTransaction Trasnsaction that has been finishTransaction will occur again. What is the cause of this and how can it be addressed?

■step

  1. prepare an App Store account (Sandbox) with a lot of purchase information.

In the case of the actual account where the event occurred, there were approximately 70 purchases. The event occurs even if the subscription is still subscribed or the subscription period has ended. The event has been confirmed in both Sandbox and production environments.

  1. call restoreCompletedTransactions against SKPaymentQueue.

  2. updatedTransactions is called and an array of Transactions is passed over.

In this case, the transactionState of all Transactions is StateRestored.

  1. when the Transaction passed in 3 is finished for SKPaymentQueue,

updatedTransactions` is called again.

Except that in this case, all Transactions have a transactionState of StatePurchased, All properties are identical to those passed in 3, including the transactionIdentifer. However, not all of the array of Transactions passed in 3 is passed, but some of it. (In the actual event, 75 Transactions were passed in 3 and 35 Transactions were passed in 4.)

Please file a ticket in Feedback Assistant and post the FB number here, with specific on the transactions you have questions about.

StoreKit causes transactions that has already finished to occur again.
 
 
Q