Appearance
Swift SDK
T3 网络验证 Swift SDK,使用 Apple Security 框架实现 RSA 加密。
适用场景
- iOS / macOS Swift 应用
- Swift Package Manager 项目
依赖说明
使用 Apple Security 框架,iOS/macOS 原生支持。
初始化
方式一:Base64 自定义编码集
swift
let verify = T3Verify()
verify.initSdk(
loginCode: "登录调用码",
noticeCode: "公告调用码",
versionCode: "版本号调用码",
heartbeatCode: "心跳调用码",
appkey: "你的APPKEY",
base64Charset: "你的Base64编码集"
)方式二:RSA 算法 + HEX 编码 推荐
swift
let verify = T3Verify()
do {
try verify.initRsa(
loginCode: "登录调用码",
noticeCode: "公告调用码",
versionCode: "版本号调用码",
heartbeatCode: "心跳调用码",
appkey: "你的APPKEY",
rsaPublicKey: """
-----BEGIN PUBLIC KEY-----
你的RSA公钥
-----END PUBLIC KEY-----
"""
)
} catch {
print("初始化失败: \(error.localizedDescription)")
}后台配置
使用 SDK 前,请先完成 后台快速配置。您也可以在后台「SDK 下载与注入」页面一键自动配置并下载已注入配置信息的 SDK,无需手动填写。
推荐调用顺序
API 方法参考
获取机器码
swift
let machineCode = getMachineCode()获取程序公告 getNotice()
swift
let result = verify.getNotice()
if result.success {
print("公告: \(result.notice ?? "")")
} else {
print("失败: \(result.error ?? "")")
}获取最新版本号 getLatestVersion()
swift
let result = verify.getLatestVersion()
if result.success {
print("最新版本: \(result.version ?? "")")
} else {
print("失败: \(result.error ?? "")")
}单码卡密登录 login(kami:imei:)
swift
let result = verify.login(kami: card, imei: machineCode)
if result.success {
print("到期时间: \(result.endTime ?? "")")
print("状态码: \(result.statecode ?? "")")
} else {
print("登录失败: \(result.error ?? "")")
}单码心跳验证 heartbeat(kami:statecode:)
swift
let result = verify.heartbeat(kami: card, statecode: loginResult.statecode ?? "")
if result.success {
print("心跳验证成功")
} else {
print("心跳失败: \(result.error ?? "")")
}检查更新 checkUpdate(ver:)
swift
let result = verify.checkUpdate(ver: "1000")
if result.success {
if result.hasUpdate {
print("最新版本: \(result.ver ?? "")")
print("更新公告: \(result.uplog ?? "")")
print("下载地址: \(result.upurl ?? "")")
}
}查询卡密信息 queryKami(kami:)
swift
let result = verify.queryKami(kami: card)
if result.success {
print("到期时间: \(result.endTime ?? "")")
print("剩余时间: \(result.available ?? "")秒")
}用户注册 userRegister(user:pass:email:)
swift
let result = verify.userRegister(user: "username", pass: "password", email: "email@example.com")
if result.success {
print("注册成功")
} else {
print("注册失败: \(result.error ?? "")")
}用户登录 userLogin(user:pass:imei:)
swift
let result = verify.userLogin(user: "username", pass: "password", imei: machineCode)
if result.success {
print("到期时间: \(result.endTime ?? "")")
// result.statecode 用于用户心跳
} else {
print("登录失败: \(result.error ?? "")")
}用户心跳验证 userHeartbeat(user:pass:statecode:)
swift
let result = verify.userHeartbeat(user: "username", pass: "password", statecode: userStatecode)用户充值 recharge(user:card:)
swift
let result = verify.recharge(user: "username", card: "recharge_card")用户绑定QQ bindQQ(user:pass:openid:accessToken:)
swift
let result = verify.bindQQ(user: "username", pass: "password", openid: "openid", accessToken: "access_token")用户QQ登录 qqLogin(openid:accessToken:)
swift
let result = verify.qqLogin(openid: "openid", accessToken: "access_token")解绑设备 unbindKami / unbindUser
swift
// 单码解绑
let result = verify.unbindKami(kami: card, imei: machineCode)
print(result.success ? " \(result.msg ?? "")" : " 失败: \(result.error ?? "")")
// 用户解绑
let result2 = verify.unbindUser(user: "username", pass: "password", imei: machineCode)
print(result2.success ? " \(result2.msg ?? "")" : " 失败: \(result2.error ?? "")")IP 解绑 ipUnbindKami / ipUnbindUser
swift
// 单码 IP 解绑
let result = verify.ipUnbindKami(kami: card)
print(result.success ? " \(result.msg ?? "")" : " 失败: \(result.error ?? "")")
// 用户 IP 解绑
let result2 = verify.ipUnbindUser(user: "username", pass: "password")
print(result2.success ? " \(result2.msg ?? "")" : " 失败: \(result2.error ?? "")")获取远程变量 getVariableByKami / getVariableByUser
swift
// 通过卡密获取
let result = verify.getVariableByKami(kami: card, valueid: "变量ID", valuename: "变量名称")
// 通过用户获取
let result2 = verify.getVariableByUser(user: "username", pass: "password", valueid: "变量ID", valuename: "变量名称")
if result.success {
print("变量值: \(result.value ?? "")")
}修改远程变量 modifyVariableByKami / modifyVariableByUser
swift
// 通过卡密修改
let result = verify.modifyVariableByKami(kami: card, valueid: "变量ID", valuecontent: "新内容")
// 通过用户修改
let result2 = verify.modifyVariableByUser(user: "username", pass: "password", valueid: "变量ID", valuecontent: "新内容")修改核心数据 modifyCoreByKami / modifyCoreByUser
swift
// 通过卡密修改
let result = verify.modifyCoreByKami(kami: card, core: "核心数据")
// 通过用户修改
let result2 = verify.modifyCoreByUser(user: "username", pass: "password", core: "核心数据")获取核心数据 getCoreByKami / getCoreByUser
swift
// 通过卡密获取
let core1 = verify.getCoreByKami(kami: card)
if core1.success { print("核心数据: \(core1.core ?? "")") }
// 通过用户获取
let core2 = verify.getCoreByUser(user: "username", pass: "password")
if core2.success { print("核心数据: \(core2.core ?? "")") }返回值:T3CoreResult
| 属性 | 类型 | 说明 |
|---|---|---|
success | Bool | 是否成功 |
core | String? | 核心数据内容 |
error | String? | 错误信息 |
获取在线数量 getOnlineKamiCount / getOnlineUserCount
swift
// 获取在线卡密数量
let ok = verify.getOnlineKamiCount()
if ok.success { print("在线卡密数: \(ok.count)") }
// 获取在线用户数量
let ou = verify.getOnlineUserCount()
if ou.success { print("在线用户数: \(ou.count)") }返回值:T3OnlineResult
| 属性 | 类型 | 说明 |
|---|---|---|
success | Bool | 是否成功 |
count | Int | 在线数量 |
error | String? | 错误信息 |
获取云文档 getCloudDoc(token:)
swift
let result = verify.getCloudDoc(token: "云文档Token")
if result.success {
print("内容: \(result.content ?? "")")
}应用签名比对 appSign(autograph:)
swift
let result = verify.appSign(autograph: "应用签名")
if result.success {
print(" \(result.msg ?? "")")
print(" 后台签名: \(result.autograph ?? "")")
} else {
print(" 失败: \(result.error ?? "")")
}用户修改密码 changePassword(user:oldpass:newpass:)
swift
let result = verify.changePassword(user: "username", oldpass: "旧密码", newpass: "新密码")禁用 disableKami / disableUser
swift
// 禁用卡密
let result = verify.disableKami(kami: card)
// 禁用用户
let result2 = verify.disableUser(user: "username", pass: "password")用户注销 userCancel(user:pass:)
swift
let result = verify.userCancel(user: "username", pass: "password")完整示例
swift
import Foundation
let verify = T3Verify()
do {
try verify.initRsa(
loginCode: "F2FA89AD46C050B2",
noticeCode: "3512425FE75AE73A",
versionCode: "F119CF1323743DBC",
heartbeatCode: "B1D2263C3702177F",
appkey: "5d116108006a454d538839ccff2d32f9",
rsaPublicKey: """
-----BEGIN PUBLIC KEY-----
...
-----END PUBLIC KEY-----
"""
)
} catch {
print("初始化失败: \(error.localizedDescription)")
exit(1)
}
let card = "你的卡密"
let machineCode = getMachineCode()
// 1. 获取公告
let notice = verify.getNotice()
if notice.success { print("公告: \(notice.notice ?? "")") }
// 2. 获取版本号
let ver = verify.getLatestVersion()
if ver.success { print("最新版本: \(ver.version ?? "")") }
// 3. 单码登录
let login = verify.login(kami: card, imei: machineCode)
if login.success {
print("到期时间: \(login.endTime ?? "")")
// 4. 心跳验证
let hb = verify.heartbeat(kami: card, statecode: login.statecode ?? "")
if hb.success { print("心跳验证成功") }
}编译运行
bash
swiftc -o t3demo main.swift T3Verify.swift -framework Foundation -framework Security
./t3demo