在应用内购买的常见做法?

问题描述 投票:0回答:1

我已经成功实施了IAP。 但是我想知道如何实际执行对已购买物品的检查。

购买之前:视图上有一个购买按钮。 此按钮始终可见。

购买后:我只是隐藏了购买按钮,启用了新内容,一切都很好。

但是,我想知道的是如何为用户设置一个标志,表明他/她已经购买了该商品,以便下次他/她运行该应用程序时,购买按钮不再可见,并且新内容已经可用。 我在想只是一个普通的userdefaults ...但是,这难道不是很容易被黑客入侵吗? 我该如何检查?

我在这里想念什么吗? 谢谢。

iphone xcode in-app-purchase
1个回答
1
投票

您可以获得一个包含用户已经购买过的所有产品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可以轻松做到这一点,但是如果用户删除该应用并再次安装该应用,或者如果他使用多个设备,则这种方法很有用。

© www.soinside.com 2019 - 2024. All rights reserved.