Appearance
Cheese对接
准备工作
下载示例工程、下载 SDK
目录
快速对接
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): 程序IDprogramSecret(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): 设备IDplatformType(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): 设备IDcaptchaCode(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, 可选): 设备IDcaptchaCode(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, 可选): 设备IDcaptchaCode(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): 设备IDcaptchaCode(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): 数据键名,最大长度32value(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): 数据键名,最大长度32value(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不同而不同
}isSuccess为true表示请求成功,false表示请求失败- 成功时
data字段包含具体的数据 - 失败时
data字段为null - 所有API都可以通过检查
isSuccess字段来判断调用是否成功
注意事项
初始化顺序:必须先调用
initConfig初始化SDK,然后才能调用其他API。登录状态:部分API需要登录后才能调用,请参考API说明。
错误处理:每个API调用后都应该检查
isSuccess字段,判断调用是否成功。心跳机制:登录成功后,建议使用自动心跳机制,确保登录状态持续有效。
错误上报:建议在代码中添加 try-catch 块,捕获异常并上报错误,便于问题排查。
设备绑定:部分登录方式会绑定设备,解绑设备需要使用相应的解绑API。
常见问题
初始化失败:请检查传入的参数是否正确,特别是API域名、程序ID、程序密钥和商户公钥。
登录失败:请检查卡密或账号密码是否正确,以及是否需要验证码。
心跳失败:可能是网络问题或登录状态过期,建议重新登录。
API调用失败:检查API参数是否正确,以及是否需要登录状态。
设备绑定问题:确保使用正确的解绑API,注意区分账号解绑和卡密解绑。