import StoreKit
import UIKit
class PurchaseManager {
var transactions: [Transaction] = []
var completionHandler: ((Result<[Transaction], Error>) -> Void)?
func loadTransactions(completion: @escaping (Result<[Transaction], Error>) -> Void) {
self.completionHandler = completion
Task {
do {
var tempTransactions: [Transaction] = []
// 获取 1 年前的日期
let oneYearAgo = Date().addingTimeInterval(-365 * 24 * 60 * 60)
// 遍历 Transaction.all 返回的异步序列
for try await verificationResult in Transaction.all {
// 验证结果,成功后添加到临时数组
if case let .verified(transaction) = verificationResult {
// 检查是否为订阅类型,并且购买日期在 1 年内,且处于订阅中
// if let expirationDate = transaction.expirationDate,
// transaction.productType == .autoRenewable,
// transaction.purchaseDate >= oneYearAgo,
// expirationDate > Date() {
// tempTransactions.append(transaction)
// SimpleLog("交易记录最近一年再用\(transaction.productID)")
// }
tempTransactions.append(transaction)
}
}
transactions = tempTransactions
completionHandler?(.success(transactions))
for transaction in transactions {
print("Product ID: \(transaction.productID), Purchase Date: \(transaction.purchaseDate.toStringFromDate()),类型\(transaction.productType) ")
if let expirationDate = transaction.expirationDate{
print(" 到期时间\(expirationDate.toStringFromDate())")
}
}
} catch {
completionHandler?(.failure(error))
print("Error loading transactions: \(error)")
}
}
}
}