126 lines
4.3 KiB
Swift
126 lines
4.3 KiB
Swift
//
|
|
// 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<SPPayTemplateModel>) in
|
|
completer?(response.data)
|
|
}
|
|
}
|
|
|
|
///创建内购订单
|
|
static func requestCreateOrder(payId: String, shortPlayId: String, videoId: String, completer: ((_ orderModel: SPIAPOrderModel?) -> Void)?) {
|
|
var param = SPNetworkParameters(path: "/createOrder")
|
|
param.isToast = false
|
|
param.parameters = [
|
|
"payment_channel" : "apple",
|
|
"short_play_id" : shortPlayId,
|
|
"video_id" : videoId,
|
|
"pay_setting_id" : payId
|
|
]
|
|
|
|
SPNetwork.request(parameters: param) { (response: SPNetworkResponse<SPIAPOrderModel>) in
|
|
if let message = response.data?.message, message.count > 0 {
|
|
if response.data?.code == 30007 {
|
|
SPToast.show(text: "movia_member_toast_01".localized)
|
|
} else {
|
|
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<SPIAPVerifyModel>) in
|
|
completer?(response.data)
|
|
}
|
|
}
|
|
|
|
///赠币记录
|
|
static func reuqestSendCoinRecord(page: Int, completer: ((_ listModel: SPListModel<SPRewardCoinsRecordModel>?) -> Void)?) {
|
|
|
|
var param = SPNetworkParameters(path: "/sendCoinList")
|
|
param.parameters = [
|
|
"page_size" : 20,
|
|
"current_page" : page
|
|
]
|
|
SPNetwork.request(parameters: param) { (response: SPNetworkResponse<SPListModel<SPRewardCoinsRecordModel>>) in
|
|
completer?(response.data)
|
|
}
|
|
}
|
|
|
|
///充值记录
|
|
static func requestRechargeRecord(buyType: BuyType, page: Int, completer: ((_ listModel: SPListModel<SPRechargeRecordModel>?) -> 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<SPListModel<SPRechargeRecordModel>>) in
|
|
completer?(response.data)
|
|
}
|
|
}
|
|
|
|
///消费购买记录
|
|
static func requestBuyRecords(page: Int, completer: ((_ listModel: SPListModel<SPBuyRecordsModel>?) -> Void)?) {
|
|
var param = SPNetworkParameters(path: "/getCustomerBuyRecords")
|
|
param.method = .get
|
|
param.parameters = [
|
|
"page_size" : 20,
|
|
"current_page" : page,
|
|
]
|
|
|
|
SPNetwork.request(parameters: param) { (response: SPNetworkResponse<SPListModel<SPBuyRecordsModel>>) in
|
|
completer?(response.data)
|
|
}
|
|
}
|
|
|
|
///金币解锁视频
|
|
static func requestCoinUnlockVideo(shortPlayId: String, videoId: String, completer: ((_ model: SPVideoUnlockModel?) -> Void)?) {
|
|
|
|
var param = SPNetworkParameters(path: "/buy_video")
|
|
param.isLoding = true
|
|
param.parameters = [
|
|
"short_play_id" : shortPlayId,
|
|
"video_id" : videoId,
|
|
]
|
|
|
|
SPNetwork.request(parameters: param) { (response: SPNetworkResponse<SPVideoUnlockModel>) in
|
|
completer?(response.data)
|
|
}
|
|
}
|
|
|
|
}
|