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<String, Object> 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<String, Object> 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;
|
}
|
|
}
|