Browse Source

【会员系统】修复“付费购买完成崩溃”

wanjun 3 months ago
parent
commit
bd81faa725

+ 37 - 24
PDF Office/PDF Master/MemberCenter/ViewModel/KMProductModel.swift

@@ -172,7 +172,7 @@ class KMProductModel: ObservableObject {
     func getDMGPrice(productCode: String) -> String {
         guard let productModels = dmgProductDatas?.listingProducts else { return "" }
         for model in productModels {
-            if model.code == "productCode" {
+            if model.code == productCode {
                 return model.price.stringValue
             }
         }
@@ -184,7 +184,7 @@ class KMProductModel: ObservableObject {
     func getDMGCNYPrice(productCode: String) -> String {
         guard let productModels = dmgProductDatas?.listingProducts else { return "" }
         for model in productModels {
-            if model.code == "productCode" {
+            if model.code == productCode {
                 return model.cnyPrice.stringValue
             }
         }
@@ -196,7 +196,7 @@ class KMProductModel: ObservableObject {
     func getDMGDisplayPrice(productCode: String) -> String {
         guard let productModels = dmgProductDatas?.listingProducts else { return "" }
         for model in productModels {
-            if model.code == "productCode" {
+            if model.code == productCode {
                 return model.displayPrice.stringValue
             }
         }
@@ -208,7 +208,7 @@ class KMProductModel: ObservableObject {
     func getDMGDisplayCNYPrice(productCode: String) -> String {
         guard let productModels = dmgProductDatas?.listingProducts else { return "" }
         for model in productModels {
-            if model.code == "productCode" {
+            if model.code == productCode {
                 return model.displayCnyPrice.stringValue
             }
         }
@@ -425,6 +425,28 @@ class KMProductModel: ObservableObject {
      对应商品价格
      */
     func getProductPrice(_ type: KMPurchasedProductType) -> String {
+#if VERSION_FREE
+#if VERSION_DMG
+    // DMG
+            if type == .pdfReaderProStandard_dmg {
+                return getDMGPrice(productCode: "standard-annual-subscription")
+            } else if type == .pdfReaderProAdvanced_dmg {
+                return getDMGPrice(productCode: "advanced-annual-subscription")
+            } else if type == .pdfReaderProPermanent_dmg {
+                return getDMGPrice(productCode: "advanced-permanent")
+            } else if type == .pdfReaderProAIAnnual_dmg {
+                return getDMGPrice(productCode: "ai-subscription-year-trail")
+            } else if type == .pdfReaderProAIMonthly_dmg {
+                return getDMGPrice(productCode: "ai-subscription-month")
+            } else if type == .pdfToOffice_dmg {
+                return getDMGPrice(productCode: "PDF to Office")
+            } else if type == .add2Device_dmg {
+                return getDMGPrice(productCode: "Add 2-Device · Advanced Annual")
+            } else if type == .add3Device_dmg {
+                return getDMGPrice(productCode: "Add 3-Device · Advanced Annual")
+            }
+#else
+    // AppStore 免费版本
         if type == .fourDevicesAllAccessPackNew6months_lite {
             if let product = IAPProductsManager.default().fourDevicesAllAccessPackNew6Months_lite, product.isOffers {
                 return product.offersPrice()
@@ -467,7 +489,11 @@ class KMProductModel: ObservableObject {
             } else {
                 return IAPProductsManager.default().advancedAdd2DevicesAllAccessPack12months_lite.price()
             }
-        } else if type == .aiAllAccessPack1month_pro {
+        }
+#endif
+#else
+    // AppStore 付费版
+        if type == .aiAllAccessPack1month_pro {
             if let product = IAPProductsManager.default().aiAllAccessPack1month_pro, product.isOffers {
                 return product.offersPrice()
             } else {
@@ -509,23 +535,8 @@ class KMProductModel: ObservableObject {
             } else {
                 return IAPProductsManager.default().advancedAdd2DevicesAllAccessPack12months_pro.price()
             }
-        } else if type == .pdfReaderProStandard_dmg {
-            return getDMGPrice(productCode: "PDF Reader Pro Standard - Annual Plan")
-        } else if type == .pdfReaderProAdvanced_dmg {
-            return getDMGPrice(productCode: "PDF Reader Pro Advanced - Annual Plan")
-        } else if type == .pdfReaderProPermanent_dmg {
-            return getDMGPrice(productCode: "PDF Reader Pro Permanent")
-        } else if type == .pdfReaderProAIAnnual_dmg {
-            return getDMGPrice(productCode: "PDF Reader Pro AI - Annual Plan")
-        } else if type == .pdfReaderProAIMonthly_dmg {
-            return getDMGPrice(productCode: "PDF Reader Pro AI - Monthly Plan")
-        } else if type == .pdfToOffice_dmg {
-            return getDMGPrice(productCode: "PDF to Office")
-        } else if type == .add2Device_dmg {
-            return getDMGPrice(productCode: "Add 2-Device · Advanced Annual")
-        } else if type == .add3Device_dmg {
-            return getDMGPrice(productCode: "Add 3-Device · Advanced Annual")
         }
+#endif
         return ""
     }
     
@@ -533,11 +544,11 @@ class KMProductModel: ObservableObject {
         if state == .dmg_Base {
             var code = ""
             if tag == 1 {
-                code = "PDF Reader Pro Standard - Annual Plan"
+                code = "standard-annual-subscription"
             } else if tag == 3 {
-                code = "PDF Reader Pro Permanent"
+                code = "advanced-permanent"
             } else {
-                code = "PDF Reader Pro Advanced - Annual Plan"
+                code = "advanced-annual-subscription"
             }
             #if VERSION_DMG
             let embeddedWC = KMPurchaseEmbeddedWindowController.currentCode(code)
@@ -770,6 +781,7 @@ class KMProductModel: ObservableObject {
      会员购买
      */
     private func membershipPurchase(_ type: KMPurchasedProductType) -> Void {
+#if !VERSION_DMG
         if type == .fourDevicesAllAccessPackNew6months_lite || type == .fourDevicesAllAccessPackNew12months_lite {
             if isPurchaseSwitch {
                 IAPProductsManager.default().makeSubProduct(IAPProductsManager.default().fourDevicesAllAccessPackNew12months_lite, discount: isCancelAutoRenew)
@@ -801,6 +813,7 @@ class KMProductModel: ObservableObject {
         } else if type == .advancedAdd2DevicesAllAccessPack12months_pro {
             IAPProductsManager.default().makeSubProduct(IAPProductsManager.default().advancedAdd2DevicesAllAccessPack12months_pro, discount: isCancelAutoRenew)
         }
+#endif
     }
 
     // MARK: Action Method

+ 10 - 0
PDF Office/PDF Master/MemberCenter/WindowsController/KMProductCompareWC.swift

@@ -1077,6 +1077,12 @@ class KMProductCompareWC: NSWindowController {
         removeWaitingView(from: window?.contentView ?? NSView())
         reloadData()
 
+#if VERSION_FREE
+#if VERSION_DMG
+    // DMG
+
+#else
+    // AppStore 免费版本
         if IAPProductsManager.default().fourDevicesAllAccessPackNew6Months_lite.isSubscribed {
             if kEventTag == 1 {
                 trackEvent_free(eventName: "PromotionalOffer", params: ["PUW_Btn": "PUW_7OffUpgrade_6MonthPaid"], platform: .AppCenter)
@@ -1086,6 +1092,10 @@ class KMProductCompareWC: NSWindowController {
                 trackEvent_free(eventName: "PromotionalOffer", params: ["PUW_Btn": "PUW_7OffUpgrade_12MonthPaid"], platform: .AppCenter)
             }
         }
+#endif
+#else
+    // AppStore 付费版
+#endif
     }
     @objc func IAPProductLoadedNotification(_ notification: Notification) {
         reloadData()

+ 1 - 1
PDF Office/PDF Master/MemberCenter/WindowsController/KMProductCompareWC.xib

@@ -102,7 +102,7 @@
         <window allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" animationBehavior="documentWindow" titlebarAppearsTransparent="YES" id="7jy-UC-R98">
             <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES" fullSizeContentView="YES"/>
             <rect key="contentRect" x="77" y="40" width="970" height="660"/>
-            <rect key="screenRect" x="0.0" y="0.0" width="1800" height="1125"/>
+            <rect key="screenRect" x="0.0" y="0.0" width="2560" height="1415"/>
             <view key="contentView" wantsLayer="YES" misplaced="YES" id="BHT-Ss-56B">
                 <rect key="frame" x="0.0" y="0.0" width="970" height="660"/>
                 <autoresizingMask key="autoresizingMask"/>