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