Skip to content

Instantly share code, notes, and snippets.

@victoraldecoa
Created August 7, 2015 03:23
Show Gist options
  • Save victoraldecoa/d0b68fd0230f7f3b0e8a to your computer and use it in GitHub Desktop.
Save victoraldecoa/d0b68fd0230f7f3b0e8a to your computer and use it in GitHub Desktop.
#pragma mark - wtf apple section
// instead of relying on SKPaymentTransactionState, use isTransactionRestore and isTransactionPurchase
- (BOOL)isTransactionRestore:(SKPaymentTransaction *)transaction {
BOOL purchasedButStillRestore = [self isPurchaseButStillRestoreTransaction:transaction];
return (transaction.transactionState == SKPaymentTransactionStateRestored) || purchasedButStillRestore;
}
- (BOOL)isTransactionPurchase:(SKPaymentTransaction *)transaction {
BOOL purchasedButStillRestore = [self isPurchaseButStillRestoreTransaction:transaction];
return (transaction.transactionState == SKPaymentTransactionStatePurchased && !purchasedButStillRestore);
}
- (BOOL)isPurchaseButStillRestoreTransaction:(SKPaymentTransaction *)transaction {
return (transaction.transactionState == SKPaymentTransactionStatePurchased) &&
(transaction.originalTransaction != nil) &&
![transaction.transactionIdentifier isEqualToString:transaction.originalTransaction.transactionIdentifier];
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment