Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
84f4d9d342
|
@ -149,6 +149,10 @@ public class Constant {
|
||||||
public static final String C_TRIP_TOKEN_PATH = "/dataservice/token/getAccessToken";
|
public static final String C_TRIP_TOKEN_PATH = "/dataservice/token/getAccessToken";
|
||||||
public static final String C_TRIP_ORDER_SEARCH_PATH = "/switchapi/Order/SearchOrder";
|
public static final String C_TRIP_ORDER_SEARCH_PATH = "/switchapi/Order/SearchOrder";
|
||||||
|
|
||||||
|
public static final String C_TRIP_AUTH_LOGIN = "/corpservice/authorize/login";
|
||||||
|
|
||||||
|
public static final String C_TRIP_SINGLE_LOGIN = "/m/SingleSignOn/H5SignInfo";
|
||||||
|
|
||||||
|
|
||||||
//同程
|
//同程
|
||||||
public static final String L_Y_BASE_URL = "https://api.qa.dttrip.cn";
|
public static final String L_Y_BASE_URL = "https://api.qa.dttrip.cn";
|
||||||
|
|
|
@ -1,10 +1,34 @@
|
||||||
package com.chint.interfaces.rest.ctrip;
|
package com.chint.interfaces.rest.ctrip;
|
||||||
|
|
||||||
|
import com.chint.infrastructure.util.Digest;
|
||||||
|
import com.chint.infrastructure.util.Result;
|
||||||
import com.chint.interfaces.rest.base.PostRequest;
|
import com.chint.interfaces.rest.base.PostRequest;
|
||||||
|
import com.chint.interfaces.rest.ctrip.dto.AuthenticationResponseList;
|
||||||
|
import com.chint.interfaces.rest.ctrip.dto.login.CTripAuthLoginParam;
|
||||||
|
import com.chint.interfaces.rest.ctrip.dto.login.CTripHSingleLoginParam;
|
||||||
import com.chint.interfaces.rest.ctrip.dto.login.CTripLoginParam;
|
import com.chint.interfaces.rest.ctrip.dto.login.CTripLoginParam;
|
||||||
|
import com.chint.interfaces.rest.ly.dto.LYBaseRequest;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.apache.http.HttpResponse;
|
||||||
|
import org.apache.http.NameValuePair;
|
||||||
|
import org.apache.http.client.HttpClient;
|
||||||
|
import org.apache.http.client.entity.UrlEncodedFormEntity;
|
||||||
|
import org.apache.http.client.methods.HttpPost;
|
||||||
|
import org.apache.http.impl.client.DefaultHttpClient;
|
||||||
|
import org.apache.http.impl.client.HttpClients;
|
||||||
|
import org.apache.http.message.BasicNameValuePair;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.UnsupportedEncodingException;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import static com.chint.infrastructure.constant.Constant.*;
|
import static com.chint.infrastructure.constant.Constant.*;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
|
@ -12,9 +36,20 @@ public class CTripLoginRequest {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private PostRequest postRequest;
|
private PostRequest postRequest;
|
||||||
|
@Autowired
|
||||||
|
private CTripTicketRequest ticketRequest;
|
||||||
|
@Autowired
|
||||||
|
private CTripTokenRequest tokenRequest;
|
||||||
private String loginUrl = C_TRIP_BASE_URL + C_TRIP_LOGIN_PATH;
|
private String loginUrl = C_TRIP_BASE_URL + C_TRIP_LOGIN_PATH;
|
||||||
|
|
||||||
|
//PC单点登录
|
||||||
|
private String authLoginUrl = C_TRIP_BASE_URL + C_TRIP_AUTH_LOGIN;
|
||||||
|
|
||||||
|
private String hSinngleLoginUrl = C_TRIP_BASE_URL + C_TRIP_SINGLE_LOGIN;
|
||||||
|
|
||||||
|
//H5单点登录
|
||||||
|
private String singleLoginUrl = C_TRIP_BASE_URL + C_TRIP_SINGLE_LOGIN;
|
||||||
|
|
||||||
private String IDPEntityID = C_TRIP_ENTITY_ID;
|
private String IDPEntityID = C_TRIP_ENTITY_ID;
|
||||||
private String corpId = C_TRIP_CORP_ID;
|
private String corpId = C_TRIP_CORP_ID;
|
||||||
|
|
||||||
|
@ -22,4 +57,133 @@ public class CTripLoginRequest {
|
||||||
loginParam.setCorpID(corpId);
|
loginParam.setCorpID(corpId);
|
||||||
return postRequest.post(loginUrl + IDPEntityID, loginParam, String.class);
|
return postRequest.post(loginUrl + IDPEntityID, loginParam, String.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public HttpResponse authLogin(CTripAuthLoginParam authLoginParam) {
|
||||||
|
|
||||||
|
String ticket = ticketRequest.loadTicket();
|
||||||
|
String token = tokenRequest.getToken();
|
||||||
|
authLoginParam.setTicket(ticket);
|
||||||
|
|
||||||
|
String appKey = C_TRIP_APP_KEY;
|
||||||
|
String uid = StringUtils.isNotBlank(authLoginParam.getUID())?authLoginParam.getUID():"";
|
||||||
|
|
||||||
|
String employeeId = StringUtils.isNotBlank(authLoginParam.getEmployeeID())?authLoginParam.getEmployeeID():"";
|
||||||
|
String email = StringUtils.isNotBlank(authLoginParam.getEmail())?authLoginParam.getEmail():"";
|
||||||
|
String ta = StringUtils.isNotBlank(authLoginParam.getTA())?authLoginParam.getTA():"";
|
||||||
|
Integer forCorp = authLoginParam.getForCorp() == null? authLoginParam.getForCorp():0;
|
||||||
|
String forCopStr = forCorp.toString();
|
||||||
|
|
||||||
|
String cost1 = StringUtils.isNotBlank(authLoginParam.getCost1())?authLoginParam.getCost1():"";
|
||||||
|
if (isContainsChinese(cost1)){
|
||||||
|
ByteBuffer byteBuffer = StandardCharsets.UTF_8.encode(cost1);
|
||||||
|
cost1 = StandardCharsets.UTF_8.decode(byteBuffer).toString();
|
||||||
|
}
|
||||||
|
String cost2 = StringUtils.isNotBlank(authLoginParam.getCost2())?authLoginParam.getCost2():"";
|
||||||
|
if (isContainsChinese(cost2)){
|
||||||
|
ByteBuffer byteBuffer = StandardCharsets.UTF_8.encode(cost2);
|
||||||
|
cost2 = StandardCharsets.UTF_8.decode(byteBuffer).toString();
|
||||||
|
}
|
||||||
|
String cost3 = StringUtils.isNotBlank(authLoginParam.getCost3())?authLoginParam.getCost3():"";
|
||||||
|
if (isContainsChinese(cost3)){
|
||||||
|
ByteBuffer byteBuffer = StandardCharsets.UTF_8.encode(cost3);
|
||||||
|
cost3 = StandardCharsets.UTF_8.decode(byteBuffer).toString();
|
||||||
|
}
|
||||||
|
String mdAppSecurity = Digest.md5(C_TRIP_APP_SECURITY);
|
||||||
|
|
||||||
|
|
||||||
|
String finallySign =
|
||||||
|
Digest.md5(appKey+uid+employeeId+email+ta+forCopStr+cost1+cost2+cost3+mdAppSecurity);
|
||||||
|
|
||||||
|
authLoginParam.setSignature(finallySign);
|
||||||
|
// Result post = postRequest.post(authLoginUrl, authLoginParam, Result.class);
|
||||||
|
|
||||||
|
// HttpClient client = HttpClients.createDefault();
|
||||||
|
HttpPost httpPost = new HttpPost(authLoginUrl);
|
||||||
|
List entitys = new ArrayList<>();
|
||||||
|
entitys.add(new BasicNameValuePair("AppKey",appKey));
|
||||||
|
entitys.add(new BasicNameValuePair("Token",token));
|
||||||
|
|
||||||
|
entitys.add(new BasicNameValuePair("Ticket",ticket));
|
||||||
|
entitys.add(new BasicNameValuePair("EmployeeID",authLoginParam.getEmployeeID()));
|
||||||
|
entitys.add(new BasicNameValuePair("Signature",finallySign));
|
||||||
|
entitys.add(new BasicNameValuePair("ForCorp","0"));
|
||||||
|
|
||||||
|
try {
|
||||||
|
httpPost.setEntity(new UrlEncodedFormEntity(entitys));
|
||||||
|
HttpClient client = new DefaultHttpClient();
|
||||||
|
try {
|
||||||
|
return client.execute(httpPost);
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
} catch (UnsupportedEncodingException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public HttpResponse hSingleLogin(CTripHSingleLoginParam hSingleLoginParam) {
|
||||||
|
String ticket = ticketRequest.loadTicket();
|
||||||
|
String token = tokenRequest.getToken();
|
||||||
|
String accessUserId = C_TRIP_APP_KEY;
|
||||||
|
String employeeId = StringUtils.isNotBlank(hSingleLoginParam.getEmployeeId())?hSingleLoginParam.getEmployeeId():"";
|
||||||
|
String corpPayType = StringUtils.isNotBlank(hSingleLoginParam.getCorpPayType())?
|
||||||
|
hSingleLoginParam.getCorpPayType():"public";
|
||||||
|
|
||||||
|
String costCenter1 = StringUtils.isNotBlank(hSingleLoginParam.getCostCenter1())?
|
||||||
|
hSingleLoginParam.getCostCenter1():"";
|
||||||
|
if (isContainsChinese(costCenter1)){
|
||||||
|
ByteBuffer byteBuffer = StandardCharsets.UTF_8.encode(costCenter1);
|
||||||
|
costCenter1 = StandardCharsets.UTF_8.decode(byteBuffer).toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
String costCenter2 = StringUtils.isNotBlank(hSingleLoginParam.getCostCenter2())?
|
||||||
|
hSingleLoginParam.getCostCenter2():"";
|
||||||
|
if (isContainsChinese(costCenter2)){
|
||||||
|
ByteBuffer byteBuffer = StandardCharsets.UTF_8.encode(costCenter2);
|
||||||
|
costCenter2 = StandardCharsets.UTF_8.decode(byteBuffer).toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
String costCenter3 = StringUtils.isNotBlank(hSingleLoginParam.getCostCenter3())?
|
||||||
|
hSingleLoginParam.getCostCenter3():"";
|
||||||
|
if (isContainsChinese(costCenter3)){
|
||||||
|
ByteBuffer byteBuffer = StandardCharsets.UTF_8.encode(costCenter3);
|
||||||
|
costCenter3 = StandardCharsets.UTF_8.decode(byteBuffer).toString();
|
||||||
|
}
|
||||||
|
String mdAppSecurity = Digest.md5(C_TRIP_APP_SECURITY);
|
||||||
|
String finallySign =
|
||||||
|
Digest.md5(accessUserId+employeeId+corpPayType+costCenter1+costCenter2+costCenter3+mdAppSecurity);
|
||||||
|
|
||||||
|
hSingleLoginParam.setSignature(finallySign);
|
||||||
|
|
||||||
|
HttpPost httpPost = new HttpPost(hSinngleLoginUrl);
|
||||||
|
List entitys = new ArrayList<>();
|
||||||
|
entitys.add(new BasicNameValuePair("accessUserId",accessUserId));
|
||||||
|
entitys.add(new BasicNameValuePair("employeeId",employeeId));
|
||||||
|
entitys.add(new BasicNameValuePair("token",token));
|
||||||
|
entitys.add(new BasicNameValuePair("appId","zhengtai"));
|
||||||
|
entitys.add(new BasicNameValuePair("signature",finallySign));
|
||||||
|
entitys.add(new BasicNameValuePair("corpPayType","public"));
|
||||||
|
try {
|
||||||
|
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(entitys,"UTF-8");
|
||||||
|
|
||||||
|
httpPost.setEntity(entity);
|
||||||
|
HttpClient client = new DefaultHttpClient();
|
||||||
|
try {
|
||||||
|
return client.execute(httpPost);
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
} catch (UnsupportedEncodingException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static boolean isContainsChinese(String input) {
|
||||||
|
Pattern pattern = Pattern.compile("[\\u4e00-\\u9fa5]");
|
||||||
|
Matcher matcher = pattern.matcher(input);
|
||||||
|
return matcher.find();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
package com.chint.interfaces.rest.ctrip.dto.login;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class CTripAuthLoginParam {
|
||||||
|
private String AppKey;
|
||||||
|
private String Ticket;
|
||||||
|
private String UID;
|
||||||
|
private String EmployeeID;
|
||||||
|
private String Email;
|
||||||
|
private String Signature;
|
||||||
|
private String Token;
|
||||||
|
|
||||||
|
private String TA;
|
||||||
|
private Integer ForCorp;
|
||||||
|
private String Cost1;
|
||||||
|
private String Cost2;
|
||||||
|
private String Cost3;
|
||||||
|
private String Cost4;
|
||||||
|
private String Cost5;
|
||||||
|
private String Cost6;
|
||||||
|
private String JourneyReason;
|
||||||
|
private String Project;
|
||||||
|
private String DefineFlag;
|
||||||
|
private String DefineFlag2;
|
||||||
|
private String SearchType;
|
||||||
|
private String AuthorizerEmployeeID;
|
||||||
|
private String Authorizer2EmployeeID;
|
||||||
|
private String InitPage;
|
||||||
|
private String CurrentLang;
|
||||||
|
private String OrderId;
|
||||||
|
private Boolean OnlyInitPage;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
package com.chint.interfaces.rest.ctrip.dto.login;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class CTripHSingleLoginParam {
|
||||||
|
private String AccessUserId;
|
||||||
|
private String EmployeeId;
|
||||||
|
private String Token;
|
||||||
|
private String AppId;
|
||||||
|
private String Signature;
|
||||||
|
private String EndorsementID;
|
||||||
|
private String SearchType;
|
||||||
|
private String WebViewEnv;
|
||||||
|
private String CorpPayType;
|
||||||
|
private String InitPage;
|
||||||
|
private String site;
|
||||||
|
|
||||||
|
private String orderNumber;
|
||||||
|
private Integer Callback;
|
||||||
|
private String browserBack;
|
||||||
|
private String CostCenter1;
|
||||||
|
private String CostCenter2;
|
||||||
|
private String CostCenter3;
|
||||||
|
private String CostCenter4;
|
||||||
|
private String CostCenter5;
|
||||||
|
private String CostCenter6;
|
||||||
|
private String Project;
|
||||||
|
private String JourneyReason;
|
||||||
|
private String CostCenterCustom1;
|
||||||
|
private String CostCenterCustom2;
|
||||||
|
private String Language;
|
||||||
|
private String NeedConfirmPerson1;
|
||||||
|
private String NeedConfirmPerson2;
|
||||||
|
private String OnError;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -3,6 +3,7 @@ package com.chint;
|
||||||
import com.chint.domain.aggregates.user.User;
|
import com.chint.domain.aggregates.user.User;
|
||||||
import com.chint.domain.repository.CityRepository;
|
import com.chint.domain.repository.CityRepository;
|
||||||
import com.chint.infrastructure.util.BaseContext;
|
import com.chint.infrastructure.util.BaseContext;
|
||||||
|
import com.chint.infrastructure.util.Result;
|
||||||
import com.chint.interfaces.rest.ctrip.CTripEstimateRequest;
|
import com.chint.interfaces.rest.ctrip.CTripEstimateRequest;
|
||||||
import com.chint.interfaces.rest.ctrip.CTripLocationHttpRequest;
|
import com.chint.interfaces.rest.ctrip.CTripLocationHttpRequest;
|
||||||
import com.chint.interfaces.rest.ctrip.CTripLoginRequest;
|
import com.chint.interfaces.rest.ctrip.CTripLoginRequest;
|
||||||
|
@ -13,11 +14,17 @@ import com.chint.interfaces.rest.ctrip.dto.estimate.request.RouteInfo;
|
||||||
import com.chint.interfaces.rest.ctrip.dto.estimate.response.BookingRelatedApiResponse;
|
import com.chint.interfaces.rest.ctrip.dto.estimate.response.BookingRelatedApiResponse;
|
||||||
import com.chint.interfaces.rest.ctrip.dto.location.CTripCity;
|
import com.chint.interfaces.rest.ctrip.dto.location.CTripCity;
|
||||||
import com.chint.interfaces.rest.ctrip.dto.location.CTripCountry;
|
import com.chint.interfaces.rest.ctrip.dto.location.CTripCountry;
|
||||||
|
import com.chint.interfaces.rest.ctrip.dto.login.CTripAuthLoginParam;
|
||||||
|
import com.chint.interfaces.rest.ctrip.dto.login.CTripHSingleLoginParam;
|
||||||
import com.chint.interfaces.rest.ctrip.dto.login.CTripLoginParam;
|
import com.chint.interfaces.rest.ctrip.dto.login.CTripLoginParam;
|
||||||
|
import org.apache.http.HttpEntity;
|
||||||
|
import org.apache.http.HttpResponse;
|
||||||
|
import org.apache.http.util.EntityUtils;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@ -79,6 +86,50 @@ public class CTripTest {
|
||||||
loginRequest.login(cTripLoginParam);
|
loginRequest.login(cTripLoginParam);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void authLogin() {
|
||||||
|
// BaseContext.setCurrentUser(user);
|
||||||
|
// CTripLoginParam cTripLoginParam = new CTripLoginParam();
|
||||||
|
// cTripLoginParam.setEmployeeID(String.valueOf(user.getEmployeeNo()));
|
||||||
|
|
||||||
|
CTripAuthLoginParam param = new CTripAuthLoginParam();
|
||||||
|
param.setEmployeeID("230615020");
|
||||||
|
param.setForCorp(0);
|
||||||
|
HttpResponse response = loginRequest.authLogin(param);
|
||||||
|
|
||||||
|
HttpEntity entity = response.getEntity();
|
||||||
|
String result = null;
|
||||||
|
try {
|
||||||
|
result = EntityUtils.toString(entity,"UTF-8");
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println(result);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void hSingleLogin() {
|
||||||
|
// BaseContext.setCurrentUser(user);
|
||||||
|
// CTripLoginParam cTripLoginParam = new CTripLoginParam();
|
||||||
|
// cTripLoginParam.setEmployeeID(String.valueOf(user.getEmployeeNo()));
|
||||||
|
|
||||||
|
CTripHSingleLoginParam param = new CTripHSingleLoginParam();
|
||||||
|
param.setEmployeeId("230615020");
|
||||||
|
param.setCorpPayType("public");
|
||||||
|
HttpResponse response = loginRequest.hSingleLogin(param);
|
||||||
|
HttpEntity entity = response.getEntity();
|
||||||
|
String result = null;
|
||||||
|
try {
|
||||||
|
result = EntityUtils.toString(entity,"UTF-8");
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println(result);
|
||||||
|
}
|
||||||
@Test
|
@Test
|
||||||
void estimate() {
|
void estimate() {
|
||||||
BaseContext.setCurrentUser(user);
|
BaseContext.setCurrentUser(user);
|
||||||
|
|
Loading…
Reference in New Issue