Files
keyboard/keyBoard/Class/Pay/StoreKit2Manager/Models/TransactionHistory.swift
2025-12-16 13:10:50 +08:00

81 lines
2.2 KiB
Swift
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// TransactionHistory.swift
// StoreKit2Manager
//
// Created by xiaopin on 2025/12/6.
//
import Foundation
import StoreKit
///
public struct TransactionHistory {
/// ID
public let productId: String
///
public let product: Product?
///
public let transaction: StoreKit.Transaction
///
public let purchaseDate: Date
///
public let expirationDate: Date?
/// 退
public let isRefunded: Bool
///
public let isRevoked: Bool
///
public let ownershipType: StoreKit.Transaction.OwnershipType
/// ID
public let transactionId: UInt64
public init(
productId: String,
product: Product?,
transaction: StoreKit.Transaction,
purchaseDate: Date,
expirationDate: Date? = nil,
isRefunded: Bool = false,
isRevoked: Bool = false,
ownershipType: StoreKit.Transaction.OwnershipType,
transactionId: UInt64
) {
self.productId = productId
self.product = product
self.transaction = transaction
self.purchaseDate = purchaseDate
self.expirationDate = expirationDate
self.isRefunded = isRefunded
self.isRevoked = isRevoked
self.ownershipType = ownershipType
self.transactionId = transactionId
}
}
// MARK: - Transaction
extension TransactionHistory {
/// Transaction
public static func from(_ transaction: StoreKit.Transaction, product: Product? = nil) -> TransactionHistory {
return TransactionHistory(
productId: transaction.productID,
product: product,
transaction: transaction,
purchaseDate: transaction.purchaseDate,
expirationDate: transaction.expirationDate,
isRefunded: transaction.revocationDate != nil,
isRevoked: transaction.revocationDate != nil,
ownershipType: transaction.ownershipType,
transactionId: transaction.id
)
}
}