Browse Source

【订阅】Apple内购切换正式服务器处理

lizhe 1 year ago
parent
commit
9ec5868250

+ 10 - 13
PDF Office/PDF Master/Class/KMLightMember/InAppPurchase/Appstore/KMInAppPurchaseManager.swift

@@ -33,15 +33,6 @@ let kStoreLiteKitSecret = "905532d3f55449a9b7a96161e7a2d538";
 //let kStoreKitSecret = "20f0129197a34439a2130358172984bb";
 #endif
 
-<<<<<<< Updated upstream
-//#if DEBUG
-    let kServerURL = "https://sandbox.itunes.apple.com/verifyReceipt"
-//#else
-//    let kServerURL = "https://buy.itunes.apple.com/verifyReceipt"
-//#endif
-
-=======
->>>>>>> Stashed changes
 let keychainAccessGroup = "your.keychain.access.group"
 let receiptDataLabel = "receiptData"
 
@@ -322,13 +313,13 @@ extension KMInAppPurchaseManager: SKPaymentTransactionObserver {
         }
     }
     
-    func validatePurchase(transaction: SKPaymentTransaction?) {
+    func validatePurchase(_ isTestServer: Bool = true, transaction: SKPaymentTransaction?) {
         // 获取购买凭证
         if let receiptURL = Bundle.main.appStoreReceiptURL,
            let receiptData = try? Data(contentsOf: receiptURL) {
             // 将购买凭证发送到服务器进行验证
 //            sendReceiptToServer(receiptData: receiptData, transaction: transaction)
-            sendReceiptToAppleServer(receiptData: receiptData, transaction: transaction)
+            sendReceiptToAppleServer(isTestServer, receiptData: receiptData, transaction: transaction)
         } else {
             self.handleAction(state: .noReceipt)
         }
@@ -387,7 +378,7 @@ extension KMInAppPurchaseManager: SKPaymentTransactionObserver {
 //        SKPaymentQueue.default().finishTransaction(transaction)
     }
     
-    func sendReceiptToAppleServer(receiptData: Data, transaction: SKPaymentTransaction?) {
+    func sendReceiptToAppleServer(_ isTestServer: Bool = true, receiptData: Data, transaction: SKPaymentTransaction?) {
         // 构建请求
 //        let url = URL(string: "https://your-server.com/verify-receipt")!
 //        let requestContents = ["receipt-data" : receipt.base64EncodedString()]
@@ -400,7 +391,11 @@ extension KMInAppPurchaseManager: SKPaymentTransactionObserver {
             return
         }
         
-        let url = URL(string: KMLightMemberManager.manager.config.kAppleServerURL)!
+        var url = URL(string: KMLightMemberManager.manager.config.kAppleServerURL)!
+        if !isTestServer {
+            url = URL(string: "https://buy.itunes.apple.com/verifyReceipt")!
+        }
+        print(url)
         var request = URLRequest(url: url)
         request.httpMethod = "POST"
         request.httpBody = requestData
@@ -476,6 +471,8 @@ extension KMInAppPurchaseManager: SKPaymentTransactionObserver {
         if status == 21007 {
             self.handleAction(state: .verFailed)
 //            [self verifyPurchaseWithPaymentTransaction:transaction isTestServer:YES];
+        } else if status == 21008 {
+            self.validatePurchase(false, transaction: nil)
         } else if status == 0 {
             //保存票据信息
             self.saveReceiptInfo(receipt: receipt)