在SDK4.3中restoreCompletedTransactions被破坏了吗?
我正在尝试恢复我的自动续订订阅。不会导致对updatedTransactions的回调。这是我的代码。
{
....
[appDelegate.inapp loadStore];
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
....
}
期望回调updatedTransactions,但未收到它。
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
{
NSLog(@"IN updatedTransactions, transaction.transactionState");
for (SKPaymentTransaction *transaction in transactions)
{
switch (transaction.transactionState)
{
...
...
case SKPaymentTransactionStateRestored:
NSLog(@"IN updatedTransactions, SKPaymentTransactionStateRestored");
[self restoreTransaction:transaction];
break;
}
}
}
但我确实在最后接到了这个电话。
-(void) paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue {
}
发布于 2012-07-11 16:22:16
如果你在沙盒环境中测试,而你的测试用户是坏掉的,这种情况仍然会发生。在iTunes Connect中创建新的测试用户,然后重试。
目前还不完全清楚是什么让测试用户变得糟糕;据我所知,在非沙箱环境中使用一次测试用户就可以做到这一点,但也可能有其他原因。
(1) Xcode 4.3.1,iOS SDK 5.1
发布于 2014-06-30 10:41:06
请确保在使用[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
之前添加观察者
你的代码应该是这样的:
[[SKPaymentQueue defaultQueue] addTransactionObserver:self]; [[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
发布于 2011-04-17 17:55:01
我能够绕过这一点,但这非常奇怪。在我的测试设备上,我被iTunes窃听到登录到多个测试用户帐户。我通常只需点击取消并使用我想要恢复的帐户测试我的恢复。这一次,我决定为其他烦人的登录框输入密码。它起作用了,当我下次重新启动我的应用程序并点击restore时,它并没有困扰我登录到其他测试账户,只是我正在测试的那个账户。我继续进行恢复,它确实恢复了我想要查看的项目。
我说我们经历了愚蠢的沙盒问题,我们也知道苹果在应用程序购买方面已经发生了总体上的变化。继续玩它,你会解决它的。
希望这能帮到你。
https://stackoverflow.com/questions/5628710
复制