Import "Cjson.lua"
Import "ShanHai.lua"
Thread.SetShareVar "请求地址", "https://api.yankami.cn/"
Thread.SetShareVar "项目ID", ""
Thread.SetShareVar "项目秘钥", ""
远程变量更新("","")
Function 远程变量更新(name,value)
Dim timeStamp = Time()
Dim sign = Encode.Md5(Thread.GetShareVar("项目ID")&Thread.GetShareVar("项目秘钥")&timeStamp)
Dim 请求返回 = URL.Get(Thread.GetShareVar("请求地址")&"remoteVariablesEditSubmit?xmid="&Thread.GetShareVar("项目ID")&"&name="&name&"&value="&value&"&timeStamp="&timeStamp&"&sign="&sign,5)
TracePrint "远程变量更新:"&请求返回
Dim json
If InStr(1, 请求返回, "code") <> 0 Then
json = Cjson.Decode(请求返回)
End If
If json And json["code"] = 200 Then
TracePrint "远程变量更新成功"
Else
TracePrint "远程变量更新失败"
End If
EndScript//停止辅助
End Function
Dim 项目ID,项目秘钥,卡密,设备编号
项目ID = ""
项目秘钥 = ""
Call 远程变量更新("","")
Function 远程变量更新(name,value)
Dim timeStamp,sign,请求地址,请求URL,响应内容,状态
timeStamp = getTime()
sign = Plugin.Encrypt.Md5String(项目ID&项目秘钥&timeStamp)
请求地址 = "http://api.yankami.cn/remoteVariablesEditSubmit"
请求URL = 请求地址&"?xmid="&项目ID&"&name="&URLEncode(name)&"&value="&URLEncode(value)&"&timeStamp="&timeStamp&"&sign="&sign
TracePrint "远程变量更新 URL:"&请求URL
响应内容 = Lib.网络.获得网页源文件_增强版(请求URL,"utf-8")
TracePrint "响应内容:"&响应内容
If InStr(1, 响应内容, "{") <> 1 or InStr(1, 响应内容, "code") = 0 Then
TracePrint "更新失败"
Else
状态 = json解析(响应内容, "code")
TracePrint "状态:"&状态
If 状态 <> 200 Then
TracePrint "更新失败"
Else
TracePrint "更新成功"
End If
End If
ExitScript//停止辅助
End Function
Function URLEncode(str)
Set sc = CreateObject("ScriptControl")
sc.Language = "JScript"
URLEncode = sc.Eval("encodeURIComponent('" & str & "')")
End Function
Function json解析(resp,json路径)
Set sc = CreateObject("MSScriptControl.ScriptControl")
sc.Language = "JScript"
sc.AddCode "var tmp = " & resp & ";"
json解析 = sc.Eval("tmp." & json路径)
End Function
Function getTime()
Dim 年, 月, 天, 小时, 分钟, 秒, dataTime
dataTime = Plugin.GetSysInfo.GetDateTime()
年 = Year(dataTime)
月 = Month(dataTime) - 2
天 = Day(dataTime) - 1
小时 = Hour(dataTime)
分钟 = Minute(dataTime)
秒 = Second(dataTime)
If 月 < 0 Then
月 = 月 + 12
年 = 年 - 1
End If
getTime = (((((Round((年 - 1) * 365 + 年 / 4 - 年 / 100 + 年 / 400) + Int((((367 * 月) / 12) - 30) + 59) + 天 - 719162) * 24 + (小时 - 8)) * 60) + 分钟) * 60 + 秒)
End Function
local 请求地址 = "https://api.yankami.cn/"
local 项目ID = ""
local 项目秘钥 = ""
function 远程变量更新(name, value)
local timeout = 5
local headers = {}
local timeStamp = os.time()
local sign = MD5(项目ID .. 项目秘钥 .. timeStamp);
local url = 请求地址 .. "remoteVariablesEditSubmit" .. "?xmid=" .. 项目ID .. "&name=" .. name .. "&value=" .. value .. "&timeStamp=" .. timeStamp .. "&sign=" .. sign
local ret = LuaEngine.httpGet(url, headers, timeout)
if ret ~= nil and utf8.mid(ret, 1, 1) == "{" and utf8.mid(ret, utf8.length(ret), 1) == "}" then
local ret = jsonLib.decode(ret)
print(ret)
print(ret.code)
if ret.code ~= 200 then
print("远程变量更新 错误code:" .. ret.code)
else
print("远程变量更新成功")
end
else
print("远程变量更新 错误:nil")
end
end
远程变量更新("", "")
var 请求地址 = "https://api.yankami.cn/"
var 项目ID = ""
var 项目秘钥 = ""
远程变量更新("", "")
function 远程变量更新(name, value) {
var timeStamp = parseInt(new Date().getTime() / 1000)
console.log("远程变量更新 timeStamp:" + timeStamp)
var sign = UtilsWrapper.prototype.dataMd5(项目ID + 项目秘钥 + timeStamp)
var 请求返回 = sendGet(请求地址 + "remoteVariablesEditSubmit?xmid=" + 项目ID + "&name=" + name + "&value=" + value + "&timeStamp=" + timeStamp + "&sign=" + sign)
console.log("远程变量更新:" + 请求返回)
if (!请求返回.startsWith("{") || !请求返回.endsWith("}")) {
console.log("远程变量更新 失败!")
toast("远程变量更新 失败!")
} else {
//解析JSON
var json = JSON.parse(请求返回)
if (json["code"] != 200) {
console.log("远程变量更新 错误code:" + json["code"])
toast("错误code:" + json["code"])
} else {
console.log("远程变量更新 成功")
}
}
}
//发送Get请求
function sendGet(target) {
return "" + HttpWrapper.prototype.httpGet(target, null, 30000, null)
}
import requests
import hashlib
import time
def 远程变量更新(项目ID, 项目秘钥, name, value):
timeStamp = int(time.time())
print(f"时间戳: {timeStamp}")
sign = hashlib.md5((str(项目ID) + 项目秘钥 + str(timeStamp)).encode('utf-8')).hexdigest()
params = {"xmid": 项目ID, "name": name, "value": value, "timeStamp": timeStamp, "sign": sign}
try:
if False:
result = requests.get('https://api.yankami.cn/remoteVariablesEditSubmit', params=params).json()
else:
result = requests.post('https://api.yankami.cn/remoteVariablesEditSubmit', data=params).json()
print("result:", result)
code = result["code"]
if code != 200:
print("远程变量更新 失败!")
else:
print("远程变量更新 成功!")
except Exception as e:
print(f"远程变量更新 失败:{e}")
if __name__ == "__main__":
项目ID = ""
项目秘钥 = ""
name = ""
value = ""
远程变量更新(项目ID, 项目秘钥, name, value)
pom
java
import org.json.JSONException;
import org.json.JSONObject;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
public class 远程变量更新 {
public static void main(String[] args) throws Exception {
String xmid = "";
String xmmy = "";
String name = "";//名称
String value = "";//内容
long timeStamp = System.currentTimeMillis() / 1000;
String sign = getMD5(xmid + xmmy + timeStamp);
String url = "https://api.yankami.cn/remoteVariablesEditSubmit?"
+ "xmid=" + xmid
+ "&name=" + URLEncoder.encode(name, "UTF-8")
+ "&value=" + URLEncoder.encode(value, "UTF-8")
+ "&timeStamp=" + timeStamp
+ "&sign=" + sign;
JSONObject jsonEntity = getRequest(url);
System.out.println("jsonEntity:" + jsonEntity);
if (jsonEntity != null) {
int code = jsonEntity.getInt("code");
if (code == 200) {
System.out.println("更新成功");
}else {
System.out.println("更新失败");
}
}
}
public static String Base64encodeToString(String text) {
return Base64.getEncoder().encodeToString(text.getBytes(StandardCharsets.UTF_8));
}
public static String getMD5(String text) throws NoSuchAlgorithmException {
byte[] bytes = MessageDigest.getInstance("MD5").digest(text.getBytes(StandardCharsets.UTF_8));
StringBuilder builder = new StringBuilder(32);
for (byte b : bytes) {
builder.append(String.format("%02x", b));
}
return builder.toString();
}
public static JSONObject getRequest(String url) throws Exception {
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setConnectTimeout(10000);
con.setRequestMethod("GET");
int code = con.getResponseCode();
System.out.println("code:" + code);
if (code == 200) {
return getJSON(responseReader(con.getInputStream()));
}
return null;
}
private static String responseReader(InputStream inputStream) throws IOException {
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, StandardCharsets.UTF_8);
StringBuilder stringBuilder = new StringBuilder();
int len;
char[] chars = new char[8192];
while ((len = inputStreamReader.read(chars)) != -1) {
stringBuilder.append(chars, 0, len);
}
inputStreamReader.close();
return stringBuilder.toString();
}
private static JSONObject getJSON(String text) throws JSONException {
System.out.println("text:" + text);
if (text != null) {
int indexOf = text.indexOf("{");
int lastIndexOf = text.lastIndexOf("}");
if (indexOf != -1 && lastIndexOf != -1) {
return new JSONObject(text.substring(indexOf, lastIndexOf + 1));
}
}
return null;
}
}