IAP:接收`paymentQueueRestoreCompletedTransactionsFinished:`回调未完成的事务

时间:2014-03-10 14:59:30

标签: ios in-app-purchase storekit

有时我会收到此回调

- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue

即使在我收到此

之前
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions

我甚至不会说finishTransaction:。我发现这个超级怪物。我一直假设在将每个未完成的事务标记为已完成之前不会触发paymentQueueRestoreCompletedTransactionsFinished:

这是预期的行为吗?

这是我在文档中找到的

  

- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue Description   告诉观察者支付队列已完成发送已恢复的事务。之后调用此方法   所有可恢复的交易都已由付款队列处理。   您的申请不需要在此方法中执行任何操作。

我不确定这意味着什么。

1 个答案:

答案 0 :(得分:0)

我发现头文件本身在这部分最清楚。

@interface SKPaymentQueue : NSObject
...
// Array of unfinished SKPaymentTransactions.  Only valid while the queue has observers.  Updated asynchronously.
@property(nonatomic, readonly) NSArray *transactions;

@end

@protocol SKPaymentTransactionObserver
// Sent when all transactions from the user's purchase history have successfully been added back to the queue.
- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue
...
@end

这两个结合使它明确无误。 paymentQueueRestoreCompletedTransactionsFinished将所有交易添加到StoreKit后,系统会触发SKPaymentQueue-[SKPaymentQueue transactions]只有未完成的交易清单。

我认为文档本可以更明确。