4

嘿堆栈溢出...

我的 iOS 应用程序允许用户以非消耗性 iAP 的形式购买视频,所有视频都很重,每个大约 300mb/650mb...

Apple 要求您使用 StoreKit 在您的应用程序中实现恢复购买功能。这对我来说没问题,但是,如果用户购买了几个不同的视频,那么尺寸真的会开始增加......我考虑过在这之前检查用户是否在 wifi 上,但是为了老实说,这感觉像是一种解决方法而不是解决方案。我宁愿获取用户下载的所有内容的数组,然后让 /them/ 决定他们现在要下载哪些。这是允许的,甚至是可能的吗?

谢谢

奥利

4

4 回答 4

5

是的,他们的要求是在您的用户界面中,您可以区分已购买和未购买的商品。例如,对于已购买的内容,您可以使用“再次下载已购买的视频”之类的状态,对于尚未购买的视频,可以使用“以 99 美元购买此视频”之类的状态。

于 2013-07-03T08:53:21.410 回答
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);
 }
于 2013-07-03T09:00:57.567 回答
1

您可以使用 SKPaymentQueue和可用于跟踪购买交易的对象restoreCompletedTransactions数组。SKPaymentTransactiontransactionIdentifier

这是参考

于 2013-04-26T13:22:42.350 回答
0
You need handle in this method

-(void)paymentQueue:(SKPaymentQueue *)queue restoreCompletedTransactionsFailedWithError:(NSError *)error
{

// Wrote Your code Here 

}

请参考苹果文档

于 2013-07-09T12:07:54.140 回答