okg*_*kgo 21 iphone in-app-purchase
SDK 4.3中的restoreCompletedTransactions是否已损坏?
我正在尝试恢复我的自动续订订阅.它不会导致对updatedTransactions的回调.这是我的代码.
{
....
[appDelegate.inapp loadStore];
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
....
}
Run Code Online (Sandbox Code Playgroud)
期待回调到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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
但我最后接到了这个电话.
-(void) paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue {
}
Run Code Online (Sandbox Code Playgroud)
And*_*Ley 24
如果您在Sandbox环境中进行测试并且您的测试用户被破坏,这仍然会(1)发生.在iTunes Connect中创建一个新的测试用户,然后重试.
目前还不完全清楚是什么让测试用户变坏了; 从我收集的内容中,在非沙箱环境中使用它们可以做到这一点,但也可能有其他原因.
(1)Xcode 4.3.1,iOS SDK 5.1
确保在使用前添加观察者 [[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
你的代码应该是这样的:
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
小智 3
我能够解决这个问题,但这很奇怪。在我的测试设备上,我被 iTunes 窃听以登录多个测试用户帐户。我通常只是点击取消并使用我想要恢复的帐户测试我的恢复。这次我决定为这些其他烦人的登录框输入密码。它有效,下次我重新启动我的应用程序并点击恢复时,它并没有让我登录其他测试帐户,只是我正在测试的帐户。我继续进行恢复,它确实恢复了我想查看的项目。
我想说的是,我们遇到了愚蠢的沙盒问题,而且我们也知道苹果在应用程序购买方面已经发生了总体变化。继续尝试它,你就会成功的。
希望这可以帮助你。
| 归档时间: |
|
| 查看次数: |
9726 次 |
| 最近记录: |