131 lines
4.3 KiB
Swift
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)
|
|
}
|
|
}
|
|
|
|
}
|