ios 인앱결제
Posted by Albert 696Day 17Hour 35Min 9Sec ago [2023-05-24]
애플 인앱결제 가이드:
1import Foundation 2import StoreKit 3 4@MainActor 5class PurchaseManager: ObservableObject { 6 7 private let productIds = ["pro_monthly", "pro_yearly", "pro_lifetime"] 8 9 @Published 10 private(set) var products: [Product] = [] 11 private var productsLoaded = false 12 13 func loadProducts() async throws { 14 guard !self.productsLoaded else { return } 15 self.products = try await Product.products(for: productIds) 16 self.productsLoaded = true 17 } 18 19 func purchase(_ product: Product) async throws { 20 let result = try await product.purchase() 21 22 switch result { 23 case let .success(.verified(transaction)): 24 // Successful purhcase 25 await transaction.finish() 26 case let .success(.unverified(_, error)): 27 // Successful purchase but transaction/receipt can't be verified 28 // Could be a jailbroken phone 29 break 30 case .pending: 31 // Transaction waiting on SCA (Strong Customer Authentication) or 32 // approval from Ask to Buy 33 break 34 case .userCancelled: 35 // ^^^ 36 break 37 @unknown default: 38 break 39 } 40 } 41}