我已经成功实施了IAP。 但是我想知道如何实际执行对已购买物品的检查。
购买之前:视图上有一个购买按钮。 此按钮始终可见。
购买后:我只是隐藏了购买按钮,启用了新内容,一切都很好。
但是,我想知道的是如何为用户设置一个标志,表明他/她已经购买了该商品,以便下次他/她运行该应用程序时,购买按钮不再可见,并且新内容已经可用。 我在想只是一个普通的userdefaults ...但是,这难道不是很容易被黑客入侵吗? 我该如何检查?
我在这里想念什么吗? 谢谢。
您可以获得一个包含用户已经购买过的所有产品ID的数组
- (void) checkPurchasedItems
{
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
}//You Call This Function
//Then this delegate Function Will be fired
- (void) paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue
{
purchasedItemIDs = [[NSMutableArray alloc] init];
NSLog(@"received restored transactions: %i", queue.transactions.count);
for (SKPaymentTransaction *transaction in queue.transactions)
{
NSString *productID = transaction.payment.productIdentifier;
[purchasedItemIDs addObject:productID];
}
}
然后,在填充项目时,您可以检查其中是否包含ID,以禁用按钮。
当然,使用数据库或NSUserDefault可以轻松做到这一点,但是如果用户删除该应用并再次安装该应用,或者如果他使用多个设备,则这种方法很有用。