首页 文章

在App Purchase Restore Query中

提问于
浏览
4

嘿StackOverflow ......

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

Apple要求您使用StoreKit在应用中实施还原购买功能 . 这对我来说很好,但是,如果用户购买了一些不同的视频,那么尺寸可能真的开始加起来....我已经考虑过检查用户是否在wifi上才能完成,但是说实话,感觉就像一个解决方法而不是解决方案 . 我宁愿 grab 用户下载的所有内容的数组,让/他们/决定他们现在要下载哪些内容 . 这是允许的,甚至是可能的吗?

谢谢

奥利

4 回答

  • 5

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

  • 0
    -(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);
     }
    
  • 1

    你可以使用SKPaymentQueue的 restoreCompletedTransactions ,并且从 SKPaymentTransaction 对象的数组中你可以使用 transactionIdentifier 来跟踪所购买的交易 .

    here is the reference

  • 2
    You need handle in this method
    
    -(void)paymentQueue:(SKPaymentQueue *)queue restoreCompletedTransactionsFailedWithError:(NSError *)error
    {
    
    // Wrote Your code Here 
    
    }
    

    请参考apple doc

相关问题