Apple 开发者论坛中也报道了类似的情况。
当用户在要求恢复后点击取消时会发生什么......
在他们的案例中,从文档中复制和粘贴方法会产生一个错误,该错误显然编译时没有错误。
// wrong, but compiles
- (void)paymentQueue:(SKPaymentQueue *)queuerestoreCompletedTransactionsFailedWithError:(NSError *)error
代替
// correct
- (void)paymentQueue:(SKPaymentQueue *)queue restoreCompletedTransactionsFailedWithError:(NSError *)error
如果您的观察者方法看起来像上面的第一个方法,那么您可能没有收到恢复操作的失败消息。
更新:
在 SDK 文档中SKPaymentTransactionObserver
,我看到了 OS 3.1 (2009-11-17) 的恢复失败方法,但 3.0 文档 (2009-05-01) 似乎没有。奇怪的是,3.1 文档指出这种观察者方法是“在 iPhone OS 3.0 及更高版本中可用”。
为了确定。我检查了我的 iPhoneOS3.0.sdk/System/Library/Frameworks/StoreKit.framework/Headers/SKPaymentQueue.h 的副本,以确保存在恢复失败观察者方法。(这是。)