iOS 如何根据 apple ID 检查用户已经购买或未使用应用内购买

How to check user already purchased or not using In-App Purchase in iOS based on apple ID

我想知道如何根据apple id检查是否已经购买,因为我没有登录我的应用程序。

下面是我的代码:

(void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {
}

任何帮助如何进行?

您可以使用 -[SKPaymentQueue restoreCompletedTransactions] 从商店中获取以前交易的列表。恢复后的交易可以像正常交易一样进行验证。

您的应用程序通过调用

restoreCompletedTransactions method of SKPaymentQueue class

这会向 App Store 发送一个请求,以恢复您应用程序的所有已完成交易。如果您的应用为其付款请求的 applicationUsername 属性 设置了一个值,如检测不规则 Activity 中所述,请使用

restoreCompletedTransactionsWithApplicationUsername:

恢复交易时提供相同信息的方法。

如等待 App Store 处理交易中所述,您的交易队列观察器将针对每个已恢复的交易以 SKPaymentTransactionStateRestored 状态调用。您此时采取的操作取决于您应用的设计。

NSMutableArray *productIDsToRestore = <# From the user #>;
SKPaymentTransaction *transaction = <# Current transaction #>;

if ([productIDsToRestore containsObject:transaction.transactionIdentifier]) {
    // Re-download the Apple-hosted content, then finish the transaction
    // and remove the product identifier from the array of product IDs.
} else {
    [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
}

阅读 Apple 文档 here