Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 应用内购买恢复功能_Ios_In App Purchase - Fatal编程技术网

Ios 应用内购买恢复功能

Ios 应用内购买恢复功能,ios,in-app-purchase,Ios,In App Purchase,任何人都知道如何使用IAP进行恢复选项 我使用非消耗性产品进行采购 我知道我必须实现此委托方法: - (void)restoreTransaction:(SKPaymentTransaction *)transaction - (void)paymentQueue:(SKPaymentQueue *)queue restoreCompletedTransactionsFailedWithError:(NSError *)error - (void)paymentQueueRestoreCompl

任何人都知道如何使用IAP进行恢复选项

我使用非消耗性产品进行采购

我知道我必须实现此委托方法:

- (void)restoreTransaction:(SKPaymentTransaction *)transaction
- (void)paymentQueue:(SKPaymentQueue *)queue restoreCompletedTransactionsFailedWithError:(NSError *)error
- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue
但我仍然无法理解如何使用流程调用此方法

我假设我需要调用这个方法
[[SKPaymentQueue defaultQueue]restoreCompletedTransactions]在获取调用回调方法之前


你能一步一步地解释它是如何工作的吗。

你想当然了!您唯一需要调用的是:

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
这将恢复用户已完成的所有事务。对于每个交易,都会调用此
SKPaymentTransactionObserver
方法(用户每次购买时也会调用相同的方法):

如果需要,可以使用transactionState来区分交易是原始购买(
SKPaymentTransactionStatePurchased
)还是还原(
SKPaymentTransactionStateRestored

如果需要知道恢复何时完成,可以使用:

- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue {
   NSLog(@"%d items restored", queue.transactions.count);
}

你想当然!您唯一需要调用的是:

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
这将恢复用户已完成的所有事务。对于每个交易,都会调用此
SKPaymentTransactionObserver
方法(用户每次购买时也会调用相同的方法):

如果需要,可以使用transactionState来区分交易是原始购买(
SKPaymentTransactionStatePurchased
)还是还原(
SKPaymentTransactionStateRestored

如果需要知道恢复何时完成,可以使用:

- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue {
   NSLog(@"%d items restored", queue.transactions.count);
}