title: iOS In-app incompleted purchases
body: <p>I have implemented additional receipt verification for in-app purchases in my application (inspired by <a href="https://developer.apple.com/library/ios/#releasenotes/StoreKit/IAP_ReceiptValidation/_index.html" rel="nofollow">https://developer.apple.com/library/ios/#releasenotes/StoreKit/IAP_ReceiptValidation/_index.html</a>).
  So, after I get SKPaymentTransactionStatePurchased, I perform this validation, and on success, I unlock the game's new content and, finally, I finish the transaction by</p>
  
  <pre><code>[[SKPaymentQueue defaultQueue] finishTransaction:myTransaction];
  </code></pre>
  
  <p>What happens if verification process cannot be finished say due to internet connection failure or if the user terminates the application during verification process? In this case I do not unlock content and do not finish the transaction. And I think it's rather logical.</p>
  
  <p>However, when I restarted the application (that had been terminated in "unfinished transaction" state) and tried to purchase the in-app, I fell into SKPaymentTransactionStateFailed state with transaction.error.code == SKErrorPaymentCancelled.
  Also a message box appeared that said:</p>
  
  <p>"You have already purchased this item, but it is not yet loaded. Tap "OK" to load it now."</p>
  
  <p>After pressing "OK", I do not get any callback called - and hence I did not unlock the content.</p>
  
  <p>So my questions are:
  1) Is it OK to left transaction in unfinished state (if it cannot be verified)?
  2) And how do I restore it? Maybe I'm missing some callback that accompanies "You have already purchased..." messagebox?</p>
  
  <p>P.S. My in-app purchase is "consumable". So I cannot use</p>
  
  <pre><code>[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
  </code></pre>