Skip to content
This repository was archived by the owner on Aug 10, 2020. It is now read-only.
This repository was archived by the owner on Aug 10, 2020. It is now read-only.

Handling Restore calls without having purchases anything #16

@ghost

Description

If a user restores and hasn't purchased anything before IAPManager calls
the restoreCompletionBlock. Which I think is the wrong UX

This case is not handled by -(void)paymentQueue:(SKPaymentQueue *)queue restoreCompletedTransactionsFailedWithError:(NSError *)error
because "error" is a transaction error to the Apple servers, but not
a empty SKPaymentQueue (as I thought before. lol)

A modified - (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue
fixes it.

- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue {

    if (!queue.transactions || [queue.transactions count] == 0) {
        if(self.restoreErrorBlock) {

            self.restoreErrorBlock(0);
        }


    } else if (self.restoreCompletionBlock) {
            self.restoreCompletionBlock();
        }


    self.restoreCompletionBlock = nil;
    self.restoreErrorBlock = nil;
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions