在应用程序购买 - 存储/获取用户购买历史| iOS
问题描述:
我正在开发一个应用程序,允许用户使用In App Purchase购买新的级别/功能。 据我所知,根据我的研究,我可以通过传递一组ProductID来使用SKProductsRequest从iTunesConnect获取In App Purchase产品。然后我必须检查用户是否已经购买了任何产品并据此处理UI。我将购买的产品ID存储在NSUderDefaults中,并根据退回的产品进行检查。我不太确定这个过程,因为用户可能打算在某个阶段删除并重新安装应用程序,我们将失去NSUserDefaults以及用户的购买历史记录。在应用程序购买 - 存储/获取用户购买历史| iOS
有什么办法可以从苹果服务器获取用户信息?或者我必须保存用户购买记录。
在此先感谢
答
你可以得到一个数组包含所有产品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];
}
}
+0
谢谢,我会测试并让你知道它是否有效。并肯定会upvote你的答案并设置为选定 – 2012-04-03 16:37:13
“ - (空)paymentQueue:(SKPaymentQueue *)队列“updatedTransactions:(NSArray *)transactions”应该在项目恢复时返回SKPaymentTransactionStateRestored,并且您可以使用“originalTransaction”属性获取有关以前购买的信息,但我不确定这是否正确返回。我在这里读到“http://stackoverflow.com/questions/6806766/skpaymenttransactionstaterestored-doesnt-get-called-when-in-app-purchase-is-bei”它没有被返回 – Basel 2012-04-03 12:36:26
如果你依赖获取信息,你限制您的应用程序的使用需要网络连接。如果您找到某种方式来记录所有权,那么用户可以在“离开电网”(远离网络连接到互联网)的情况下工作。 – 2014-03-07 21:36:55