项目总数
0
激活码总量
0
已激活设备
0
今日新增激活
0
最近激活与绑定记录
| 时间 | 项目 | 激活码 | 设备型号 / ID | IP & 归属地 | 动作 |
|---|---|---|---|---|---|
| 正在加载最新动态... | |||||
项目列表
| 项目名称 | App ID (包名) | Project Secret (客户端密钥) | 激活码 / 设备数 | 解绑策略 | 创建时间 | 操作 |
|---|---|---|---|---|---|---|
| 加载中... | ||||||
| 激活码 | 所属项目 | 类型 / 有效期 | 绑定设备 | 状态 | 到期时间 / 剩余 | 备注 | 操作 | |
|---|---|---|---|---|---|---|---|---|
| 加载中... | ||||||||
共 0 条
1 / 1
| 时间 (UTC+8) | 动作 | 项目 | 激活码 | 设备 ID | IP & 归属地 | 客户端信息 / 详情 | 操作 | |
|---|---|---|---|---|---|---|---|---|
| 加载中... | ||||||||
Android / iOS 客户端激活与心跳模拟器
// 点击左侧按钮发起测试请求...
移动端 SDK 快速集成
一、标准 RESTful API 接口地址
后端服务部署在 Cloudflare 全球边缘节点,直接向以下端点发送 JSON 请求:
POST /api/v1/activate - 首次激活与一机一码绑定
POST /api/v1/verify - 启动验证与周期心跳
POST /api/v1/unbind - 设备主动解绑 (需项目允许)
POST /api/v1/verify - 启动验证与周期心跳
POST /api/v1/unbind - 设备主动解绑 (需项目允许)
二、Android (Kotlin) 极简接入示例
val client = OkHttpClient()
val json = JSONObject().apply {
put("project_key", "YOUR_PROJECT_SECRET_KEY")
put("code", "VIP-XXXX-XXXX-XXXX")
put("device_id", Settings.Secure.getString(contentResolver, Settings.Secure.ANDROID_ID))
put("device_info", JSONObject().apply {
put("model", Build.MODEL)
put("os", "Android")
put("os_version", Build.VERSION.RELEASE)
put("app_version", "1.0.0")
})
}
val request = Request.Builder()
.url("https://YOUR_WORKER_DOMAIN/api/v1/activate")
.post(json.toString().toRequestBody("application/json".toMediaType()))
.build()
client.newCall(request).enqueue(object : Callback {
override fun onResponse(call: Call, response: Response) {
val result = JSONObject(response.body?.string() ?: "{}")
if (result.optBoolean("success")) {
val expiresAt = result.getJSONObject("data").optString("expires_at")
}
}
override fun onFailure(call: Call, e: IOException) {}
})
三、iOS (Swift) 极简接入示例
let deviceId = UIDevice.current.identifierForVendor?.uuidString ?? UUID().uuidString
let params: [String: Any] = [
"project_key": "YOUR_PROJECT_SECRET_KEY",
"code": "VIP-XXXX-XXXX-XXXX",
"device_id": deviceId,
"device_info": [
"model": UIDevice.current.model,
"os": "iOS",
"os_version": UIDevice.current.systemVersion,
"app_version": Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "1.0"
]
]
var request = URLRequest(url: URL(string: "https://YOUR_WORKER_DOMAIN/api/v1/activate")!)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = try? JSONSerialization.data(withJSONObject: params)
URLSession.shared.dataTask(with: request) { data, _, _ in
if let data = data, let json = try? JSONSerialization.jsonObject(with: data) as? [String: Any] {
print("激活结果: \(json)")
}
}.resume()