我正在开发一个应用程序,允许用户使用In App Purchase购买新的级别/功能。 据我所知,根据我的研究,我可以通过传递一组ProductIds,使用SKProductsRequest从iTunesConnect获取In App Purchase产品。然后我必须检查用户是否已经购买了任何产品并相应地处理UI。我将购买的产品ID存储在NSUderDefaults中,并根据退回的产品进行检查。我不太确定这个程序,因为用户可能计划在某个阶段删除并重新安装应用程序,我们将失去NSUserDefaults,从而失去用户的购买历史记录。
我们有什么方法可以从苹果服务器获取用户的信息吗?或者我必须记录用户的购买情况。
提前致谢
答案 0 :(得分:5)
你可以得到一个数组,其中包含用户已经购买的所有产品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];
}
}