Browse Source

【订阅】封号、解封逻辑接入

lizhe 1 year ago
parent
commit
73009669c1

+ 21 - 14
PDF Office/PDF Master/Class/KMLightMember/InAppPurchase/Appstore/KMInAppPurchaseManager.swift

@@ -332,9 +332,6 @@ extension KMInAppPurchaseManager: SKPaymentTransactionObserver {
             // 将购买凭证发送到服务器进行验证
 //            sendReceiptToServer(receiptData: receiptData, transaction: transaction)
             sendReceiptToAppleServer(isTestServer, isDebug: isDebug, receiptData: receiptData, transaction: transaction)
-            
-            //给服务器发送票据验证
-            appStoreEquityVerification(receiptData:receiptData, type: self.type)
         } else {
             self.handleAction(state: .noReceipt)
         }
@@ -342,20 +339,25 @@ extension KMInAppPurchaseManager: SKPaymentTransactionObserver {
     
     func appStoreEquityVerification(receiptData: Data, type: KMInAppPurchaseType) {
         // 构建请求
-        var isPurchase = false
-        if type == .purchase {
-            isPurchase = true
-        }
         let receiptString = receiptData.base64EncodedString(options: [])
         KMPrint(receiptString)
-        KMRequestServerManager.manager.appStoreEquityVerification(applePayProductId: PRODUCT_1, receipt: receiptString, isPurchase: isPurchase, complete: { [unowned self] success, result in
-            if success, let data = result?.result {
-                
-            } else if result?.error != nil {
+        if type == .purchase {
+            KMRequestServerManager.manager.appStoreBuyComplete(applePayProductId: PRODUCT_1, receipt: receiptString, complete: { [unowned self] success, result in
+                if success, let data = result?.result {
+                    
+                } else if result?.error != nil {
 
-            }
-        })
-                                                                  
+                }
+            })
+        } else {
+            KMRequestServerManager.manager.appStoreEquityVerification(applePayProductId: PRODUCT_1, receipt: receiptString, complete: { [unowned self] success, result in
+                if success, let data = result?.result {
+                    
+                } else if result?.error != nil {
+
+                }
+            })
+        }
     }
 
     /**
@@ -494,6 +496,11 @@ extension KMInAppPurchaseManager: SKPaymentTransactionObserver {
             
             let state = self.verifyPurchase(purchase: receipt)
             if state == .subscription {
+                if let receiptURL = Bundle.main.appStoreReceiptURL,
+                   let receiptData = try? Data(contentsOf: receiptURL) {
+                    //给服务器发送票据验证
+                    appStoreEquityVerification(receiptData:receiptData, type: self.type)
+                }
                 self.handleAction(state: .verSuccess)
             } else {
                 self.handleAction(state: .verFailed)

+ 29 - 8
PDF Office/PDF Master/Class/KMLightMember/Manager/KMRequestServerManager.swift

@@ -578,7 +578,7 @@ extension KMRequestServerManager {
         }
     }
     
-    func appStoreEquityVerification(applePayProductId: String, receipt: String, isPurchase: Bool = false, complete: @escaping KMRequestServerComplete) {
+    func appStoreEquityVerification(applePayProductId: String, receipt: String, complete: @escaping KMRequestServerComplete) {
         let urlString = KMLightMemberManager.manager.config.kServerURL + "/pdf-office-website/pay/appStoreEquityVerification"
         
         let params: [String: Any] = ["applePayProductId": applePayProductId,
@@ -586,14 +586,12 @@ extension KMRequestServerManager {
                                      "receipt": receipt
                                     ]
         KMPrint("票据信息上传数据:\(params)")
-        var token: String = ""
-        if !isPurchase {
-            token = KMLightMemberManager.manager.token.access_token
-            if token == "" {
-                complete(false, Result())
-                return
-            }
+        var token: String = KMLightMemberManager.manager.token.access_token
+        if token == "" {
+            complete(false, Result())
+            return
         }
+        
         KMRequestServer.requestServer.request(urlString: urlString, method: .post, params: params) { requestSerializer in
             requestSerializer.setValue("Apifox/1.0.0 (https://www.apifox.cn)", forHTTPHeaderField: "User-Agent")
             requestSerializer.setValue("Bearer " + token, forHTTPHeaderField: "Authorization")
@@ -606,6 +604,29 @@ extension KMRequestServerManager {
             }
         }
     }
+    
+    func appStoreBuyComplete(applePayProductId: String, receipt: String, isPurchase: Bool = false, complete: @escaping KMRequestServerComplete) {
+        let urlString = KMLightMemberManager.manager.config.kServerURL + "/pdf-office-website/pay/appStoreBuyComplete"
+        let userId = KMLightMemberManager.manager.info.id 
+        let params: [String: Any] = ["applePayProductId": applePayProductId,
+                                     "paymentMethod": "APPLE_PAY",
+                                     "receipt": receipt,
+                                     "appId": "16",
+                                     "productld": applePayProductId,
+                                     "userId": userId
+                                    ]
+        KMPrint("票据信息上传数据:\(params)")
+        KMRequestServer.requestServer.request(urlString: urlString, method: .post, params: params) { requestSerializer in
+            requestSerializer.setValue("Apifox/1.0.0 (https://www.apifox.cn)", forHTTPHeaderField: "User-Agent")
+        } completion: { [unowned self] (task, responseObject, error) in
+            let result = self.dealData(responseObject: responseObject as? NSDictionary, error: error)
+            if result.code == 200 {
+                complete(true, result)
+            } else {
+                complete(false, result)
+            }
+        }
+    }
 }
 
 //MARK: - AI