gpt4 book ai didi

iphone - StoreKit:捕获失败的恢复?

转载 作者:行者123 更新时间:2023-12-03 18:30:37 27 4
gpt4 key购买 nike

我正在使用恢复按钮实现应用内购买功能。

我设置了一个全新的测试用户,但没有支付任何费用。

当我点击恢复按钮并使用新的测试用户登录时,我无法捕获任何委托(delegate)方法来告诉我恢复事务已失败(因为没有任何内容可以恢复)。

唯一被调用的方法是-(void) paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue*)queue,但在恢复成功的情况下也会调用此方法。

我现在能做什么?我怎样才能捕获这样的案例?

<小时/>

补充:我有一个进度指示器,上面写着“正在联系 App Store”,并且我需要一个调用,以便在失败的情况下也可以隐藏它。

最佳答案

诺亚:这是给您的代码片段:

-(void)restore {

[self.delegate showLoadingScreen];
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];


}

以及以下方法:

-(void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue {

if (!queue.transactions || [queue.transactions count] == 0) {

[self showAlertScreenWithTitle:@"Error Restoring Subscription" message:@"No subscription was found to restore."];

} else {

BOOL didRestore = NO;

for (SKPaymentTransaction *t in queue.transactions) {

if (t.transactionState == SKPaymentTransactionStateRestored || t.transactionState == SKPaymentTransactionStatePurchased) {

NSTimeInterval now = [[NSDate date] timeIntervalSince1970] - _timeOffset;
NSTimeInterval expire = [t.transactionDate timeIntervalSince1970] + kExplorerSubscriptionSecondLength;
NSTimeInterval purchase = [t.transactionDate timeIntervalSince1970];

if (purchase <= now && now <= expire) {

didRestore = YES;
}

}


}

if (!didRestore)
[self showAlertScreenWithTitle:@"Error Restoring Subscription" message:@"No subscription was found to restore."];

}

[self.delegate dismissLoadingScreen];

}

请告诉我这是否对您有帮助......

关于iphone - StoreKit:捕获失败的恢复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7754900/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com