传入数据到第三方接口(房间发卡为例)
1.传入的地址
// 发卡
// v1/setting-card-password?appid=aaa
// &roomnu=111&keyvalue=aaaa&keytype=1&expire-date=15254542&token=aaaaa
public static String deviceurl_faka = "http://DOMAIN/v1/setting-card-password?appid=APPID&roomnu=ROOMNO"
+ "&keyvalue=KEYVALUE&keytype=KEYTYPE&nickname=NICKNAME&expire-date=EXPIREDATE&token=TOKEN&requestid=REQUESTID&time-type=TimeType&phonenum=PHONENUM&devtype=DEVTYPE";
2.发卡的传入拼接json数据
// 2.1.4发卡/密码功能
// public static String deviceurl_faka = "http://DOMAIN/v1/setting-card-password?appid=APPID&roomnu=ROOMNO"
// + "&keyvalue=KEYVALUE&keytype=KEYTYPE&expire-date=EXPIREDATE&token=TOKEN";
public static boolean faka(OpenDoorReq req, Hotel h) throws Exception {
DeviceAccessToken token = getDeviceAccessToken(h.getAppid(), h.getSecret(), h.getDeviceDomain());
if (token == null) {
System.out.println("获取token失败");
throw new Exception("获取token失败");
}
if (req.getRequestid() == 0) {
String nano = System.nanoTime() + "";
req.setRequestid(Long.parseLong(nano.substring(nano.length() - 13)));
}
String url = deviceurl_faka.replace("DOMAIN", h.getDeviceDomain());
url = url.replace("APPID", h.getAppid());
url = url.replace("ROOMNO", req.getRoomno());
url = url.replace("REQUESTID", req.getRequestid() + "");
url = url.replace("KEYTYPE", req.getKeytype() + "");
url = url.replace("KEYVALUE", req.getCardid().trim() );
url = url.replace("TOKEN", token.getToken());
url = url.replace("TimeType", req.getTimeType()+"" );
url=url.replace("PHONENUM",req.getMobile_phone());//发卡的时候判断时间
url=url.replace("NICKNAME", req.getCardno());//
url = url.replace("DEVTYPE", req.getDevtype()+"");
if(req.getTimeType()==1){
long times = 0;
try {
if (req.getExpireDate().length() >= 19) {
times = formatDateToLong(req.getExpireDate().substring(0, 19));
} else {
times = formatDateToLong(req.getExpireDate().substring(0, 10) + " 23:59:59");
}
} catch (Exception e) {
e.printStackTrace();
times = 0;
}
if (times == 0) {
System.out.println("时间格式错误" + req.getExpireDate());
return false;
}
double ii = Arith.div(times, 1000); // 毫秒变成 秒
int iii = (int) ii;
url = url.replace("EXPIREDATE", iii + "");
}else{
url = url.replace("EXPIREDATE", "0");
}
// http
String content = getByHTTP(url);
// https String content = getByHTTPS(url);
if (content != null) {
JSONObject result = JSONObject.fromObject(content);
int code = result.getInt("code");
if (code == 0) {
return true;
} else {
throw new Exception(getWrongMsg(code));
}
}
return false;
}// ...
static SimpleDateFormat formatTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public static long formatDateToLong(String str) {
Date date = null;
try {
date = formatTime.parse(str);
return date.getTime();
} catch (java.text.ParseException e) {
e.printStackTrace();
}
return 0;
}// ...
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统