|
@@ -1,33 +1,59 @@
|
|
package com.jpsoft.smart;
|
|
package com.jpsoft.smart;
|
|
|
|
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
+import com.alibaba.fastjson.serializer.SerializeConfig;
|
|
|
|
+import com.jpsoft.smart.modules.business.entity.WorkAttendance;
|
|
|
|
+import com.jpsoft.smart.modules.common.utils.AESUtil;
|
|
|
|
+import com.jpsoft.smart.modules.realname.dto.CorpDTO;
|
|
|
|
+import com.jpsoft.smart.modules.realname.dto.ProjectDTO;
|
|
|
|
+import com.jpsoft.smart.modules.realname.dto.TeamDTO;
|
|
|
|
+import com.jpsoft.smart.modules.realname.dto.WorkerAttendanceDTO;
|
|
|
|
+import com.sun.corba.se.spi.orbutil.threadpool.Work;
|
|
|
|
+import io.jsonwebtoken.impl.crypto.MacProvider;
|
|
|
|
+import org.apache.http.client.entity.UrlEncodedFormEntity;
|
|
|
|
+import org.apache.http.client.methods.CloseableHttpResponse;
|
|
|
|
+import org.apache.http.client.methods.HttpPost;
|
|
|
|
+import org.apache.http.impl.client.CloseableHttpClient;
|
|
|
|
+import org.apache.http.impl.client.HttpClients;
|
|
|
|
+import org.apache.http.message.BasicNameValuePair;
|
|
|
|
+import org.apache.http.util.EntityUtils;
|
|
|
|
+import org.joda.time.DateTime;
|
|
import org.junit.Test;
|
|
import org.junit.Test;
|
|
|
|
|
|
|
|
+import javax.crypto.Cipher;
|
|
|
|
+import javax.crypto.spec.SecretKeySpec;
|
|
import java.io.BufferedReader;
|
|
import java.io.BufferedReader;
|
|
import java.io.InputStreamReader;
|
|
import java.io.InputStreamReader;
|
|
import java.io.Reader;
|
|
import java.io.Reader;
|
|
|
|
+import java.io.UnsupportedEncodingException;
|
|
|
|
+import java.math.BigDecimal;
|
|
import java.net.HttpURLConnection;
|
|
import java.net.HttpURLConnection;
|
|
import java.net.URL;
|
|
import java.net.URL;
|
|
|
|
+import java.net.URLEncoder;
|
|
import java.security.MessageDigest;
|
|
import java.security.MessageDigest;
|
|
import java.security.NoSuchAlgorithmException;
|
|
import java.security.NoSuchAlgorithmException;
|
|
-import java.util.Date;
|
|
|
|
-import java.util.TreeMap;
|
|
|
|
|
|
+import java.util.*;
|
|
|
|
|
|
public class OpenAPITest {
|
|
public class OpenAPITest {
|
|
|
|
+ private final String UPLOAD_URl = "http://jztest.e2r.cn:8115/foreign/upload/check";
|
|
|
|
+ private final String SELECT_URL = "http://jztest.e2r.cn:8115/foreign/select/check";
|
|
|
|
+ private final String APP_ID = "yOtqoojmsmz";
|
|
|
|
+ private final String APP_SECRET = "534a33e888b001a246b635b76e42d0dd";
|
|
|
|
|
|
- @Test
|
|
|
|
- public void signTest(){
|
|
|
|
|
|
+ public JSONObject sendPost(String url,String method,String data){
|
|
/**
|
|
/**
|
|
- 接口参数签名方法
|
|
|
|
- 第一步:拼接参数字符串
|
|
|
|
- 将除sign以外的请求参数(包括标准参数,除非有特别说明)按照参数名称的字典升序排列,
|
|
|
|
- 然后按此顺序,将”参数名=参数值”用”&”符号连接。
|
|
|
|
- appid=appcode123&data=[]&format=json&iscompany=2&method=employee.create&nonce=11223344×tamp=1558593970&version=2.0
|
|
|
|
- **/
|
|
|
|
|
|
+ 接口参数签名方法
|
|
|
|
+ 第一步:拼接参数字符串
|
|
|
|
+ 将除sign以外的请求参数(包括标准参数,除非有特别说明)按照参数名称的字典升序排列,
|
|
|
|
+ 然后按此顺序,将”参数名=参数值”用”&”符号连接。
|
|
|
|
+ appid=appcode123&data=[]&format=json&iscompany=2&method=employee.create&nonce=11223344×tamp=1558593970&version=2.0
|
|
|
|
+ **/
|
|
TreeMap<String,Object> treeMap = new TreeMap<>();
|
|
TreeMap<String,Object> treeMap = new TreeMap<>();
|
|
- treeMap.put("method","Project.Add");
|
|
|
|
|
|
+ treeMap.put("method",method);
|
|
treeMap.put("version","1.0");
|
|
treeMap.put("version","1.0");
|
|
- treeMap.put("appid","yOtqoojmsmz");
|
|
|
|
|
|
+ treeMap.put("appid",APP_ID);
|
|
treeMap.put("iscompany","1");
|
|
treeMap.put("iscompany","1");
|
|
treeMap.put("format","json");
|
|
treeMap.put("format","json");
|
|
|
|
|
|
@@ -35,9 +61,12 @@ public class OpenAPITest {
|
|
treeMap.put("timestamp", timestamp);
|
|
treeMap.put("timestamp", timestamp);
|
|
treeMap.put("nonce", timestamp);
|
|
treeMap.put("nonce", timestamp);
|
|
|
|
|
|
- treeMap.put("data","[{\"ADDRESS\":\"湖北省\",\"CONTRACTPRICE\":\"80000.00\",\"DEPARTMENTINDUSTRYID\":\"68\",\"DISTRICTCCODE\":421002,\"DISTRICTCODE\":421002,\"ENDTIME\":\"859\",\"GCPROCESS\":\"1\",\"LATLNG\":\"114.225446,30.560052\",\"MONEYSOURCE\":130,\"NAME\":\"沙北碧桂园\",\"PROJECTDESC\":\".\",\"PROJECTTYPE\":\"117\",\"STARTTIME\":\"2018-11-02\"}]");
|
|
|
|
|
|
+ treeMap.put("data", data);
|
|
|
|
+
|
|
|
|
+ //treeMap.put("data","[{\"ADDRESS\":\"湖北省\",\"CONTRACTPRICE\":\"80000.00\",\"DEPARTMENTINDUSTRYID\":\"68\",\"DISTRICTCCODE\":421002,\"DISTRICTCODE\":421002,\"ENDTIME\":\"859\",\"GCPROCESS\":\"1\",\"LATLNG\":\"114.225446,30.560052\",\"MONEYSOURCE\":130,\"NAME\":\"沙北碧桂园\",\"PROJECTDESC\":\".\",\"PROJECTTYPE\":\"117\",\"STARTTIME\":\"2018-11-02\"}]");
|
|
//treeMap.put("data","[{\"ADDRESS\":\"湖北省\",\"CONTRACTPRICE\":80000.00}]");
|
|
//treeMap.put("data","[{\"ADDRESS\":\"湖北省\",\"CONTRACTPRICE\":80000.00}]");
|
|
|
|
|
|
|
|
+ List<BasicNameValuePair> params = new ArrayList<>();
|
|
StringBuilder sb = new StringBuilder();
|
|
StringBuilder sb = new StringBuilder();
|
|
|
|
|
|
for (String key : treeMap.keySet()) {
|
|
for (String key : treeMap.keySet()) {
|
|
@@ -47,18 +76,20 @@ public class OpenAPITest {
|
|
|
|
|
|
sb.append(key + "=" + treeMap.get(key));
|
|
sb.append(key + "=" + treeMap.get(key));
|
|
|
|
|
|
|
|
+ params.add(new BasicNameValuePair(key, treeMap.get(key).toString()));
|
|
|
|
+
|
|
System.out.println(key + ":" + treeMap.get(key));
|
|
System.out.println(key + ":" + treeMap.get(key));
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
- * 第二步:在拼接参数字符串后再拼接&appsecret,如&appsecret=df23hlir85353;appsecret即密钥,由服务信息平台技术支持人员提供。
|
|
|
|
- * 示例:appid=appcode123&data=[]&format=json&iscompany=2&method=employee.create&nonce=11223344×tamp=1558593970&version=2.0&appsecret=df23hlir85353gfgd86775jjdh6322
|
|
|
|
- **/
|
|
|
|
- sb.append("&appsecret=534a33e888b001a246b635b76e42d0dd");
|
|
|
|
|
|
+ * 第二步:在拼接参数字符串后再拼接&appsecret,如&appsecret=df23hlir85353;appsecret即密钥,由服务信息平台技术支持人员提供。
|
|
|
|
+ * 示例:appid=appcode123&data=[]&format=json&iscompany=2&method=employee.create&nonce=11223344×tamp=1558593970&version=2.0&appsecret=df23hlir85353gfgd86775jjdh6322
|
|
|
|
+ **/
|
|
|
|
+ sb.append("&appsecret=" + APP_SECRET);
|
|
|
|
|
|
/**
|
|
/**
|
|
* (3)第三步:将上一步的获得的字符串全部转换为小写。再进行SHA256加密(SHA256 64位),生成的字符串就是验签数据sign。注意:SHA256加密哈希值请转换为16进制表示。
|
|
* (3)第三步:将上一步的获得的字符串全部转换为小写。再进行SHA256加密(SHA256 64位),生成的字符串就是验签数据sign。注意:SHA256加密哈希值请转换为16进制表示。
|
|
- **/
|
|
|
|
|
|
+ **/
|
|
// String plainText = "appid=appcode123&data=[]&format=json&iscompany=2&method=employee.create&nonce=11223344×tamp=1558593970&version=2.0&appsecret=df23hlir85353gfgd86775jjdh6322";
|
|
// String plainText = "appid=appcode123&data=[]&format=json&iscompany=2&method=employee.create&nonce=11223344×tamp=1558593970&version=2.0&appsecret=df23hlir85353gfgd86775jjdh6322";
|
|
String plainText = sb.toString();
|
|
String plainText = sb.toString();
|
|
|
|
|
|
@@ -71,6 +102,8 @@ public class OpenAPITest {
|
|
plainText = plainText.toLowerCase();
|
|
plainText = plainText.toLowerCase();
|
|
System.out.println(plainText);
|
|
System.out.println(plainText);
|
|
|
|
|
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
|
+
|
|
try {
|
|
try {
|
|
MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
|
|
MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
|
|
messageDigest.update(plainText.getBytes("UTF-8"));
|
|
messageDigest.update(plainText.getBytes("UTF-8"));
|
|
@@ -90,42 +123,209 @@ public class OpenAPITest {
|
|
|
|
|
|
System.out.println("sign:" + stringBuffer.toString());
|
|
System.out.println("sign:" + stringBuffer.toString());
|
|
|
|
|
|
- postDataSb.append("&sign=" + stringBuffer.toString());
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- System.out.println("postData:" + postDataSb);
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- byte[] postDataBytes = postDataSb.toString().getBytes("UTF-8");
|
|
|
|
-
|
|
|
|
- HttpURLConnection conn = (HttpURLConnection)(new URL("http://jztest.e2r.cn:8115/foreign/upload/check")).openConnection();
|
|
|
|
- conn.setRequestMethod("POST");
|
|
|
|
- conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
|
|
|
|
- conn.setRequestProperty("Content-Length", String.valueOf(postDataBytes.length));
|
|
|
|
- conn.setConnectTimeout(2000);
|
|
|
|
- conn.setReadTimeout(5000);
|
|
|
|
- conn.setDoOutput(true);
|
|
|
|
- conn.getOutputStream().write(postDataBytes);
|
|
|
|
|
|
+ params.add(new BasicNameValuePair("sign", stringBuffer.toString()));
|
|
|
|
|
|
- Reader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "GBK"));
|
|
|
|
|
|
+ for (String key : treeMap.keySet()) {
|
|
|
|
+ if (sb.length()>0){
|
|
|
|
+ sb.append("&");
|
|
|
|
+ }
|
|
|
|
|
|
- StringBuilder sb2 = new StringBuilder();
|
|
|
|
- for (int c; (c = in.read()) >= 0;) {
|
|
|
|
- sb2.append((char)c);
|
|
|
|
|
|
+ sb.append(key + "=" + treeMap.get(key));
|
|
|
|
+ System.out.println(key + ":" + treeMap.get(key));
|
|
}
|
|
}
|
|
- in.close();
|
|
|
|
- conn.disconnect();
|
|
|
|
|
|
|
|
- String responseStr = sb2.toString();
|
|
|
|
|
|
+ CloseableHttpClient httpClient = HttpClients.createDefault();
|
|
|
|
+ HttpPost httpPost = new HttpPost(url);
|
|
|
|
+
|
|
|
|
+ UrlEncodedFormEntity urlEncodedFormEntity = new UrlEncodedFormEntity(params, "UTF-8");
|
|
|
|
+ urlEncodedFormEntity.setContentEncoding("UTF-8");
|
|
|
|
+ httpPost.setEntity(urlEncodedFormEntity);
|
|
|
|
+ CloseableHttpResponse response = httpClient.execute(httpPost);
|
|
|
|
|
|
- System.out.println(responseStr);
|
|
|
|
|
|
+ String content = EntityUtils.toString(response.getEntity(),"UTF-8");
|
|
|
|
|
|
- JSONObject jsonObject = JSONObject.parseObject(responseStr);
|
|
|
|
|
|
+ jsonObject = JSONObject.parseObject(content);
|
|
|
|
|
|
- //1575542056612
|
|
|
|
System.out.println("返回消息:" + jsonObject.get("message"));
|
|
System.out.println("返回消息:" + jsonObject.get("message"));
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ return jsonObject;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Test
|
|
|
|
+ public void projectAddTest(){
|
|
|
|
+ ProjectDTO dto = new ProjectDTO();
|
|
|
|
+ dto.setName("沙北碧桂园");
|
|
|
|
+ dto.setAddress("湖北省");
|
|
|
|
+ dto.setContractPrice(new BigDecimal(80000));
|
|
|
|
+ dto.setDepartmentIndustryId("68");
|
|
|
|
+ dto.setDistrictCCode("421002");
|
|
|
|
+ dto.setDistrictCode("421002");
|
|
|
|
+ dto.setEndTime("859");
|
|
|
|
+ dto.setGcProcess("1");
|
|
|
|
+ dto.setLatLng("114.225446,30.560052");
|
|
|
|
+ dto.setMoneySource("130");
|
|
|
|
+ dto.setProjectDesc("");
|
|
|
|
+ dto.setProjectType("117");
|
|
|
|
+ dto.setStartTime("2018-11-02");
|
|
|
|
+
|
|
|
|
+ List<ProjectDTO> dtoList = new ArrayList<>();
|
|
|
|
+
|
|
|
|
+ dtoList.add(dto);
|
|
|
|
+
|
|
|
|
+ SerializeConfig config = new SerializeConfig();
|
|
|
|
+
|
|
|
|
+ String jsonStr = JSONObject.toJSONString(dtoList, config);
|
|
|
|
+
|
|
|
|
+ JSONObject response = sendPost(UPLOAD_URl,"Project.Add",jsonStr);
|
|
|
|
+
|
|
|
|
+ System.out.println(response.getString("mesage"));
|
|
|
|
+
|
|
|
|
+ //1575542056612
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Test
|
|
|
|
+ public void projectSelTest(){
|
|
|
|
+ Map<String,Object> map = new HashMap<>();
|
|
|
|
+ map.put("PROJECTCODE","1575542056612");
|
|
|
|
+
|
|
|
|
+// List<Map> dtoList = new ArrayList<>();
|
|
|
|
+// dtoList.add(map);
|
|
|
|
+
|
|
|
|
+ String jsonStr = JSONObject.toJSONString(map);
|
|
|
|
+
|
|
|
|
+ JSONObject response = sendPost(SELECT_URL,"Project.Sel",jsonStr);
|
|
|
|
+
|
|
|
|
+ System.out.println(response.getString("data"));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Test
|
|
|
|
+ public void CorpUploadTest(){
|
|
|
|
+ CorpDTO corpDTO = new CorpDTO();
|
|
|
|
+ corpDTO.setSocialCreditCode("91120222797261880N");
|
|
|
|
+ corpDTO.setCompanyType(2);
|
|
|
|
+ corpDTO.setName("建筑公司1");
|
|
|
|
+ corpDTO.setRegisteredArea("421002");
|
|
|
|
+ corpDTO.setLegalPerson("郑强");
|
|
|
|
+ corpDTO.setLegalPersonPhone("13986703087");
|
|
|
|
+ corpDTO.setProjectLeader("小刚1");
|
|
|
|
+ corpDTO.setProjectLeaderPhone("13986703088");
|
|
|
|
+ corpDTO.setProjectManager("小刚2");
|
|
|
|
+ corpDTO.setProjectManagerPhone("13986703089");
|
|
|
|
+ corpDTO.setLaborLeader("小刚3");
|
|
|
|
+ corpDTO.setLaborLeaderPhone("13986703090");
|
|
|
|
+ corpDTO.setDesposit(new BigDecimal(100));
|
|
|
|
+ corpDTO.setRegisterDate("2020-06-01");
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ List<CorpDTO> dtoList = new ArrayList<>();
|
|
|
|
+ dtoList.add(corpDTO);
|
|
|
|
+
|
|
|
|
+ String jsonStr = JSONObject.toJSONString(dtoList);
|
|
|
|
+ JSONObject response = sendPost(UPLOAD_URl,"Corp.Upload",jsonStr);
|
|
|
|
+
|
|
|
|
+ System.out.println(response.getString("data"));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Test
|
|
|
|
+ public void TeamAddTest(){
|
|
|
|
+ TeamDTO teamDTO = new TeamDTO();
|
|
|
|
+
|
|
|
|
+ teamDTO.setProjectCode("1575542056612");
|
|
|
|
+ teamDTO.setSocialCreditCode("91120222797261880N");
|
|
|
|
+ teamDTO.setMonitorName("测试班组");
|
|
|
|
+ teamDTO.setName("测试");
|
|
|
|
+ teamDTO.setPhone("13986703087");
|
|
|
|
+// teamDTO.setIdNumber(AESUtil.encrypt("421002198311131816",APP_SECRET));
|
|
|
|
+ teamDTO.setIdNumber("zMfvL9dX4Dl4sdT7oDDSgBAxqba/j8mykWZ+oUgFeQA=");
|
|
|
|
+
|
|
|
|
+ teamDTO.setAddress("荆州");
|
|
|
|
+ teamDTO.setStartTime("2020-06-01");
|
|
|
|
+
|
|
|
|
+ List<TeamDTO> dtoList = new ArrayList<>();
|
|
|
|
+ dtoList.add(teamDTO);
|
|
|
|
+
|
|
|
|
+ String jsonStr = JSONObject.toJSONString(dtoList);
|
|
|
|
+
|
|
|
|
+ JSONObject response = sendPost(UPLOAD_URl,"Team.Add",jsonStr);
|
|
|
|
+
|
|
|
|
+ //BZ1591004812994
|
|
|
|
+ System.out.println(response.getString("data"));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Test
|
|
|
|
+ public void TeamSelTest(){
|
|
|
|
+ Map<String,Object> map = new HashMap<>();
|
|
|
|
+ map.put("PROJECTCODE","1575542056612");
|
|
|
|
+ map.put("MONITORNAME","泥工班组");
|
|
|
|
+ map.put("PAGE",1);
|
|
|
|
+ map.put("ROWS",10);
|
|
|
|
+
|
|
|
|
+// List<Map> dtoList = new ArrayList<>();
|
|
|
|
+// dtoList.add(map);
|
|
|
|
+
|
|
|
|
+ String jsonStr = JSONObject.toJSONString(map);
|
|
|
|
+
|
|
|
|
+ JSONObject response = sendPost(SELECT_URL,"Team.Sel",jsonStr);
|
|
|
|
+
|
|
|
|
+ System.out.println(response.getString("data"));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Test
|
|
|
|
+ public void ProjectWorkerSel(){
|
|
|
|
+ Map<String,Object> map = new HashMap<>();
|
|
|
|
+ map.put("PROJECTCODE","1575542056612");
|
|
|
|
+// map.put("NAME","1575542056612");
|
|
|
|
+// map.put("IDNUMBER","1575542056612");
|
|
|
|
+// map.put("WORKCLASSES","1575542056612");
|
|
|
|
+ map.put("PAGE",1);
|
|
|
|
+ map.put("ROWS",10);
|
|
|
|
+
|
|
|
|
+// List<Map> dtoList = new ArrayList<>();
|
|
|
|
+// dtoList.add(map);
|
|
|
|
+
|
|
|
|
+ String jsonStr = JSONObject.toJSONString(map);
|
|
|
|
+
|
|
|
|
+ JSONObject response = sendPost(SELECT_URL,"ProjectWorker.Sel",jsonStr);
|
|
|
|
+
|
|
|
|
+ System.out.println(response.getString("data"));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Test
|
|
|
|
+ public void WorkerAttendanceAdd(){
|
|
|
|
+ WorkerAttendanceDTO dto = new WorkerAttendanceDTO();
|
|
|
|
+
|
|
|
|
+ dto.setProjectCode("1575542056612");
|
|
|
|
+ dto.setIdNumber(AESUtil.encrypt("511202197306206658",APP_SECRET));
|
|
|
|
+// dto.setTeamSysNo("BZ1591004812994");
|
|
|
|
+ dto.setSocialCreditCode("91120222797261880N");
|
|
|
|
+ dto.setContractType("ZD00000220190519003708");
|
|
|
|
+ dto.setStartTime(DateTime.now().toString("yyy-MM-dd HH:mm:ss"));
|
|
|
|
+ dto.setSignDate(DateTime.now().toString("yyy-MM-dd"));
|
|
|
|
+
|
|
|
|
+ List<WorkerAttendanceDTO> dtoList = new ArrayList<>();
|
|
|
|
+ dtoList.add(dto);
|
|
|
|
+ String jsonStr = JSONObject.toJSONString(dtoList);
|
|
|
|
+
|
|
|
|
+ JSONObject response = sendPost(UPLOAD_URl,"WorkerAttendance.Add",jsonStr);
|
|
|
|
+
|
|
|
|
+ System.out.println(response.getString("data"));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ @Test
|
|
|
|
+ public void WorkerAttendanceSel(){
|
|
|
|
+ Map<String,Object> map = new HashMap<>();
|
|
|
|
+ map.put("PROJECTCODE","1575542056612");
|
|
|
|
+ map.put("NAME","陈永洪");
|
|
|
|
+ map.put("PAGE",1);
|
|
|
|
+ map.put("ROWS",10);
|
|
|
|
+
|
|
|
|
+ String jsonStr = JSONObject.toJSONString(map);
|
|
|
|
+ JSONObject response = sendPost(SELECT_URL,"WorkerAttendance.Sel",jsonStr);
|
|
|
|
+
|
|
|
|
+ System.out.println(response.getString("data"));
|
|
}
|
|
}
|
|
}
|
|
}
|