恢复自动续订订阅的订阅购买

How*_*ard 7 iphone xcode objective-c ios

当我在我的应用程序中购买以前购买的"Auto-Renewable Subscriptions"时,它说

You're currently subscribed to this...
Run Code Online (Sandbox Code Playgroud)

当我点击OK时,在支付队列的代表中..

- (void) paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
{
    for (SKPaymentTransaction * transaction in transactions)
    {
        switch (transaction.transactionState)
        {
            case SKPaymentTransactionStatePurchased:
                [self completeTransaction:transaction];
                break;
            case SKPaymentTransactionStateFailed:
                [self failedTransaction:transaction]; // Why this is called?
                break;
            case SKPaymentTransactionStateRestored:
                [self restoreTransaction:transaction];
            default:
                break;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

返回的transaction.transactionStateSKPaymentTransactionStateFailed 而不是SKPaymentTransactionStateRestored,这是正常的吗?

那我该如何正确处理呢?

小智 3

我有同样的问题,我认为没有任何方法可以区分此事件与其他错误(它返回错误代码SKErrorPaymentCancelled)。我认为处理它的唯一方法是使用“恢复购买”按钮,并[[SKPaymentQueue defaultQueue] restoreCompletedTransactions]在用户按下它时调用。