Quellcode durchsuchen

fix:修复优惠订阅的问题

100Years vor 2 Wochen
Ursprung
Commit
18b097ffe6

+ 2 - 2
AIEmoji.xcodeproj/project.pbxproj

@@ -2876,7 +2876,7 @@
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 4;
+				CURRENT_PROJECT_VERSION = 5;
 				DEVELOPMENT_TEAM = 65UD255J84;
 				ENABLE_USER_SCRIPT_SANDBOXING = NO;
 				GENERATE_INFOPLIST_FILE = YES;
@@ -2915,7 +2915,7 @@
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 4;
+				CURRENT_PROJECT_VERSION = 5;
 				DEVELOPMENT_TEAM = 65UD255J84;
 				ENABLE_USER_SCRIPT_SANDBOXING = NO;
 				GENERATE_INFOPLIST_FILE = YES;

+ 9 - 1
AIEmoji/Business/TSPurchaseMembershipVC/TSPurchasePromotionalVC/TSPurchasePromotionalCountDownTime.swift

@@ -58,7 +58,9 @@ class TSPurchasePromotionalCountDownTime {
     @objc func updateVipView() {
         if kPurchaseDefault.isVip == true {
             endCountDown()
-            NotificationCenter.default.post(name: .kCloseTSPurchasePromotionalVC, object: nil)
+            kMainAsync {
+                NotificationCenter.default.post(name: .kCloseTSPurchasePromotionalVC, object: nil)
+            }
         }
     }
     
@@ -141,6 +143,12 @@ class TSPurchasePromotionalCountDownTime {
     }
     
     func autoStart(){
+        
+        if kPurchaseDefault.isVip {
+            timer.stop()
+            return
+        }
+        
         if isHaveTime == false { return }
         guard let timeModel = self.timeModel else { return }
         let currentTimestampInt = Date.timestampInt

+ 2 - 0
AIEmoji/Business2/DisCover/TSDiscoverVC/TSDiscoverVC.swift

@@ -20,6 +20,7 @@ class TSDiscoverVC: TSBaseVC {
                 TSPurchaseVC.show(target: self)
             }
         }
+        vipBtn.isHidden = true
        return vipBtn
    }()
     
@@ -29,6 +30,7 @@ class TSDiscoverVC: TSBaseVC {
             guard let self = self else { return }
             kPresentModalVC(target: self, modelVC: TSPurchasePromotionalVC(isAnimation: false))
         }
+        purchaseCountdownView.isHidden = true
        return purchaseCountdownView
    }()
     

+ 2 - 0
AIEmoji/Business2/DisCover/TSGenerateHistoryVC/TSGenerateHistoryVC.swift

@@ -20,6 +20,7 @@ class TSGenerateHistoryVC: TSBaseVC {
                TSPurchaseVC.show(target: self)
            }
        }
+        vipBtn.isHidden = true
        return vipBtn
    }()
     
@@ -29,6 +30,7 @@ class TSGenerateHistoryVC: TSBaseVC {
             guard let self = self else { return }
             kPresentModalVC(target: self, modelVC: TSPurchasePromotionalVC(isAnimation: false))
         }
+        purchaseCountdownView.isHidden = true
        return purchaseCountdownView
    }()
     

+ 22 - 1
AIEmoji/Common/Purchase/TSPurchaseManager.swift

@@ -534,6 +534,27 @@ extension PurchaseManager: SKPaymentTransactionObserver {
             case .failed:
 
                 SKPaymentQueue.default().finishTransaction(transaction)
+                
+                if let error = transaction.error as NSError? {
+                    // 1. 检查内层错误
+                    if let underlyingError = error.userInfo[NSUnderlyingErrorKey] as? NSError {
+                        if underlyingError.domain == "ASDServerErrorDomain" && underlyingError.code == 3532 {
+                            print("用户已订阅,禁止重复购买")
+                            restorePremium()
+                            return
+                        }
+                    }
+                    // 2. 检查外层 SKError
+                    else if error.domain == SKErrorDomain {
+                        switch SKError.Code(rawValue: error.code) {
+                        case .unknown:
+                            print("未知错误,可能是服务器问题")
+                        default:
+                            break
+                        }
+                    }
+                }
+                
                 // Transaction was cancelled or failed before being added to the server queue.
                 var message = "Payment Failed"
                 if let error = transaction.error as? SKError,
@@ -619,7 +640,7 @@ extension PurchaseManager {
             guard let self = self else { return }
             if let data = data,
                let jsonResponse = try? JSONSerialization.jsonObject(with: data) as? [String: Any] {
-                debugPrint("PurchaseManager verifyPayResult = \(jsonResponse)")
+//                debugPrint("PurchaseManager verifyPayResult = \(jsonResponse)")
                 let status = jsonResponse["status"]
                 if let status = status as? String, status == "21007" {
                     self.verifyPayResult(transaction: transaction, useSandBox: true)

+ 12 - 11
AIEmoji/Common/View/TSImagesComparisonView.swift

@@ -175,19 +175,20 @@ class TSImagesComparisonView: UIView {
                 height: bounds.height
             ))
         }
-        
-        // 更新分割线位置
-        lineView.frame.origin.x = x
-        
-        // 更新新图片显示区域
-        maskLayer.path = path.cgPath
-        newImageView.layer.mask = maskLayer
-//        dePrint("progress = \(progress)")
-        if progress == ((reverse == true) ? 0.0 : 1.0)  { //因为反转了进度,所以结果也要反转
-//            dePrint("animationComplete")
-            animationComplete()
+
+        kMainAsync {
+            // 更新分割线位置
+            self.lineView.frame.origin.x = x
+            
+            // 更新新图片显示区域
+            self.maskLayer.path = path.cgPath
+            self.newImageView.layer.mask = self.maskLayer
+            if progress == ((self.reverse == true) ? 0.0 : 1.0)  { //因为反转了进度,所以结果也要反转
+                self.animationComplete()
+            }
         }
 
+
     }
 
 }