代码拉取完成,页面将自动刷新
约定:
请求:
公共参数:
响应:
POST /api/v2/app/config.get //请求地址外放
HEADER Sign=$sign //协议签名(会话数据签名,避免串改)
HEADER Token=$token //协议令牌(会话信息)
HEADER Content-type=application/json
BODY ::加密{ //参数,整体加密
"tag":"water"
}
HEADER Sign=$sign //协议签名(会话数据签名,避免串改)
HEADER Token=$token //协议令牌(会话信息)
BODY ::加密{
"code": 200,
"description":"",
"data": null //val 或 map 或 list
}
var app_id = "abc138356a624c15b1d1defb7c50ee23"; //渠道号,由后端分配
var app_secret = "e6eQ1hM2OrOFdfL8"; //渠道密钥(用于加密和签名)
var client_ver_id = 101; //客户端版本号 1.0.1
//
// 协议调用包装(token 由后端传过来的header[Token],回传即可)
//
function call(var apiName, var args, var token) {
let json1 = JSON.stringify(args);
let json_encoded1 = base64Encode(aesEncrypt(json1, app_secret, "AES/ECB/PKCS5Padding", "utf-8")); //使用aes算法编码
//生成签名
let timestamp = new Date().getTime();
let sign_content = `${apiName}#${client_ver_id}#${json_encoded1}#${app_secret}#${timestamp}`;
let sign_md5 = md5(sign_content, 'utf-8');
let sign = `${app_id}.${client_ver_id}.${sign_md5}.${timestamp}`;
//请求并获取结果
let response = path("/api/v2.app/" + apiName)
.header("Token", token)
.header("Sign", sign)
.bodyTxt(json_encoded1)
.post();
let json_encoded2 = response.body().toString();
let sign2 = response.header("Sign");
let sign22 = md5(`${apiName}#${json_encoded2}#${app_secret}`, "utf-8");
//数据签名校验
if(sign2 != sign22){
throw "数据已被串改!";
}
//对结果解码
let json2 = aesDecrypt(base64Decode(json_encoded2), app_secret, "AES/ECB/PKCS5Padding", "utf-8"); //使用aes算法解码
return JSON.parse(json2);
}
//
//接口调用包装(基于协议包装的业务包装)
//
function config_get(var tag){
return call("config.get", {tag:tag} , null);
}
//接口调用示例
config_get("water");
基础状态码:
状态码 | 描述 |
---|---|
200 | 成功 |
400 | 失败,未知错误 |
4001010 | 请求的通道不存在或不再支持 |
4001011 | 请求的接口不存在或不再支持 |
4001012 | 请求的不符合规范 |
4001013 | 请求的签名校验失败 |
4001014 | 请求的参数缺少或有错误 |
4001015 | 请求太频繁了 |
4001016 | 请求不在白名单 |
4001017 | 请求容量超限 |
4001018 | 请求加解密失败 |
4001021 | 登录已失效或未登录 |
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。