Restore already bought in-app-purchases on iPhone?

我的梦境 提交于 2019-11-26 10:31:02

问题


I got so far: After a reinstall, a user needs to click \"buy feature\", then he gets scared with the $0.99 question, then has to login and then gets told the feature is already bought and he gets it for free.

I know apple is a religion and users are strong believers, but isn\'t there a better way? :-) What I want is to check for the feature without actually buying it. Letting the user enter his account info seems to be neccessary, maybe buy a $0.00 feature? or is there a method somewhere that does this?

I\'m using MKStoreKit for the whole In-App-Purchase, but any solution would be great.


UPDATE

thanx to darvids0n, your method solved my problem! here\'s some working code for others trying the same:

- (void)removePreviousPurchases { //just for sandbox testing
    [[MKStoreManager sharedManager] removeAllKeychainData];
}

- (void)restorePreviousPurchases { //needs account info to be entered
    if([SKPaymentQueue canMakePayments]) {
        [[MKStoreManager sharedManager] restorePreviousTransactionsOnComplete:^(void) {
             NSLog(@\"Restored.\");
             /* update views, etc. */
        }
        onError:^(NSError *error) {
            NSLog(@\"Restore failed: %@\", [error localizedDescription]);
            /* update views, etc. */
        }];
    }
    else
    {
        NSLog(@\"Parental control enabled\");
        /* show parental control warning */
    }
}

回答1:


If the $0.99 item is non-consumable, then you should provide a "Restore Purchases" button (or similar) which calls

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];

Assuming you've added a transaction observer already, and implemented the protocol including a case to handle a restored transaction (with state SKPaymentTransactionStateRestored) this will work.




回答2:


Add these two methods :

[[SKPaymentQueue defaultQueue] addTransactionObserver:self];

[[SKPaymentQueue defaultQueue]restoreCompletedTransactions];


来源:https://stackoverflow.com/questions/7761556/restore-already-bought-in-app-purchases-on-iphone

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!