package com.nova.sankuai.domain.api.taohuihua; import com.alibaba.fastjson.JSON; import com.fasterxml.jackson.databind.ObjectMapper; import com.nova.sankuai.security.HttpClientUtil; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import org.springframework.util.DigestUtils; import java.io.IOException; import java.util.HashMap; import java.util.Map; /** * @Author Lilinhong * @Date 2022/7/27 14:54 */ @Component public class TaoHuiHuaUtil { private static final Logger logger = LoggerFactory.getLogger("capitalLogger"); @Value("${taohuihua.check-url}") private String checkUrl; @Value("${taohuihua.register-url}") private String registerUrl; @Value("${taohuihua.appCode}") private String appCode; @Value("${taohuihua.channel}") private String channel; @Value("${taohuihua.channel-key}") private String channelKey; private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); public TaoHuiHuaCheckResponse checkUser(String mobile, String mobileType, String deviceBrand, String systemVersion, String systemModel) { String phoneMd5 = DigestUtils.md5DigestAsHex(mobile.getBytes()); String mobileTypeLower = null; if (StringUtils.isNotEmpty(mobileType)) { mobileTypeLower = mobileType.toLowerCase(); } String timeStamp = String.valueOf(System.currentTimeMillis()); String sign = DigestUtils.md5DigestAsHex((appCode + phoneMd5.toUpperCase() + timeStamp + channelKey).getBytes()).toUpperCase(); // 请求体 Map body = new HashMap<>(16); body.put("appCode", appCode); body.put("mobile", phoneMd5.toUpperCase()); body.put("channel", channel); body.put("timeStamp", timeStamp); body.put("mobileType", mobileTypeLower); body.put("deviceBrand", deviceBrand); body.put("systemVersion", systemVersion); body.put("systemModel", systemModel); body.put("sign", sign); String response = ""; logger.error("淘惠花撞库原始数据->:{}", body); try { response = HttpClientUtil.getInstance().postJsonData(checkUrl, OBJECT_MAPPER.writeValueAsString(body)); logger.error("淘惠花撞库原始返回数据->:{}", response); } catch (IOException e) { logger.error("淘惠花撞库原始返回数据失败->:{}", response); e.printStackTrace(); return null; } if (StringUtils.isEmpty(response)) { logger.error("淘惠花撞库返回数据失败为空"); return null; } TaoHuiHuaCheckResponse taoHuiHuaCheckResponse = null; try { taoHuiHuaCheckResponse = JSON.parseObject(response, TaoHuiHuaCheckResponse.class); } catch (Exception e) { logger.error("淘惠花撞库原始返回数据转换失败->:{}", taoHuiHuaCheckResponse); e.printStackTrace(); return null; } return taoHuiHuaCheckResponse; } public TaoHuiHuaRegisterResponse register(String mobile, String mobileType, String deviceBrand, String systemVersion, String systemModel) { String mobileTypeLower = null; if (StringUtils.isNotEmpty(mobileType)) { mobileTypeLower = mobileType.toLowerCase(); } String timeStamp = String.valueOf(System.currentTimeMillis()); String sign = DigestUtils.md5DigestAsHex((appCode + mobile + timeStamp + channelKey).getBytes()).toUpperCase(); // 请求体 Map body = new HashMap<>(16); body.put("appCode", appCode); body.put("mobile", mobile); body.put("channel", channel); body.put("timeStamp", timeStamp); body.put("mobileType", mobileTypeLower); body.put("deviceBrand", deviceBrand); body.put("systemVersion", systemVersion); body.put("systemModel", systemModel); body.put("sign", sign); logger.error("淘惠花联合注册原始数据->:{}", body); String response = ""; try { response = HttpClientUtil.getInstance().postJsonData(registerUrl, OBJECT_MAPPER.writeValueAsString(body)); logger.error("淘惠花联合注册原始返回数据->:{}", response); } catch (IOException e) { logger.error("淘惠花联合注册原始返回数据失败->:{}", response); e.printStackTrace(); return null; } if (StringUtils.isEmpty(response)) { logger.error("淘惠花联合注册返回数据失败为空"); return null; } TaoHuiHuaRegisterResponse taoHuiHuaRegisterResponse = null; try { taoHuiHuaRegisterResponse = JSON.parseObject(response, TaoHuiHuaRegisterResponse.class); } catch (Exception e) { logger.error("淘惠花联合注册原始返回数据转换失败->:{}", taoHuiHuaRegisterResponse); e.printStackTrace(); return null; } return taoHuiHuaRegisterResponse; } }