diff --git a/Veloria/Base/Networking/API/VPStatAPI.swift b/Veloria/Base/Networking/API/VPStatAPI.swift index 55ab86c..15242f2 100644 --- a/Veloria/Base/Networking/API/VPStatAPI.swift +++ b/Veloria/Base/Networking/API/VPStatAPI.swift @@ -117,7 +117,7 @@ class VPStatAPI: NSObject { } - static func requestStatError(shortPlayId: String?, videoId: String?, eventKey: ErrorEventKey, errorMsg: String?, otherParamenters: [String : Any]? = nil) { + static func requestStatError(orderCode: String?, shortPlayId: String?, videoId: String?, eventKey: ErrorEventKey, errorMsg: String?, otherParamenters: [String : Any]? = nil) { var eventName = "" switch eventKey { @@ -139,7 +139,8 @@ class VPStatAPI: NSObject { "event_name" : eventName, "event_key" : eventKey.rawValue, "short_play_id" : shortPlayId ?? "0", - "short_play_video_id" : videoId ?? "0" + "short_play_video_id" : videoId ?? "0", + "order_code": orderCode ?? "" ] if let errorMsg = errorMsg { diff --git a/Veloria/Base/Networking/API/VPWalletAPI.swift b/Veloria/Base/Networking/API/VPWalletAPI.swift index c6179a3..66a5b84 100644 --- a/Veloria/Base/Networking/API/VPWalletAPI.swift +++ b/Veloria/Base/Networking/API/VPWalletAPI.swift @@ -135,15 +135,9 @@ class VPWalletAPI { } ///校验内购 - static func requestVerifyOrder(orderCode: String, payId: String, productId: String, transactionId: String, purchaseToken: String, completer: ((_ response: VPNetworkResponse?) -> Void)?) { + static func requestVerifyOrder(parameters: [String : Any], completer: ((_ response: VPNetworkResponse?) -> Void)?) { var param = VPNetworkParameters(path: "/applePaid") - param.parameters = [ - "order_code" : orderCode, - "pay_setting_id" : payId, - "pkg_name" : kVPAPPBundleIdentifier, - "transaction_id" : transactionId, - "purchases_token" : purchaseToken - ] + param.parameters = parameters VPNetwork.request(parameters: param) { (response: VPNetworkResponse) in completer?(response) diff --git a/Veloria/Libs/VPIAPManager/VPIAPManager.swift b/Veloria/Libs/VPIAPManager/VPIAPManager.swift index 8bb7198..505fa44 100644 --- a/Veloria/Libs/VPIAPManager/VPIAPManager.swift +++ b/Veloria/Libs/VPIAPManager/VPIAPManager.swift @@ -98,7 +98,6 @@ class VPIAPManager { guard let waitRestoreModel = self.waitRestoreModel, let orderCode = waitRestoreModel.orderCode, let payId = waitRestoreModel.payId, - let productId = waitRestoreModel.productId, let receipt = waitRestoreModel.receipt, let transactionId = waitRestoreModel.transactionId else { @@ -114,21 +113,17 @@ class VPIAPManager { VPHUD.show() } - let verifyData = [ - "order_code" : orderCode, - "pay_setting_id" : payId, - "pkg_name" : kVPAPPBundleIdentifier, - "transaction_id": transactionId, - "purchases_token" : receipt - ] + + let verifyData = self.getVerifyOrderParameters(orderCode: orderCode, payId: payId, transactionId: transactionId, purchaseToken: receipt) let statParamenters: [String : Any] = [ "type" : isLoding ? "manual" : "auto", "pay_data" : verifyData.toJsonString() ?? "" ] - VPStatAPI.requestStatError(shortPlayId: nil, videoId: nil, eventKey: .payRestore, errorMsg: "restore", otherParamenters: statParamenters) - VPWalletAPI.requestVerifyOrder(orderCode: orderCode, payId: payId, productId: productId, transactionId: transactionId, purchaseToken: receipt) { response in + VPStatAPI.requestStatError(orderCode: orderCode, shortPlayId: nil, videoId: nil, eventKey: .payRestore, errorMsg: "restore", otherParamenters: statParamenters) + + VPWalletAPI.requestVerifyOrder(parameters: verifyData) { response in if isLoding { VPHUD.dismiss() } @@ -191,14 +186,16 @@ extension VPIAPManager: JXIAPManagerDelegate { UserDefaults.vp_setObject(self.waitRestoreModel, forKey: kVPWaitRestoreIAPDefaultsKey) - VPWalletAPI.requestVerifyOrder(orderCode: orderCode, payId: payId, productId: productId, transactionId: transactionIdentifier, purchaseToken: receipt) { response in + let verifyData = self.getVerifyOrderParameters(orderCode: orderCode, payId: payId, transactionId: transactionIdentifier, purchaseToken: receipt) + + VPWalletAPI.requestVerifyOrder(parameters: verifyData) { response in VPHUD.dismiss() self.orderCode = nil self.payId = nil guard let model = response?.data else { - VPStatAPI.requestStatError(shortPlayId: self.shortPlayId, videoId: self.videoId, eventKey: .payCallback, errorMsg: response?.msg) + VPStatAPI.requestStatError(orderCode: self.orderCode, shortPlayId: self.shortPlayId, videoId: self.videoId, eventKey: .payCallback, errorMsg: verifyData.toJsonString()) self.completionHandler?(false) return } @@ -218,7 +215,7 @@ extension VPIAPManager: JXIAPManagerDelegate { NotificationCenter.default.post(name: VPIAPManager.buyVipFinishNotification, object: nil) } } else { - VPStatAPI.requestStatError(shortPlayId: self.shortPlayId, videoId: self.videoId, eventKey: .payCallback, errorMsg: model.status) + VPStatAPI.requestStatError(orderCode: self.orderCode, shortPlayId: self.shortPlayId, videoId: self.videoId, eventKey: .payCallback, errorMsg: verifyData.toJsonString()) self.completionHandler?(false) } } @@ -239,9 +236,9 @@ extension VPIAPManager: JXIAPManagerDelegate { } if code == .cancelled { - VPStatAPI.requestStatError(shortPlayId: self.shortPlayId, videoId: self.videoId, eventKey: .payCancel, errorMsg: "user cancel") + VPStatAPI.requestStatError(orderCode: self.orderCode, shortPlayId: self.shortPlayId, videoId: self.videoId, eventKey: .payCancel, errorMsg: "user cancel") } else { - VPStatAPI.requestStatError(shortPlayId: self.shortPlayId, videoId: self.videoId, eventKey: .payError, errorMsg: msg) + VPStatAPI.requestStatError(orderCode: self.orderCode, shortPlayId: self.shortPlayId, videoId: self.videoId, eventKey: .payError, errorMsg: msg) } self.completionHandler?(false) @@ -256,6 +253,21 @@ extension VPIAPManager: JXIAPManagerDelegate { } +extension VPIAPManager { + + func getVerifyOrderParameters(orderCode: String, payId: String, transactionId: String, purchaseToken: String) -> [String : Any] { + let parameters: [String : Any] = [ + "order_code" : orderCode, + "pay_setting_id" : payId, + "pkg_name" : kVPAPPBundleIdentifier, + "transaction_id": transactionId, + "purchases_token" : purchaseToken + ] + return parameters + } + +} + extension VPIAPManager { ///成功购买会员 @objc static let buyVipFinishNotification = NSNotification.Name(rawValue: "VPIAPManager.buyVipFinishNotification")