Browse Source

【订阅】DMG 购买成功回调处理

lizhe 1 year ago
parent
commit
2acea10949

+ 22 - 0
PDF Office/PDF Master/Class/KMLightMember/Controller/SubscriptionView/WaterMark/KMSubscribeWaterMarkWindowController.swift

@@ -116,6 +116,18 @@ class KMSubscribeWaterMarkWindowController: NSWindowController {
         }
     }
     
+    func closeWindow() {
+        if subscribeWaterMarkMainWindow != nil {
+            subscribeWaterMarkMainWindow?.endSheet(subscribeWaterMarkMainWindow!)
+        }
+        
+        if subscribeWaterMarkController != nil {
+            subscribeWaterMarkController?.window?.close()
+        }
+        subscribeWaterMarkController = nil
+        subscribeWaterMarkMainWindow = nil
+    }
+    
     func reloadData() {
         #if VERSION_FREE
         self.waterViewHeightConstrain.constant = 511
@@ -125,4 +137,14 @@ class KMSubscribeWaterMarkWindowController: NSWindowController {
         self.waterViewHeightConstrain.constant = 511 - 80
         #endif
     }
+    
+    static func isSampleController() -> KMSubscribeWaterMarkWindowController {
+        for window in NSApp.windows {
+            let controller = window.windowController
+            if controller is KMSubscribeWaterMarkWindowController {
+                return controller as! KMSubscribeWaterMarkWindowController
+            }
+        }
+        return KMSubscribeWaterMarkWindowController()
+    }
 }

+ 10 - 2
PDF Office/PDF Master/Class/KMLightMember/InAppPurchase/DMG/KMDMGPurchaseManager.swift

@@ -24,8 +24,16 @@ class KMDMGPurchaseManager: NSObject {
     }
     
     func restorePurchases() {
-        KMLightMemberManager.manager.updateNetworkingUserInfo { isDidLogout in
-            print("DMG刷新用户信息成功")
+        KMRequestServerManager.manager.getUserInfo { [unowned self] success, data, error, isLocal in
+            if success {
+                print("DMG刷新用户信息成功")
+                if KMLightMemberManager.manager.purchaseState == .subscription {
+                    let controller = KMSubscribeWaterMarkWindowController.isSampleController()
+                    controller.closeWindow()
+                }
+            } else {
+                print("DMG刷新用户信息失败")
+            }
         }
     }
 }