Hey StackOverflow ...
我的iOS应用程序允许用户以非耗材iAP的形式购买视频,所有视频都非常重,每个大约300mb / 650mb ...
Apple要求您使用StoreKit在应用中实施还原购买功能。这对我来说很好,但是,如果用户购买了一些不同的视频,那么尺寸可能真的开始加起来....我已经考虑过检查用户是否在wifi上才能完成,但是说实话,感觉就像一个解决方法而不是解决方案。我宁愿抓住用户下载的所有内容的数组,让/他们/决定他们现在要下载哪些内容。这是允许的,甚至是可能的吗?
由于
奥利
答案 0 :(得分:5)
是的,他们的要求是,在您的用户界面中,您可以区分已购买的商品和未购买的商品。例如,对于已购买的内容,您可以使用“再次下载已购买的视频”等状态以及尚未购买的视频“以99美元购买此视频”。
答案 1 :(得分:2)
-(IBAction)goRestore
{
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
}
//委托方法
- (void) paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue
{
NSLog(@"Access Apple successfully");
NSMutableArray *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];
NSLog(@"Lan thu %i tra ve ID = %@",[purchasedItemIDs count],productID);
}
//purchasedItemIDs you get all purchase product identifier and compere from your side
}
-(void)paymentQueue:(SKPaymentQueue *)queue restoreCompletedTransactionsFailedWithError:(NSError *)error{
NSLog(@"Error when purchasing: %@",error);
}
答案 2 :(得分:1)
您可以使用SKPaymentQueue的restoreCompletedTransactions
,并且可以使用SKPaymentTransaction
个transactionIdentifier
对象来跟踪所购买的交易。
答案 3 :(得分:0)
You need handle in this method
-(void)paymentQueue:(SKPaymentQueue *)queue restoreCompletedTransactionsFailedWithError:(NSError *)error
{
// Wrote Your code Here
}
请参阅apple doc