我正在开发一个应用程序,它还支持一些可以通过应用内购买的功能。我提供了两个按钮,购买和恢复,意思是字面意思。
我有一个非常基本的问题,如果用户按下“恢复”按钮,并且在从未购买应用内可购买产品的凭据中要求提供凭据类型时,该怎么办?我怎么处理这种情况?我的理解告诉我,当用户按下恢复按钮时,我们打电话给restoreCompletedTransactions
,这将尝试恢复购买的产品,因为在我引用的情况下,用户没有购买任何产品,没有什么可以解锁。我认为商店套件会自动处理并带有购买选项。
这对我不起作用。如果我使用的帐户从未购买过应用内商品并尝试恢复,则无响应,则不会调用任何代表。另一方面,如果我使用已购买的帐户进行恢复,则一切正常。
非常感谢任何帮助。
感谢。
P.S。我正在使用测试用户和沙盒环境。
答案 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
}
}
}