在应用程序中恢复而不购买

时间:2012-03-29 17:53:09

标签: ios app-store in-app-purchase itunes storekit

我正在开发一个应用程序,它还支持一些可以通过应用内购买的功能。我提供了两个按钮,购买和恢复,意思是字面意思。

我有一个非常基本的问题,如果用户按下“恢复”按钮,并且在从未购买应用内可购买产品的凭据中要求提供凭据类型时,该怎么办?我怎么处理这种情况?我的理解告诉我,当用户按下恢复按钮时,我们打电话给restoreCompletedTransactions,这将尝试恢复购买的产品,因为在我引用的情况下,用户没有购买任何产品,没有什么可以解锁。我认为商店套件会自动处理并带有购买选项。

这对我不起作用。如果我使用的帐户从未购买过应用内商品并尝试恢复,则无响应,则不会调用任何代表。另一方面,如果我使用已购买的帐户进行恢复,则一切正常。

非常感谢任何帮助。

感谢。

P.S。我正在使用测试用户和沙盒环境。

1 个答案:

答案 0 :(得分:0)

请在此处查看答案: iOS in-app-purchase restore returns many transactions

您必须在事务观察器中处理它。

简而言之,您可以使用以下命令启动恢复过程:

[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];

然后调用以下事务观察器:

- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue
{
    int thisIsTheTotalNumberOfPurchaseToBeRestored = queue.transactions.count;

    for (SKPaymentTransaction *transaction in queue.transactions)
    {
        NSString *thisIsProductIDThatHasAlreadyBeenPurchased = transaction.payment.productIdentifier;

        if([thisIsProductIDThatHasAlreadyBeenPurchased isEqualToString:product1ID])
        {
            //Enable product1 here
        }
    }
}