PurchaseManager
@available(iOS 15.0, *)
public class PurchaseManager : @unchecked Sendable
内购支付管理器
consumable: 消耗型,可重复购买,同时只能有一笔未完成的交易,完成后不可退款 nonConsumable: 非消耗型,未退款时不可重复购买,只能购买一次,完成后也可退款
-
单例模式
Declaration
Swift
public static let shared: PurchaseManager
-
Undocumented
Declaration
Swift
public init()
-
是否允许交易
Declaration
Swift
public var canMakePayments: Bool { get }
-
products(_:
Asynchronous) 获取产品列表
Declaration
Swift
public func products(_ identifiers: [String]) async throws -> [Product]
-
支付指定产品ID,成功时自动验证(验证失败抛异常),可指定自动完成交易(默认false)
Declaration
Swift
@MainActor public func purchase( _ identifier: String, finishAutomatically: Bool = false, quantity: Int? = nil, appAccountToken: String? = nil, options: Set<Product.PurchaseOption> = [] ) async throws -> Product.PurchaseResult
-
支付指定产品,成功时自动验证(验证失败抛异常),可指定自动完成交易(默认false)
Declaration
Swift
@MainActor public func purchase( _ product: Product, finishAutomatically: Bool = false, quantity: Int? = nil, appAccountToken: String? = nil, options: Set<Product.PurchaseOption> = [] ) async throws -> Product.PurchaseResult
-
finish(_:
Asynchronous) 完成指定产品ID最近一次交易,消耗型商品完成后不能退款且不再返回
Declaration
Swift
@discardableResult public func finish(_ productIdentifier: String) async -> Transaction?
-
finish(_:
Asynchronous) 完成指定交易,消耗型商品完成后不能退款且不再返回
Declaration
Swift
public func finish(_ transaction: Transaction) async
-
finish(_:
Asynchronous) 完成指定交易ID,消耗型商品完成后不能退款且不再返回
Declaration
Swift
@discardableResult public func finish(_ transactionId: UInt64) async -> Bool
-
purchasedTransactions()
Asynchronous获取所有已支付未退款的交易列表,按支付时间倒序排列(进行中,同一商品有未完成的交易不能再次购买)
Declaration
Swift
public func purchasedTransactions() async -> [Transaction]
-
latestTransaction(_:
AsynchronousincludingRefunds: ) 根据商品ID获取最近一次已验证的交易,默认未包含已退款订单
Declaration
Swift
public func latestTransaction( _ productIdentifier: String, includingRefunds: Bool = false ) async -> Transaction?
-
获取已验证的支付结果,默认未包含已退款订单
Declaration
Swift
public func verifiedTransaction( _ verificationResult: VerificationResult<Transaction>?, includingRefunds: Bool = false ) -> Transaction?
-
restorePurchases()
Asynchronous同步并恢复已购买的未退款交易,按支付时间倒序排列
Declaration
Swift
@discardableResult public func restorePurchases() async throws -> [Transaction]
-
开始监听交易更新,主线程回调更新句柄(已验证订单,含退款)
Declaration
Swift
public func startListening(_ listener: (@MainActor @Sendable (Transaction) -> Void)?)
-
停止监听交易更新
Declaration
Swift
public func stopListening()
-
refund(_:
Asynchronous) 指定产品ID退款最近一次交易
Declaration
Swift
@discardableResult public func refund(_ productIdentifier: String) async throws -> Transaction.RefundRequestStatus
-
refund(_:
Asynchronous) 指定交易退款
Declaration
Swift
@discardableResult public func refund(_ transaction: Transaction) async throws -> Transaction.RefundRequestStatus
-
refund(_:
Asynchronous) 指定交易ID退款
Declaration
Swift
@discardableResult @MainActor public func refund(_ transactionId: UInt64) async throws -> Transaction.RefundRequestStatus
-
manageSubscriptions()
Asynchronous管理订阅
Declaration
Swift
@MainActor public func manageSubscriptions() async throws
-
countryCode()
Asynchronous获取支付国家码
Declaration
Swift
public func countryCode() async -> String?