I can understand the idea that adding an observer might not seem warranted in all cases, but think of the following. Whenever a transaction notice occurs - particularly a successful transaction, StoreKit deems the transaction to be incomplete. The application is expected to process the successful transaction notice, then notify the StoreKit that it has processed the transaction by making the finishTransaction call. This results in a URL notice to the StoreKit and on receipt, StoreKit marks the transaction as completed. This two way handshake is implemented as a means for StoreKit to know that a transaction has been received and processed by the app.You might have seen the alert when a purchase attempt occurs - You've already purchased this. Tap OK to download it again for free. This alert occurs because a previous attempt to purchase the item was successfully transacted on the StoreKit, but was left incomplete - for whatever reason, the URL command associated with the finishTransaction call, was not received
Topic:
App & System Services
SubTopic:
StoreKit
Tags: