在我的应用程序中,我正在尝试实现“恢复购买”按钮,但我不知道如何获取订阅的最新购买收据。我只有一个 SKProduct,一个可自动更新的订阅。
我只需要获取最新的收据并将其发送到服务器进行验证。
我试过这个:
- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue {
for (SKPaymentTransaction *transaction in queue.transactions) {
if (transaction.transactionState == SKPaymentTransactionStatePurchasing) {
NSLog(@"Purchasing");
}
if (transaction.transactionState == SKPaymentTransactionStatePurchased) {
NSLog(@"Purchasing");
}
if (transaction.transactionState == SKPaymentTransactionStateRestored) {
NSLog(@"Restored");
}
if (transaction.transactionState == SKPaymentTransactionStateFailed) {
NSLog(@"Failed");
}
}
}
但我得到了这个:
2013-10-04 12:21:48.994 App[5289:60b] Purchasing
2013-10-04 12:21:48.995 App[5289:60b] Purchasing
2013-10-04 12:21:48.996 App[5289:60b] Purchasing
2013-10-04 12:21:48.996 App[5289:60b] Purchasing
2013-10-04 12:21:48.997 App[5289:60b] Purchasing
2013-10-04 12:21:48.998 App[5289:60b] Purchasing
2013-10-04 12:21:48.999 App[5289:60b] Purchasing
2013-10-04 12:21:48.999 App[5289:60b] Purchasing
2013-10-04 12:21:49.000 App[5289:60b] Purchasing
2013-10-04 12:21:49.000 App[5289:60b] Restored
2013-10-04 12:21:49.001 App[5289:60b] Restored
2013-10-04 12:21:49.001 App[5289:60b] Restored
我只需要最新的收据。我怎么能得到那个?问题是,由于某种原因,用户购买了订阅,但未能在我的服务器上验证。为什么它失败了——我不知道。