传入数据到第三方接口(房间发卡为例)

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;
	}// ...
	

 

posted @   码海兴辰  阅读(41)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示