Skip to content

Cheese对接

准备工作

下载示例工程、下载 SDK

百度网盘

官方网盘

目录

  1. 快速对接
  2. 初始化配置
  3. 用户认证API
  4. 程序相关API
  5. 配置相关API
  6. 远程数据相关API
  7. 设备管理相关API
  8. 脚本错误上报API
  9. 自动心跳机制

快速对接

1. 引入SDK

javascript
const kauth = require('kauth.js');

2. 初始化配置

javascript
// 初始化SDK配置
const platformType = "cheese_android"; // 平台类型
const result = kauth.initConfig(
    "https://api.kauth.cn",  // API域名
    "your_program_id",       // 程序ID
    "your_program_secret",    // 程序密钥
    "your_public_key"        // 商户公钥
);

if (!result) {
    console.error("SDK初始化失败");
    return;
}

3. 获取设备ID

javascript
// 获取设备ID
const deviceId = kauth.getDeviceId();
console.log("设备ID:", deviceId);

4. 卡密登录

javascript
// 卡密登录
const loginResult = kauth.kaLogin("your_ka_pwd", deviceId, platformType);
if (loginResult.isSuccess) {
    console.log("登录成功:", loginResult.data.nickName);
    
    // 启动自动心跳
    kauth.autoPong((failMsg) => {
        console.log("心跳失败:", failMsg);
        // 开发者可以在这里做操作,比如说关闭脚本
    }, 10); // 每10秒心跳一次
    
} else {
    console.error("登录失败:", loginResult.msg);
}

初始化配置

initConfig(apiDomain, programId, programSecret, merchantPublicKey)

初始化SDK配置,这是使用SDK前必须调用的方法。

参数:

  • apiDomain (string): API域名,例如: "https://api.kauth.cn"
  • programId (string): 程序ID
  • programSecret (string): 程序密钥
  • merchantPublicKey (string): 商户公钥

返回值:

  • boolean: 初始化成功返回true,失败返回false

示例:

javascript
const result = kauth.initConfig(
    "https://api.kauth.cn",
    "1959821336266936321",
    "F77VzI7UWAElpWrz",
    "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCIpy3ae27yDJOUd5rW/S6tUbAmt/AqJm+VPonT9WJn5VME4FkYJUwdBmIWpzANVQmU+7CA3wv5eVFIOW0xMv9EyoFWDRR24Jt/hgDsZQtUPMaZPivKWxx2S4n4SJWWrGdIRkdC3+fmxrEri1qYicq8PO7mDIrwPR2I0USoKKOFMwIDAQAB"
);

用户认证API

1. 获取设备ID

getDeviceId()

获取Kauth自动生成的设备ID,用于登录等操作。

返回值:

  • string: 设备ID

示例:

javascript
const deviceId = kauth.getDeviceId();
console.log("设备ID:", deviceId);

2. 卡密登录

kaLogin(kaPwd, deviceId, platformType, captchaCode, captchaUuid)

使用卡密进行登录,支持次卡和时卡。

参数:

  • kaPwd (string): 卡密
  • deviceId (string): 设备ID
  • platformType (string): 平台类型,例如: "cheese_android"
  • captchaCode (string, 可选): 验证码
  • captchaUuid (string, 可选): 验证码UUID

返回值:

javascript
{
    msg: "到期时间:2025年12月10日15时14分00秒",
    code: 200,
    traceId: "2pztmiy8vbpmjkq",
    elapse: "163",
    respTime: "2025-12-09 15:14:00",
    isSuccess: true,
    data: {
        userId: "1998290015197954049",
        nickName: "卡密用户",
        token: "kp.638da49e8eb14270b948aae386a1b025",
        pongInterval: "120000"
    }
}

示例:

javascript
const loginResult = kauth.kaLogin("nfl4425f", deviceId, "cheese_android", "", "");
if (loginResult.isSuccess) {
    console.log("登录成功:", loginResult.data.nickName);
} else {
    console.error("登录失败:", loginResult.msg);
}

3. 用户密码登录

pwdLogin(loginName, password, deviceId, captchaCode, captchaUuid)

使用用户名和密码进行登录。

参数:

  • loginName (string): 登录账号
  • password (string): 登录密码
  • deviceId (string): 设备ID
  • captchaCode (string, 可选): 验证码
  • captchaUuid (string, 可选): 验证码UUID

返回值: 与卡密登录相同的响应格式。

示例:

javascript
const loginResult = kauth.pwdLogin("test_account", "123456", deviceId, "", "");
if (loginResult.isSuccess) {
    console.log("登录成功:", loginResult.data.nickName);
} else {
    console.error("登录失败:", loginResult.msg);
}

4. 试用登录

trialLogin(deviceId)

免登录试用登录,无需卡密即可体验。

参数:

  • deviceId (string): 设备ID

返回值: 与卡密登录相同的响应格式。

示例:

javascript
const loginResult = kauth.trialLogin(deviceId);
if (loginResult.isSuccess) {
    console.log("试用登录成功:", loginResult.data.nickName);
} else {
    console.error("试用登录失败:", loginResult.msg);
}

5. 获取图形验证码

getCaptcha(uuid)

获取图形验证码,用于登录、注册、充值等操作。

参数:

  • uuid (string): 客户端生成的UUID,用于标识验证码

返回值:

javascript
{
    msg: "操作成功",
    code: 200,
    traceId: "2pztmiy97lo7N2b5",
    elapse: "216",
    respTime: "2025-12-09 15:23:33",
    isSuccess: true,
    data: {
        captchaBase64: "CNKTAAAAAElFTkSuQmCC",
        uuid: "a973c69f-084f-4d03-b73f-76adaf2e4d37"
    }
}

示例:

javascript
const uuid = kauth.generateUUID(); // 生成UUID
const captchaResult = kauth.getCaptcha(uuid);
if (captchaResult.isSuccess) {
    console.log("验证码UUID:", captchaResult.data.uuid);
    console.log("验证码图片:", captchaResult.data.captchaBase64);
} else {
    console.error("获取验证码失败:", captchaResult.msg);
}

6. 用户注册

register(loginName, password, kaPassword, nickName, deviceId, captchaCode, captchaUuid)

注册新用户账号。

参数:

  • loginName (string): 登录账号,4-20位字母、数字或下划线
  • password (string): 登录密码,6-20位字母、数字或特殊字符
  • kaPassword (string): 卡密
  • nickName (string, 可选): 用户昵称
  • deviceId (string, 可选): 设备ID
  • captchaCode (string, 可选): 验证码
  • captchaUuid (string, 可选): 验证码UUID

返回值:

javascript
{
    msg: "操作成功",
    code: 200,
    traceId: "2pztmiy9ez9bS3eo",
    elapse: "128",
    respTime: "2025-12-09 15:29:17",
    isSuccess: true,
    data: {
        userId: "1998293861144035330",
        nickName: "test_account1",
        loginName: "test_account1"
    }
}

示例:

javascript
const registerResult = kauth.register(
    "test_account1",  // 登录账号
    "123456",        // 密码
    "pbsmejfq",      // 卡密
    "测试账号",       // 昵称
    deviceId,         // 设备ID
    "",              // 验证码
    ""               // 验证码UUID
);

if (registerResult.isSuccess) {
    console.log("注册成功:", registerResult.data.userId);
} else {
    console.error("注册失败:", registerResult.msg);
}

7. 账号充值

recharge(loginName, kaPassword, deviceId, captchaCode, captchaUuid)

为用户账号充值卡密。

参数:

  • loginName (string): 登录账号,4-20位字母、数字或下划线
  • kaPassword (string): 充值卡密
  • deviceId (string, 可选): 设备ID
  • captchaCode (string, 可选): 验证码
  • captchaUuid (string, 可选): 验证码UUID

返回值:

javascript
{
    msg: "操作成功",
    code: 200,
    traceId: "2pztmiy9k1geV45t",
    elapse: "44",
    respTime: "2025-12-09 15:33:13",
    isSuccess: true,
    data: null
}

示例:

javascript
const rechargeResult = kauth.recharge("test_account", "hd3ox8z2", deviceId, "", "");
if (rechargeResult.isSuccess) {
    console.log("充值成功");
} else {
    console.error("充值失败:", rechargeResult.msg);
}

8. 以卡充卡

rechargeKa(cardPwd, rechargeCardPwd)

使用一张卡密为另一张卡密充值。

参数:

  • cardPwd (string): 被充值的卡密
  • rechargeCardPwd (string): 充值卡密

返回值: 与充值相同的响应格式。

示例:

javascript
const rechargeKaResult = kauth.rechargeKa("nfl4425f", "vowjnos3");
if (rechargeKaResult.isSuccess) {
    console.log("以卡充卡成功");
} else {
    console.error("以卡充卡失败:", rechargeKaResult.msg);
}

9. 修改密码

changePassword(loginName, oldPassword, newPassword, confirmPassword, captchaCode, captchaUuid)

修改用户登录密码。

参数:

  • loginName (string): 登录账号,4-20位字母、数字或下划线
  • oldPassword (string): 旧密码,6-20位字母、数字或特殊字符
  • newPassword (string): 新密码,6-20位字母、数字或特殊字符
  • confirmPassword (string): 确认密码,6-20位字母、数字或特殊字符
  • captchaCode (string, 可选): 验证码
  • captchaUuid (string, 可选): 验证码UUID

返回值: 与充值相同的响应格式。

示例:

javascript
const changePasswordResult = kauth.changePassword(
    "test_account1",  // 登录账号
    "123456",         // 旧密码
    "123123",         // 新密码
    "123123",         // 确认密码
    "",              // 验证码
    ""               // 验证码UUID
);

if (changePasswordResult.isSuccess) {
    console.log("密码修改成功");
} else {
    console.error("密码修改失败:", changePasswordResult.msg);
}

10. 解绑设备

unbindDevice(loginName, password, deviceId, captchaCode, captchaUuid)

免登录状态下解绑指定设备。

参数:

  • loginName (string): 登录账号,4-20位字母、数字或下划线
  • password (string): 登录密码,6-20位字母、数字或特殊字符
  • deviceId (string): 设备ID
  • captchaCode (string, 可选): 验证码
  • captchaUuid (string, 可选): 验证码UUID

返回值: 与充值相同的响应格式。

示例:

javascript
const unbindDeviceResult = kauth.unbindDevice("test_account", "123456", deviceId, "", "");
if (unbindDeviceResult.isSuccess) {
    console.log("设备解绑成功");
} else {
    console.error("设备解绑失败:", unbindDeviceResult.msg);
}

11. 卡密解绑设备

unbindDeviceKaPwd(kaPwd, deviceId)

免登录状态下使用卡密解绑设备。

参数:

  • kaPwd (string): 卡密
  • deviceId (string): 设备ID

返回值: 与充值相同的响应格式。

示例:

javascript
const unbindDeviceKaPwdResult = kauth.unbindDeviceKaPwd("nfl4425f", deviceId);
if (unbindDeviceKaPwdResult.isSuccess) {
    console.log("设备解绑成功");
} else {
    console.error("设备解绑失败:", unbindDeviceKaPwdResult.msg);
}

12. 获取用户信息

userInfo()

需登录,获取当前登录用户的详细信息。

返回值:

javascript
{
    msg: "操作成功",
    code: 200,
    traceId: "2pztmiy8vcufmkz",
    elapse: "7",
    respTime: "2025-12-09 15:14:02",
    isSuccess: true,
    data: {
        userId: "1998290015197954049",
        serverExpireTime: "2025-12-10 15:14:01",
        serverRemainNum: null,
        serverType: "time",
        trial: false
    }
}

示例:

javascript
const userInfoResult = kauth.userInfo();
if (userInfoResult.isSuccess) {
    console.log("用户ID:", userInfoResult.data.userId);
    console.log("服务到期时间:", userInfoResult.data.serverExpireTime);
    console.log("服务类型:", userInfoResult.data.serverType);
} else {
    console.error("获取用户信息失败:", userInfoResult.msg);
}

13. 退出登录

loginOut()

需登录,退出当前登录状态。

返回值: 与充值相同的响应格式。

示例:

javascript
const loginOutResult = kauth.loginOut();
if (loginOutResult.isSuccess) {
    console.log("退出登录成功");
} else {
    console.error("退出登录失败:", loginOutResult.msg);
}

14. 心跳

pong()

需登录,向服务器发送心跳以保持连接。

返回值: 与充值相同的响应格式。

示例:

javascript
const pongResult = kauth.pong();
if (pongResult.isSuccess) {
    console.log("心跳成功");
} else {
    console.error("心跳失败:", pongResult.msg);
}

程序相关API

1. 查询当前程序详情

getProgramDetail()

免登录获取程序版本、状态、公告等详细信息。

返回值:

javascript
{
    msg: "操作成功",
    code: 200,
    traceId: "2pztmiy9uhc9y5q8",
    elapse: "8",
    respTime: "2025-12-09 15:41:20",
    isSuccess: true,
    data: {
        programId: "1959821336266936321",
        name: "第一个程序",
        forceUpdateDict: true,
        status: "enable",
        enableRegisterDict: true,
        notice: "测试账号:test 密码:123456",
        currentVersion: {
            versionNo: 1,
            versionName: "1.0.1",
            versionDesc: "1.0.1",
            versionDownUrl: "https://www.baidu.com"
        }
    }
}

示例:

javascript
const programDetailResult = kauth.getProgramDetail();
if (programDetailResult.isSuccess) {
    console.log("程序名称:", programDetailResult.data.name);
    console.log("程序公告:", programDetailResult.data.notice);
    console.log("当前版本:", programDetailResult.data.currentVersion.versionName);
} else {
    console.error("获取程序详情失败:", programDetailResult.msg);
}

2. 获取服务器时间

getServerTime()

免登录获取服务器当前时间戳。

返回值:

javascript
{
    msg: "操作成功",
    code: 200,
    traceId: "2pztmiy9veb405vh",
    elapse: "2",
    respTime: "2025-12-09 15:42:03",
    isSuccess: true,
    data: {
        serverTimeStr: "2025-12-09 15:42:03",
        serverTimeMill: "1765266123569",
        serverTimeSec: "1765266123"
    }
}

示例:

javascript
const serverTimeResult = kauth.getServerTime();
if (serverTimeResult.isSuccess) {
    console.log("服务器时间:", serverTimeResult.data.serverTimeStr);
    console.log("服务器时间戳(毫秒):", serverTimeResult.data.serverTimeMill);
} else {
    console.error("获取服务器时间失败:", serverTimeResult.msg);
}

配置相关API

1. 修改用户配置

updateUserConfig(config)

需卡密登录|用户登录,修改用户配置。

参数:

  • config (string): 自定义配置内容,最大长度255

返回值: 与充值相同的响应格式。

示例:

javascript
const updateUserConfigResult = kauth.updateUserConfig("age:18");
if (updateUserConfigResult.isSuccess) {
    console.log("用户配置修改成功");
} else {
    console.error("用户配置修改失败:", updateUserConfigResult.msg);
}

2. 获取用户配置

getUserConfig()

需卡密登录|用户登录,获取用户配置。

返回值:

javascript
{
    msg: "操作成功",
    code: 200,
    traceId: "2pztmiy9x4e7A64f",
    elapse: "9",
    respTime: "2025-12-09 15:43:24",
    isSuccess: true,
    data: {
        config: "age:18"
    }
}

示例:

javascript
const getUserConfigResult = kauth.getUserConfig();
if (getUserConfigResult.isSuccess) {
    console.log("用户配置:", getUserConfigResult.data.config);
} else {
    console.error("获取用户配置失败:", getUserConfigResult.msg);
}

3. 修改卡密配置

updateKaConfig(config)

需卡密登录,修改卡密配置。

参数:

  • config (string): 自定义配置内容,最大长度255

返回值: 与充值相同的响应格式。

示例:

javascript
const updateKaConfigResult = kauth.updateKaConfig("deviceNum:12");
if (updateKaConfigResult.isSuccess) {
    console.log("卡密配置修改成功");
} else {
    console.error("卡密配置修改失败:", updateKaConfigResult.msg);
}

4. 获取卡密配置

getKaConfig()

需卡密登录,获取卡密配置。

返回值:

javascript
{
    msg: "操作成功",
    code: 200,
    traceId: "2pztmiy9ylscu6c5",
    elapse: "6",
    respTime: "2025-12-09 15:44:33",
    isSuccess: true,
    data: {
        config: "deviceNum:12"
    }
}

示例:

javascript
const getKaConfigResult = kauth.getKaConfig();
if (getKaConfigResult.isSuccess) {
    console.log("卡密配置:", getKaConfigResult.data.config);
} else {
    console.error("获取卡密配置失败:", getKaConfigResult.msg);
}

远程数据相关API

1. 获取远程变量

getRemoteVar(key)

获取远程变量值,根据变量配置决定是否需要登录。

参数:

  • key (string): 变量或数据的键名

返回值:

javascript
{
    msg: "操作成功",
    code: 200,
    traceId: "2pztmiya0exqD6me",
    elapse: "11",
    respTime: "2025-12-09 15:45:57",
    isSuccess: true,
    data: {
        value: "123213123123"
    }
}

示例:

javascript
const remoteVarResult = kauth.getRemoteVar("test_var_to_get");
if (remoteVarResult.isSuccess) {
    console.log("远程变量值:", remoteVarResult.data.value);
} else {
    console.error("获取远程变量失败:", remoteVarResult.msg);
}

2. 获取远程数据

getRemoteData(key)

需登录,获取远程数据值。

参数:

  • key (string): 变量或数据的键名

返回值: 与获取远程变量相同的响应格式。

示例:

javascript
const remoteDataResult = kauth.getRemoteData("remote_val1");
if (remoteDataResult.isSuccess) {
    console.log("远程数据值:", remoteDataResult.data.value);
} else {
    console.error("获取远程数据失败:", remoteDataResult.msg);
}

3. 添加远程数据

addRemoteData(key, value)

需登录,添加新的远程数据。

参数:

  • key (string): 数据键名,最大长度32
  • value (string): 数据值,最大长度255

返回值: 与充值相同的响应格式。

示例:

javascript
const addRemoteDataResult = kauth.addRemoteData("remote_val1", "新增一个远程数据");
if (addRemoteDataResult.isSuccess) {
    console.log("远程数据添加成功");
} else {
    console.error("远程数据添加失败:", addRemoteDataResult.msg);
}

4. 更新远程数据

updateRemoteData(key, value)

需登录,更新已存在的远程数据。

参数:

  • key (string): 数据键名,最大长度32
  • value (string): 新的数据值,最大长度255

返回值: 与充值相同的响应格式。

示例:

javascript
const updateRemoteDataResult = kauth.updateRemoteData("remote_val1", "修改一个远程变量");
if (updateRemoteDataResult.isSuccess) {
    console.log("远程数据更新成功");
} else {
    console.error("远程数据更新失败:", updateRemoteDataResult.msg);
}

5. 删除远程数据

deleteRemoteData(key)

需登录,删除指定的远程数据。

参数:

  • key (string): 要删除的数据键名

返回值: 与充值相同的响应格式。

示例:

javascript
const deleteRemoteDataResult = kauth.deleteRemoteData("remote_val1");
if (deleteRemoteDataResult.isSuccess) {
    console.log("远程数据删除成功");
} else {
    console.error("远程数据删除失败:", deleteRemoteDataResult.msg);
}

6. 调用远程函数

callFunction(functionName, functionParams)

需登录,调用远程自定义函数。

参数:

  • functionName (string): 函数名称
  • functionParams (Array): 函数参数列表,数组格式,每个元素包含paramName和paramValue

返回值:

javascript
{
    msg: "操作成功",
    code: 200,
    traceId: "2pztmiyagruiz90s",
    elapse: "21",
    respTime: "2025-12-09 15:58:40",
    isSuccess: true,
    data: {
        result: "24.0"
    }
}

示例:

javascript
// 服务器远程函数脚本内容: return param1 + param2;
const functionParams = [
    {
        paramName: "param1",
        paramValue: "11"
    },
    {
        paramName: "param2",
        paramValue: "13"
    },
];

const callFunctionResult = kauth.callFunction("add", functionParams);
if (callFunctionResult.isSuccess) {
    console.log("远程函数执行结果:", callFunctionResult.data.result);
} else {
    console.error("远程函数调用失败:", callFunctionResult.msg);
}

7. 获取最新的脚本信息

getNewestScript(scriptName)

需登录,获取最新的脚本,比对你的程序内置脚本来判断是否要下载。

参数:

  • scriptName (string, 可选): 脚本名称

返回值:

javascript
{
    msg: "操作成功",
    code: 200,
    traceId: "2pztmiyanolsEa4a",
    elapse: "9",
    respTime: "2025-12-09 16:04:03",
    isSuccess: true,
    data: {
        scriptName: "first_update",
        versionNumber: "1.0.1",
        versionDescription: "1.0.1",
        scriptType: "BINARY",
        scriptReleaseTime: "2025-12-09 16:03:50"
    }
}

示例:

javascript
const newestScriptResult = kauth.getNewestScript("first_update");
if (newestScriptResult.isSuccess) {
    console.log("脚本名称:", newestScriptResult.data.scriptName);
    console.log("版本号:", newestScriptResult.data.versionNumber);
    console.log("脚本类型:", newestScriptResult.data.scriptType);
} else {
    console.error("获取最新脚本信息失败:", newestScriptResult.msg);
}

8. 获取脚本下载地址

getScriptDownload(scriptName, versionNumber)

免登录,获取脚本下载数据。

参数:

  • scriptName (string): 脚本名称
  • versionNumber (string, 可选): 脚本版本

返回值:

javascript
{
    msg: "操作成功",
    code: 200,
    traceId: "2pztmiyanoogAa4b",
    elapse: "8",
    respTime: "2025-12-09 16:04:03",
    isSuccess: true,
    data: {
        downloadUrl: "https://file.verifyhub.cn/kauth/script/1959818504771862530/57ef405da33a40ef894ec3b22141a691.lrj"
    }
}

示例:

javascript
const newestScriptResult = kauth.getNewestScript("first_update");
if (newestScriptResult.isSuccess) {
    const scriptDownloadResult = kauth.getScriptDownload("first_update", newestScriptResult.data.versionNumber);
    if (scriptDownloadResult.isSuccess) {
        console.log("脚本下载地址:", scriptDownloadResult.data.downloadUrl);
        // 开发者可以使用这个下载地址下载脚本文件
    } else {
        console.error("获取脚本下载地址失败:", scriptDownloadResult.msg);
    }
} else {
    console.error("获取最新脚本信息失败:", newestScriptResult.msg);
}

设备管理相关API

1. 解绑当前设备

unBindDevice()

需登录,登录状态下直接解绑已登录的卡密、账号解绑当前设备。

返回值: 与充值相同的响应格式。

示例:

javascript
const unBindDeviceResult = kauth.unBindDevice();
if (unBindDeviceResult.isSuccess) {
    console.log("设备解绑成功");
} else {
    console.error("设备解绑失败:", unBindDeviceResult.msg);
}

脚本错误上报API

1. 脚本错误上报

reportScriptError(scriptName, errorMessage, stackTrace, line, os, osVersion, deviceId)

免登录,用于脚本错误时上报堆栈信息。

参数:

  • scriptName (string): 脚本名称
  • errorMessage (string): 错误信息
  • stackTrace (string, 可选): 堆栈信息
  • line (Integer, 可选): 出错行号
  • os (string, 可选): 操作系统
  • osVersion (string, 可选): 系统版本
  • deviceId (string, 可选): 设备ID

返回值: 与充值相同的响应格式。

示例:

javascript
try {
    // 故意制造一个错误,模拟错误代码上报堆栈信息
    const obj = null;
    obj.method1();
} catch (error) {
    // 解析堆栈信息获取行号
    const stackLines = error.stack.split('\n');
    // 第一行通常是错误信息
    var line = 0;
    if (stackLines.length > 1) {
        const lineInfo = stackLines[1].trim();
        // 提取行号和列号
        // 格式通常为:at 函数名 (文件名:行号:列号)
        const match = lineInfo.match(/:(\d+):(\d+)/);
        if (match) {
            line = match[1];
        }
    }
    
    // 上报错误,可以在程序管理 -> 脚本错误日志中查看
    const reportResult = kauth.reportScriptError(
        "cheese-android",       // 脚本名称
        stackLines[0],          // 错误信息
        error.stack,            // 堆栈信息
        line,                   // 出错行号
        "android",              // 操作系统
        "android 16",           // 系统版本
        deviceId                // 设备ID
    );
    
    if (reportResult.isSuccess) {
        console.log("错误上报成功");
    } else {
        console.error("错误上报失败:", reportResult.msg);
    }
}

自动心跳机制

autoPong(failCallback, interval)

开启自动心跳,自动按照指定间隔发送心跳请求。

参数:

  • failCallback (function): 心跳失败回调函数
  • interval (number): 心跳间隔,单位为秒

示例:

javascript
// 开启自动心跳,每10秒发送一次心跳
kauth.autoPong((failMsg) => {
    console.log("心跳失败:", failMsg);
    // 开发者可以在这里做操作,比如说关闭脚本
}, 10);

完整示例:

javascript
// 初始化SDK
const platformType = "cheese_android";
kauth.initConfig("https://api.kauth.cn", "1959821336266936321", "F77VzI7UWAElpWrz", "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCIpy3ae27yDJOUd5rW/S6tUbAmt/AqJm+VPonT9WJn5VME4FkYJUwdBmIWpzANVQmU+7CA3wv5eVFIOW0xMv9EyoFWDRR24Jt/hgDsZQtUPMaZPivKWxx2S4n4SJWWrGdIRkdC3+fmxrEri1qYicq8PO7mDIrwPR2I0USoKKOFMwIDAQAB");

// 获取设备ID
const deviceId = kauth.getDeviceId();

// 卡密登录
const loginResult = kauth.kaLogin("nfl4425f", deviceId, platformType, "", "");
if (loginResult.isSuccess) {
    console.log("登录成功:", loginResult.data.nickName);
    
    // 开启自动心跳,每10秒发送一次心跳
    kauth.autoPong((failMsg) => {
        console.log("心跳失败:", failMsg);
        // 开发者可以在这里做操作,比如说关闭脚本
    }, 10);
    
    // 继续执行其他业务逻辑
    // ...
} else {
    console.error("登录失败:", loginResult.msg);
}

响应格式说明

所有API的响应都遵循统一的格式:

javascript
{
    msg: "响应消息",          // 响应消息
    code: 200,               // 响应码,200表示成功
    traceId: "跟踪ID",       // 请求跟踪ID,用于问题排查
    elapse: "响应时间",       // 服务器处理时间(毫秒)
    respTime: "响应时间戳",   // 响应时间戳
    isSuccess: true,          // 请求是否成功
    data: {...}              // 响应数据,具体内容根据API不同而不同
}
  • isSuccesstrue 表示请求成功,false 表示请求失败
  • 成功时 data 字段包含具体的数据
  • 失败时 data 字段为 null
  • 所有API都可以通过检查 isSuccess 字段来判断调用是否成功

注意事项

  1. 初始化顺序:必须先调用 initConfig 初始化SDK,然后才能调用其他API。

  2. 登录状态:部分API需要登录后才能调用,请参考API说明。

  3. 错误处理:每个API调用后都应该检查 isSuccess 字段,判断调用是否成功。

  4. 心跳机制:登录成功后,建议使用自动心跳机制,确保登录状态持续有效。

  5. 错误上报:建议在代码中添加 try-catch 块,捕获异常并上报错误,便于问题排查。

  6. 设备绑定:部分登录方式会绑定设备,解绑设备需要使用相应的解绑API。

常见问题

  1. 初始化失败:请检查传入的参数是否正确,特别是API域名、程序ID、程序密钥和商户公钥。

  2. 登录失败:请检查卡密或账号密码是否正确,以及是否需要验证码。

  3. 心跳失败:可能是网络问题或登录状态过期,建议重新登录。

  4. API调用失败:检查API参数是否正确,以及是否需要登录状态。

  5. 设备绑定问题:确保使用正确的解绑API,注意区分账号解绑和卡密解绑。

沪ICP备2025152009号