// // KMDMGPurchaseManager.swift // PDF Reader Pro // // Created by lizhe on 2023/6/8. // import Cocoa class KMDMGPurchaseManager: NSObject { public static let manager = KMDMGPurchaseManager() var fetchProductCompletion: KMPurchaseFetchProductCompletion? var availableProducts: [KMProduct] = [] var state: KMPurchaseManagerState { get { return self.updatePurchaseState() } } func updatePurchaseState() -> KMPurchaseManagerState { let info = KMLightMemberManager.manager.info.subscriptionInfoList var tempState: KMPurchaseManagerState = .unknow if info.count > 0 { for item in info { switch item.status { case 0: tempState = .unknow case 1: tempState = .subscription case 2: tempState = .subscriptionExpired case 3: tempState = .trial case 4: tempState = .trialExpired default: tempState = .unknow } } } return tempState } func purchaseProduct(productIdentifier: String, email: String, completion: KMPurchaseCompletion) { // NSWorkspace.shared.open(URL(string: "http://test-pdf-pro.kdan.cn:3021/master/checkout?email=\(email)")!) #if DEBUG NSWorkspace.shared.open(URL(string: "\(KMLightMemberManager.manager.config.kStoreServerURL)/store/master-subscription?email=\(email)")!) #else NSWorkspace.shared.open(URL(string: "\(KMLightMemberManager.manager.config.kStoreServerURL)/store/master-subscription?email=\(email)")!) #endif completion(false, .success) } func fetchProducts(completion: @escaping KMPurchaseFetchProductCompletion) { self.fetchProductCompletion = completion } func restorePurchases() { KMRequestServerManager.manager.getUserInfo { [weak self] success, data, error, isLocal in if success { KMPrint("DMG刷新用户信息成功") if KMLightMemberManager.manager.purchaseState == .subscription { let controller = KMSubscribeWaterMarkWindowController.isSampleController() controller.closeWindow() } } else { KMPrint("DMG刷新用户信息失败") } } } }