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。
我想知道如何根据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。