Ios8 检查自动更新InApp购买iOS

Ios8 检查自动更新InApp购买iOS,ios8,in-app-purchase,payment,auto-renewing,skpaymenttransaction,Ios8,In App Purchase,Payment,Auto Renewing,Skpaymenttransaction,我正在为iOS实施自动更新的iApp购买。第一个月的工作情况良好。但我无法知道用户的订阅是否自动续订,这意味着当前InApp购买的状态如何 在研究了这么多关于StackOverflow的答案之后,我能够理解我必须提供Restore按钮来恢复事务。我也实现了它,它给出了我到目前为止的所有事务。因此,我无法获得我的最后一笔交易。因此,请帮助了解上次自动续订事务的状态,以便我能够更新服务器上的状态 下面是我用来恢复交易的代码: [[SKPaymentQueue defaultQueue] addTr

我正在为iOS实施自动更新的iApp购买。第一个月的工作情况良好。但我无法知道用户的订阅是否自动续订,这意味着当前InApp购买的状态如何

在研究了这么多关于StackOverflow的答案之后,我能够理解我必须提供Restore按钮来恢复事务。我也实现了它,它给出了我到目前为止的所有事务。因此,我无法获得我的最后一笔交易。因此,请帮助了解上次自动续订事务的状态,以便我能够更新服务器上的状态

下面是我用来恢复交易的代码:

 [[SKPaymentQueue defaultQueue] addTransactionObserver:self];
[[SKPaymentQueue defaultQueue]restoreCompletedTransactions];
并将其代表落实如下:

- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue {
NSLog(@"%@",queue );
NSLog(@"Restored Transactions are once again in Queue for purchasing %@",[queue transactions]);

NSMutableArray *purchasedItemIDs = [[NSMutableArray alloc] init];
NSLog(@"received restored transactions: %zd", queue.transactions.count);

for (SKPaymentTransaction *transaction in queue.transactions)
{
    NSString *productID = transaction.payment.productIdentifier;
    [purchasedItemIDs addObject:productID];
    NSLog (@"product id is %@" , productID.description);
    NSLog (@"observationInfo is %@" , transaction.payment.productIdentifier.observationInfo);


    // here put an if/then statement to write files based on previously purchased items
    // example if ([productID isEqualToString: @"youruniqueproductidentifier]){write files} else { nslog sorry}
}
 }


- (void)paymentQueue:(SKPaymentQueue *)queue restoreCompletedTransactionsFailedWithError:(NSError *)error
  {
    NSLog(@"Restore Error... %@",error.description);
   }

我猜,若应用程序正在运行且事务正在续订,则事务恢复不起作用。请参阅存储工具包指南:-

成功续订订阅后,Store Kit会添加 用于续订到事务队列的事务。你的应用程序检查 启动时的事务队列,并以相同的方式处理续订 与任何其他交易一样。请注意,如果您的应用程序已在运行 当订阅续订时,不调用事务观察者; 您的应用程序在下次启动时会发现续费

重新启动应用程序后,事务恢复功能可以很好地恢复当前自动续订的事务

在Alternate上,如果您想在不重新启动应用程序的情况下检查交易是否已续订,您可以手动刷新“应用程序收据”

链接(过期和续订):-