// // SPWalletAPI.swift // MoviaBox // // Created by 佳尔 on 2025/4/28. // import UIKit class SPWalletAPI: NSObject { enum BuyType: String { case coins = "coins" case vip = "vip" } ///获取支付模版 static func requestPayTemplate(completer: ((_ model: SPPayTemplateModel?) -> Void)?) { var param = SPNetworkParameters(path: "/paySettingsV3") param.method = .get SPNetwork.request(parameters: param) { (response: SPNetworkResponse) in completer?(response.data) } } ///创建内购订单 static func requestCreateOrder(payId: String, shortPlayId: String = "0", videoId: String = "0", completer: ((_ orderModel: SPIAPOrderModel?) -> Void)?) { var param = SPNetworkParameters(path: "/createOrder") param.parameters = [ "payment_channel" : "apple", "short_play_id" : shortPlayId, "video_id" : videoId, "pay_setting_id" : payId ] SPNetwork.request(parameters: param) { (response: SPNetworkResponse) in if let message = response.data?.message, message.count > 0 { SPToast.show(text: message) completer?(nil) } else { completer?(response.data) } } } ///校验内购 static func requestVerifyOrder(orderCode: String, payId: String, productId: String, purchaseToken: String, completer: ((_ model: SPIAPVerifyModel?) -> Void)?) { var param = SPNetworkParameters(path: "/applePaid") param.parameters = [ "order_code" : orderCode, "pay_setting_id" : payId, "pkg_name" : kSPAPPBundleIdentifier, "transaction_id" : productId, "purchases_token" : purchaseToken ] SPNetwork.request(parameters: param) { (response: SPNetworkResponse) in completer?(response.data) } } ///赠币记录 static func reuqestSendCoinRecord(page: Int, completer: ((_ listModel: SPListModel?) -> Void)?) { var param = SPNetworkParameters(path: "/sendCoinList") param.parameters = [ "page_size" : 20, "current_page" : page ] SPNetwork.request(parameters: param) { (response: SPNetworkResponse>) in completer?(response.data) } } ///充值记录 static func requestRechargeRecord(buyType: BuyType, page: Int, completer: ((_ listModel: SPListModel?) -> Void)?) { var param = SPNetworkParameters(path: "/getCustomerOrder") param.method = .get param.parameters = [ "page_size" : 20, "current_page" : page, "buy_type" : buyType.rawValue ] SPNetwork.request(parameters: param) { (response: SPNetworkResponse>) in completer?(response.data) } } ///消费购买记录 static func requestBuyRecords(page: Int, completer: ((_ listModel: SPListModel?) -> Void)?) { var param = SPNetworkParameters(path: "/getCustomerBuyRecords") param.method = .get param.parameters = [ "page_size" : 20, "current_page" : page, ] SPNetwork.request(parameters: param) { (response: SPNetworkResponse>) in completer?(response.data) } } }