|
|
@ -5,7 +5,8 @@ import com.epmet.commons.thirdplat.apiservice.AbstractApiService; |
|
|
|
import com.epmet.commons.thirdplat.bean.ThirdPlatUserInfo; |
|
|
|
import com.epmet.commons.thirdplat.constants.JcetConstants; |
|
|
|
import com.epmet.commons.thirdplat.dto.form.jcet.SsoTicketFormDTO; |
|
|
|
import com.epmet.commons.thirdplat.dto.result.jcet.JcetUserInfoResultDTO; |
|
|
|
import com.epmet.commons.thirdplat.dto.result.jcet.JcetCUserInfoResultDTO; |
|
|
|
import com.epmet.commons.thirdplat.dto.result.jcet.JcetGUserInfoResultDTO; |
|
|
|
import com.epmet.commons.thirdplat.encrypt.SignUtils; |
|
|
|
import com.epmet.commons.thirdplat.properties.JcetThirdplatProps; |
|
|
|
import com.epmet.commons.thirdplat.properties.ThirdplatProps; |
|
|
@ -16,20 +17,20 @@ import org.slf4j.LoggerFactory; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
import java.io.UnsupportedEncodingException; |
|
|
|
import java.nio.charset.StandardCharsets; |
|
|
|
import java.util.HashMap; |
|
|
|
import java.util.Map; |
|
|
|
|
|
|
|
@Service |
|
|
|
public class JcetApiService extends AbstractApiService { |
|
|
|
|
|
|
|
Logger logger = LoggerFactory.getLogger(getClass()); |
|
|
|
|
|
|
|
private JcetThirdplatProps jcetThirdplatProps; |
|
|
|
private JcetThirdplatProps jcetThirdplatCendProps; |
|
|
|
private JcetThirdplatProps jcetThirdplatGendProps; |
|
|
|
|
|
|
|
public JcetApiService(ThirdplatProps props) { |
|
|
|
this.thirdplatProps = props; |
|
|
|
jcetThirdplatProps = props.getJcet(); |
|
|
|
jcetThirdplatCendProps = props.getJcetCend(); |
|
|
|
jcetThirdplatGendProps = props.getJcetGend(); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
@ -38,8 +39,7 @@ public class JcetApiService extends AbstractApiService { |
|
|
|
* @author wxz |
|
|
|
* @date 2021.01.19 10:26 |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public ThirdPlatUserInfo getUserInfoByTicket(String ticket) throws UnsupportedEncodingException { |
|
|
|
public ThirdPlatUserInfo getCUserInfoByTicket(String ticket) throws UnsupportedEncodingException { |
|
|
|
|
|
|
|
logger.info("【请求酒城e通第三方平台】getUserInfoByTicket()接口开始>>>>>>>>>>>>"); |
|
|
|
logger.info("【请求酒城e通第三方平台】getUserInfoByTicket()接口入参 ticket:{}", ticket); |
|
|
@ -47,12 +47,12 @@ public class JcetApiService extends AbstractApiService { |
|
|
|
SsoTicketFormDTO ssoTicket = new SsoTicketFormDTO(); |
|
|
|
ssoTicket.setSsoTicket(ticket); |
|
|
|
|
|
|
|
String domain = jcetThirdplatProps.getDomain(); |
|
|
|
String domain = jcetThirdplatCendProps.getDomain(); |
|
|
|
Result<String> result = HttpClientManager.getInstance().sendPost( |
|
|
|
domain.concat(JcetConstants.URL_GET_USER_BY_TICKET), |
|
|
|
domain.startsWith("https://"), |
|
|
|
JSON.toJSONString(ssoTicket), |
|
|
|
getHeaders(ssoTicket)); |
|
|
|
getHeaders(JSON.toJSONString(ssoTicket).getBytes("utf-8").length, jcetThirdplatCendProps.getAppkey(), jcetThirdplatCendProps.getAppsecret())); |
|
|
|
|
|
|
|
try { |
|
|
|
logger.info("【请求酒城e通第三方平台】getUserInfoByTicket()接口返回:{}", result.getData()); |
|
|
@ -61,7 +61,7 @@ public class JcetApiService extends AbstractApiService { |
|
|
|
} |
|
|
|
logger.info("【请求酒城e通第三方平台】getUserInfoByTicket()接口结束<<<<<<<<<<<<"); |
|
|
|
|
|
|
|
JcetUserInfoResultDTO resultDTO = parseResult(result, JcetUserInfoResultDTO.class); |
|
|
|
JcetCUserInfoResultDTO resultDTO = parseResult(result, JcetCUserInfoResultDTO.class); |
|
|
|
|
|
|
|
ThirdPlatUserInfo userInfo = new ThirdPlatUserInfo(); |
|
|
|
userInfo.setOpenId(resultDTO.getId()); |
|
|
@ -70,6 +70,38 @@ public class JcetApiService extends AbstractApiService { |
|
|
|
return userInfo; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public ThirdPlatUserInfo getGUserInfoBySSOToken(String token) throws Exception { |
|
|
|
|
|
|
|
logger.info("【请求酒城e通第三方平台】getGUserInfoBySSOToken()接口开始>>>>>>>>>>>>"); |
|
|
|
logger.info("【请求酒城e通第三方平台】getGUserInfoBySSOToken()接口入参 ticket:{}", token); |
|
|
|
|
|
|
|
HashMap<String, Object> params = new HashMap<>(); |
|
|
|
params.put("ssoToken",token); |
|
|
|
|
|
|
|
String domain = jcetThirdplatGendProps.getDomain(); |
|
|
|
Result<String> result = HttpClientManager.getInstance().sendGet( |
|
|
|
domain.concat(JcetConstants.URL_GET_USER_BY_TOKEN), |
|
|
|
domain.startsWith("https://"), |
|
|
|
params, |
|
|
|
getHeaders(0, jcetThirdplatGendProps.getAppkey(), jcetThirdplatGendProps.getAppsecret())); |
|
|
|
|
|
|
|
try { |
|
|
|
logger.info("【请求酒城e通第三方平台】getUserInfoByTicket()接口返回:{}", result.getData()); |
|
|
|
} catch (Exception e) { |
|
|
|
//e.printStackTrace();
|
|
|
|
} |
|
|
|
logger.info("【请求酒城e通第三方平台】getUserInfoByTicket()接口结束<<<<<<<<<<<<"); |
|
|
|
|
|
|
|
JcetGUserInfoResultDTO resultDTO = parseResult(result, JcetGUserInfoResultDTO.class); |
|
|
|
|
|
|
|
ThirdPlatUserInfo userInfo = new ThirdPlatUserInfo(); |
|
|
|
userInfo.setOpenId(resultDTO.getUid()); |
|
|
|
userInfo.setName(resultDTO.getName()); |
|
|
|
userInfo.setMobile(resultDTO.getMobile()); |
|
|
|
return userInfo; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @return |
|
|
|
* @Description 通过token获取用户信息 |
|
|
@ -98,19 +130,17 @@ public class JcetApiService extends AbstractApiService { |
|
|
|
/** |
|
|
|
* 获取请求所需要的头信息 |
|
|
|
* |
|
|
|
* @param contentObject |
|
|
|
* @return |
|
|
|
* @throws UnsupportedEncodingException |
|
|
|
*/ |
|
|
|
private Map<String, Object> getHeaders(Object contentObject) throws UnsupportedEncodingException { |
|
|
|
int bodyLength = JSON.toJSONString(contentObject).getBytes(StandardCharsets.UTF_8).length; |
|
|
|
private Map<String, Object> getHeaders(int bodyLength, String appKey, String appSecret) throws UnsupportedEncodingException { |
|
|
|
|
|
|
|
Map<String, Object> headers = new HashMap(); |
|
|
|
long timestamp = System.currentTimeMillis(); |
|
|
|
headers.put(JcetConstants.PLAT_HEADER_OPEN_TIMESTAMP, String.valueOf(timestamp)); |
|
|
|
headers.put(JcetConstants.PLAT_HEADER_OPEN_APP_ID, jcetThirdplatProps.getAppkey()); |
|
|
|
String encryptContent = jcetThirdplatProps.getAppkey() + timestamp + bodyLength; |
|
|
|
headers.put(JcetConstants.PLAT_HEADER_OPEN_SIGN, SignUtils.generate(encryptContent, jcetThirdplatProps.getAppsecret())); |
|
|
|
headers.put(JcetConstants.PLAT_HEADER_OPEN_TIMESTAMP, timestamp); |
|
|
|
headers.put(JcetConstants.PLAT_HEADER_OPEN_APP_ID, appKey); |
|
|
|
String encryptContent = appKey + timestamp + bodyLength; |
|
|
|
headers.put(JcetConstants.PLAT_HEADER_OPEN_SIGN, SignUtils.generate(encryptContent, appSecret)); |
|
|
|
return headers; |
|
|
|
} |
|
|
|
|
|
|
|