2025-12-11 11:33:56 +08:00

131 lines
4.3 KiB
Swift

//
// NRStoreAPI.swift
// ReaderHive
//
// Created by 鸿 on 2025/12/10.
//
import UIKit
import SmartCodable
import Alamofire
struct NRStoreAPI {
enum BuyType: String, SmartCaseDefaultable {
case coins = "coins"
case subVip = "sub_vip"
case subCoins = "sub_coins"
}
///
static func requestPayTemplate(isLoding: Bool = false, isToast: Bool = true, completer: ((_ model: NRPayDateModel?) -> Void)?) {
var param = NRNetwork.Parameters(path: "/paySettingsV4")
param.method = .get
param.isToast = isToast
param.isLoding = isLoding
param.parameters = [
"discount" : "1",
"purchases_token" : JXIAPManager.manager.getAppStoreReceipt() ?? "",
]
NRNetwork.request(parameters: param) { (response: NRNetwork.Response<NRPayDateModel>) in
if response.isSuccess {
completer?(response.data)
} else {
completer?(nil)
}
}
}
///
static func requestCreateOrder(payId: String, shortPlayId: String, videoId: String, isDiscount: Bool = false, identifierDiscount: String? = nil, completer: ((_ orderModel: NRIAPOrderModel?) -> Void)?) {
var param = NRNetwork.Parameters(path: "/createOrder")
param.isToast = false
param.parameters = [
"payment_channel" : "apple",
"short_play_id" : shortPlayId,
"video_id" : videoId,
"pay_setting_id" : payId,
"is_discount" : isDiscount ? 1 : 0,
"product_discount" : identifierDiscount ?? "",
]
NRNetwork.request(parameters: param) { (response: NRNetwork.Response<NRIAPOrderModel>) in
guard let data = response.data else {
NRToast.show(text: "network_error_2".localized)
completer?(nil)
return
}
if let message = data.message, message.count > 0 {
if response.data?.code == 30007 {
NRToast.show(text: "pay_error_1".localized)
} else {
NRToast.show(text: message)
}
completer?(nil)
} else {
completer?(data)
}
}
}
///
static func requestVerifyOrder(parameters: [String : Any], completer: ((_ response: NRNetwork.Response<NRIAPVerifyModel>) -> Void)?) {
var param = NRNetwork.Parameters(path: "/applePaid")
param.parameters = parameters
NRNetwork.request(parameters: param) { (response: NRNetwork.Response<NRIAPVerifyModel>) in
completer?(response)
}
}
static func requestBuyRecords(page: Int, completer: ((_ listModel: NRNetwork.List<NRBuyRecordsModel>?) -> Void)?) {
var param = NRNetwork.Parameters(path: "/getCustomerBuyRecords")
param.method = .get
param.parameters = [
"page_size" : 20,
"current_page" : page,
]
NRNetwork.request(parameters: param) { (response: NRNetwork.Response<NRNetwork.List<NRBuyRecordsModel>>) in
completer?(response.data)
}
}
static func requestRechargeRecord(page: Int, buyType: BuyType, completer: ((_ listModel: NRNetwork.List<NROrderRecordsModel>?) -> Void)?) {
var param = NRNetwork.Parameters(path: "/getCustomerOrder")
param.method = .get
param.parameters = [
"page_size" : 20,
"current_page" : page,
"buy_type" : buyType.rawValue
]
NRNetwork.request(parameters: param) { (response: NRNetwork.Response<NRNetwork.List<NROrderRecordsModel>>) in
completer?(response.data)
}
}
static func reuqestSendCoinRecord(page: Int, completer: ((_ listModel: NRNetwork.List<NRRewardCoinsModel>?) -> Void)?) {
var param = NRNetwork.Parameters(path: "/sendCoinList")
param.method = .post
param.parameters = [
"page_size" : 20,
"current_page" : page,
]
NRNetwork.request(parameters: param) { (response: NRNetwork.Response<NRNetwork.List<NRRewardCoinsModel>>) in
completer?(response.data)
}
}
}