|
@@ -1,8 +1,20 @@
|
|
|
package com.zskk.service;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
+import java.nio.charset.StandardCharsets;
|
|
|
+import java.security.KeyFactory;
|
|
|
+import java.security.PrivateKey;
|
|
|
+import java.security.Signature;
|
|
|
+import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
+import java.security.spec.PKCS8EncodedKeySpec;
|
|
|
+import java.security.MessageDigest;
|
|
|
+import java.security.NoSuchAlgorithmException;
|
|
|
+
|
|
|
+import org.apache.commons.codec.binary.Hex;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.apache.commons.codec.binary.Base64;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
@@ -36,29 +48,29 @@ public class DataService {
|
|
|
* @param instutionId
|
|
|
* @param number
|
|
|
*/
|
|
|
- public JSONArray getExamList(Integer number) {
|
|
|
- Map <String,String> map = new HashMap<String,String>();
|
|
|
- map.put("institution_id", PropKit.get("institution_id"));
|
|
|
- map.put("num", number.toString());
|
|
|
- String content = postWithParameters(GET_EXAM_URL, map);
|
|
|
- JSONObject jsonObject = JSON.parseObject(content);
|
|
|
- if (!jsonObject.getString("msg").equals("success")) {
|
|
|
- return null;
|
|
|
- }
|
|
|
- JSONArray jsonArray = JSON.parseArray(jsonObject.getString("data"));
|
|
|
- return jsonArray;
|
|
|
-
|
|
|
- }
|
|
|
+// public JSONArray getExamList(Integer number) {
|
|
|
+// Map <String,String> map = new HashMap<String,String>();
|
|
|
+// map.put("institution_id", PropKit.get("institution_id"));
|
|
|
+// map.put("num", number.toString());
|
|
|
+// String content = postWithParameters(GET_EXAM_URL, map);
|
|
|
+// JSONObject jsonObject = JSON.parseObject(content);
|
|
|
+// if (!jsonObject.getString("msg").equals("success")) {
|
|
|
+// return null;
|
|
|
+// }
|
|
|
+// JSONArray jsonArray = JSON.parseArray(jsonObject.getString("data"));
|
|
|
+// return jsonArray;
|
|
|
+//
|
|
|
+// }
|
|
|
|
|
|
/**
|
|
|
* 写入报告
|
|
|
* @param instutionId
|
|
|
* @param number
|
|
|
*/
|
|
|
- public void saveReport(Map <String,String> map) {
|
|
|
- postWithParameters(SAVE_REPORT_URL, map);
|
|
|
-
|
|
|
- }
|
|
|
+// public void saveReport(Map <String,String> map) {
|
|
|
+// postWithParameters(SAVE_REPORT_URL, map);
|
|
|
+//
|
|
|
+// }
|
|
|
|
|
|
/**
|
|
|
* 更新患者信息
|
|
@@ -66,18 +78,18 @@ public class DataService {
|
|
|
* @param instutionId
|
|
|
* @param number
|
|
|
*/
|
|
|
- public void updatePatientInfo(Map<String, String> map) {
|
|
|
- postWithParameters(UPDATE_PATIENT_URL, map);
|
|
|
- }
|
|
|
+// public void updatePatientInfo(Map<String, String> map) {
|
|
|
+// postWithParameters(UPDATE_PATIENT_URL, map);
|
|
|
+// }
|
|
|
|
|
|
/*
|
|
|
* 医院代收
|
|
|
*/
|
|
|
- public void fee(JSONObject jsonObject) {
|
|
|
- postWithJson(FEE_URL, jsonObject);
|
|
|
- }
|
|
|
+// public void fee(JSONObject jsonObject) {
|
|
|
+// postWithJson(FEE_URL, jsonObject);
|
|
|
+// }
|
|
|
|
|
|
- public static String postWithParameters(String url, Map<String, String> map) {
|
|
|
+ public static String postWithParameters(String url, Map<String, String> map,String sj,String ps) throws Exception {
|
|
|
|
|
|
FormBody.Builder formbody = new FormBody.Builder();
|
|
|
|
|
@@ -88,12 +100,14 @@ public class DataService {
|
|
|
|
|
|
Request request = new Request.Builder()
|
|
|
.url(url)
|
|
|
+ .header("orgId", "10179").addHeader("hospitalId", "10179001").addHeader("appId", "app5994124361340817290").addHeader("signType", "RSA2").addHeader("sign", getSign(ps,"MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAKpWTmdc7hhqndi2NjKQZ706GnQpRbIRCQifuUBTyENSj3ZaHDzoJF4d/KjejFL5XQUAb+6BFtG0qBMLn+CNiIRHzS+mITEWPf0ab0ksFe1MjtU4kY+Ie39YU+6/w7cFeoSvsokz03zsXG6TdvKvm1f3HhlMtmwLZKamn5LlbdDjAgMBAAECgYBeyVol0KO5uJKPxo2QQ6VGum+AFntvJGWng+I9dqHpPKcSkABIsFGUghFYE0d44MSvhNfEm9cL6QDiYESeW4QMVY88Drlu+yb0VKQbA9m+tgBrXXItKcpl2BsRiSuA2auck1FbhBCT9flWWU4emnBHzcAE4Ljm4dvK4U8xODxhyQJBAPAdEoeDwQomz97T/d5l29D/zqK1vMwHiHI9dKw8WKb1OvKy6EdZCTgKxK0oiEQcEss//aBYsUA3hoQ78Hd0NW8CQQC1m2T3Uo+f49MRcYeTF8QLJRp+fIbqwfvH6vxNqIeEaqPCRx41Ko+f7L8r9YiNKEC2slmjPfuGDIcupuvWk+nNAkA4qRObSNr/s0LwOSQ6G90wR30SZkJj/w8Sri/fCOp+k3XSmac4VulXASuCFQN61wkUT0hhUyyYk8G5aI+JELIfAkAneUhf7cUkJtwI7ZlfYooNNhplJeIZguKcWLpQkvIp2RgRMW4idkbTpx0CjBMLQ5WVYHzVW7KhN3XmsQeQE4R9AkBagT4KPrDgOBoTm8WADsYlie88DVSlXaXTGyWG59ypBuI37QZwsFfdlkoN3cAjCVseyEuUydF5pX1Pyc3CPryO")).addHeader("timestamp", sj)
|
|
|
.post(requestBody)
|
|
|
.build();
|
|
|
|
|
|
try (Response response = OKHTTP_CLIENT.newCall(request).execute()) {
|
|
|
if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
|
|
|
String content = response.body().string();
|
|
|
+ System.out.println(content);
|
|
|
return content;
|
|
|
} catch (IOException e) {
|
|
|
// TODO Auto-generated catch block
|
|
@@ -102,11 +116,11 @@ public class DataService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public String postWithJson(String url, JSONObject jsonObject) {
|
|
|
+ public static String postWithJson(String url, JSONObject jsonObject,String sj,String ps) throws Exception {
|
|
|
|
|
|
RequestBody requestBody = RequestBody.create(JSON_TYPE, jsonObject.toJSONString());
|
|
|
|
|
|
- Request request = new Request.Builder().url(url).post(requestBody).build();
|
|
|
+ Request request = new Request.Builder().url(url).header("orgId", "10179").addHeader("hospitalId", "10179001").addHeader("appId", "app5994124361340817290").addHeader("signType", "RSA2").addHeader("sign", getSign(ps,"MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAKpWTmdc7hhqndi2NjKQZ706GnQpRbIRCQifuUBTyENSj3ZaHDzoJF4d/KjejFL5XQUAb+6BFtG0qBMLn+CNiIRHzS+mITEWPf0ab0ksFe1MjtU4kY+Ie39YU+6/w7cFeoSvsokz03zsXG6TdvKvm1f3HhlMtmwLZKamn5LlbdDjAgMBAAECgYBeyVol0KO5uJKPxo2QQ6VGum+AFntvJGWng+I9dqHpPKcSkABIsFGUghFYE0d44MSvhNfEm9cL6QDiYESeW4QMVY88Drlu+yb0VKQbA9m+tgBrXXItKcpl2BsRiSuA2auck1FbhBCT9flWWU4emnBHzcAE4Ljm4dvK4U8xODxhyQJBAPAdEoeDwQomz97T/d5l29D/zqK1vMwHiHI9dKw8WKb1OvKy6EdZCTgKxK0oiEQcEss//aBYsUA3hoQ78Hd0NW8CQQC1m2T3Uo+f49MRcYeTF8QLJRp+fIbqwfvH6vxNqIeEaqPCRx41Ko+f7L8r9YiNKEC2slmjPfuGDIcupuvWk+nNAkA4qRObSNr/s0LwOSQ6G90wR30SZkJj/w8Sri/fCOp+k3XSmac4VulXASuCFQN61wkUT0hhUyyYk8G5aI+JELIfAkAneUhf7cUkJtwI7ZlfYooNNhplJeIZguKcWLpQkvIp2RgRMW4idkbTpx0CjBMLQ5WVYHzVW7KhN3XmsQeQE4R9AkBagT4KPrDgOBoTm8WADsYlie88DVSlXaXTGyWG59ypBuI37QZwsFfdlkoN3cAjCVseyEuUydF5pX1Pyc3CPryO")).addHeader("timestamp", sj).post(requestBody).build();
|
|
|
|
|
|
try (Response response = OKHTTP_CLIENT.newCall(request).execute()) {
|
|
|
if (!response.isSuccessful())
|
|
@@ -121,11 +135,90 @@ public class DataService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public static void main(String[] args) {
|
|
|
+ public static String sj() {
|
|
|
+ Date date = new Date();
|
|
|
+ Long time =System.currentTimeMillis();;
|
|
|
+ return time.toString();
|
|
|
+ }
|
|
|
+
|
|
|
+public static String presign(String sj) {
|
|
|
+ MessageDigest md=null;
|
|
|
+ try {
|
|
|
+ md = MessageDigest.getInstance("MD5");
|
|
|
+ } catch (NoSuchAlgorithmException e) {
|
|
|
+ // TODO Auto-generated catch block
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ Map <String,String> map = new HashMap<String,String>();
|
|
|
+ map.put("startDate", "2023-09-06 00:00:00");
|
|
|
+ map.put("endDate", "2023-09-06 12:00:00");
|
|
|
+ String data = JSON.toJSONString(map)+sj;
|
|
|
+ System.out.println(data);
|
|
|
+
|
|
|
+ String md5Str = Hex.encodeHexString(md.digest(data.getBytes(StandardCharsets.UTF_8)));
|
|
|
+ return md5Str;
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+ public static String getSign(String preStr, String appSecret)
|
|
|
+ throws Exception {
|
|
|
+
|
|
|
+ appSecret = appSecret.replace("-----BEGIN PRIVATE KEY-----",
|
|
|
+ "").replace("-----END PRIVATE KEY-----", "").replace("\r",
|
|
|
+ "").replace("\n", "").trim();
|
|
|
+ String suite = "SHA256WithRSA";
|
|
|
+ //初始化算法 SHA256
|
|
|
+ Signature signature = Signature.getInstance(suite);
|
|
|
+ PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(Base64.decodeBase64(appSecret));
|
|
|
+ //初始化私钥+RSA
|
|
|
+ KeyFactory keyFac = KeyFactory.getInstance("RSA");
|
|
|
+ PrivateKey privateKey = keyFac.generatePrivate(keySpec);
|
|
|
+ signature.initSign(privateKey);
|
|
|
+ //待签名字符串转 byte 数组使用 UTF8
|
|
|
+ byte[] msgBuf = preStr.getBytes("UTF8");
|
|
|
+ signature.update(msgBuf);
|
|
|
+ byte[] byteSign = signature.sign();
|
|
|
+ //签名值 byte 数组转字符串用 BASE64
|
|
|
+ String strSign = Base64.encodeBase64String(byteSign);
|
|
|
+ return strSign;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static void main(String[] args) throws Exception {
|
|
|
Map <String,String> map = new HashMap<String,String>();
|
|
|
- map.put("institution_id", "47600001");
|
|
|
- map.put("num", "10");
|
|
|
- postWithParameters(GET_EXAM_URL, map);
|
|
|
+ map.put("startDate", "2023-09-06 00:00:00");
|
|
|
+ map.put("endDate", "2023-09-06 12:00:00");
|
|
|
+ String sj = sj();
|
|
|
+ String ps = presign(sj);
|
|
|
+ JSONObject gg = new JSONObject();
|
|
|
+ gg.put("startDate", "2023-09-06 00:00:00");
|
|
|
+ gg.put("endDate", "2023-09-06 12:00:00");
|
|
|
+ postWithJson("https://nyxzyy.msunhis.com/msun-middle-business-pacs/v1/patients", gg,sj,ps);
|
|
|
+ String aaa = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBA\n"
|
|
|
+ + "IxuagdiKqsvabbRxclFcLAIJXCBfj7nbMAnL5r+uUr3n2qXDXLRP8AoI\n"
|
|
|
+ + "pwa2kiVJdLLtK2dQlQD0b5VzNTTYDOWjC/SL2l41r8kXxBHD3cLjS\n"
|
|
|
+ + "SP2d0KxIrybdVrjof18Y/H0bS8uskNfoZcVOo/lH6z3c9RUrZUnAvFQd\n"
|
|
|
+ + "GiQZXrAgMBAAECgYBj71dI9dUDiXQjg9jKyL3Op51tGNnsjehYPgq\n"
|
|
|
+ + "ktEzMSreJtQD/CmXhqy4mBP391RXbktd7DYRcIXOrjYd8lQfJ2xCmvp\n"
|
|
|
+ + "WMMqeQ1uzxTddHfl3FrlPLqc5UZLdjiAxINme33TDarscsc/KnDy1WE\n"
|
|
|
+ + "85pE5iHwgZtbKgUsyOvY9nf0QJBAOhMzUzc9Lw5QJxV+zFGWDJw\n"
|
|
|
+ + "Hy1G956Wzgxz9ljLAYQEskgOrDVVuwSiJMxWNMasksCZzkkIMkPi\n"
|
|
|
+ + "KjxPhUroZFUCQQCawjDZSBPMZGN6fVcG1IT9r4kUIzy78jPA1o2hG\n"
|
|
|
+ + "5c0dXcUJl1QuWeC9DssOSC5Btpzdb0bfaqMgfkCtAnAClE/AkEA3qim\n"
|
|
|
+ + "67KqPjPeUzsyvyM+7HF94KcyN2cy7srD6I4E0Oazf8/YjnKzBJjqDpXel\n"
|
|
|
+ + "kPZkhSannPlwh1pAE/0Yj1n1QJAWkdEJcylOAur+G2b0fExr6exyJyRtn\n"
|
|
|
+ + "Yg+LJwpnYo68JGd+u1bfzqRHti9XZR/33e+5HIgnv5fMPpVklekreyEwJ\n"
|
|
|
+ + "AFAeBw+T39QRWf5gPs1mGGMKKpBpfk74Pk9r+W9Uk7thP0pzmbo\n"
|
|
|
+ + "RM5ExXt960uoEn9OY9MfIrmFzwhku+8lLIBg==";
|
|
|
+
|
|
|
+ String bb = "MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAKpWTmdc7hhqndi2NjKQZ706GnQpRbIRCQifuUBTyENSj3ZaHDzoJF4d/KjejFL5XQUAb+6BFtG0qBMLn+CNiIRHzS+mITEWPf0ab0ksFe1MjtU4kY+Ie39YU+6/w7cFeoSvsokz03zsXG6TdvKvm1f3HhlMtmwLZKamn5LlbdDjAgMBAAECgYBeyVol0KO5uJKPxo2QQ6VGum+AFntvJGWng+I9dqHpPKcSkABIsFGUghFYE0d44MSvhNfEm9cL6QDiYESeW4QMVY88Drlu+yb0VKQbA9m+tgBrXXItKcpl2BsRiSuA2auck1FbhBCT9flWWU4emnBHzcAE4Ljm4dvK4U8xODxhyQJBAPAdEoeDwQomz97T/d5l29D/zqK1vMwHiHI9dKw8WKb1OvKy6EdZCTgKxK0oiEQcEss//aBYsUA3hoQ78Hd0NW8CQQC1m2T3Uo+f49MRcYeTF8QLJRp+fIbqwfvH6vxNqIeEaqPCRx41Ko+f7L8r9YiNKEC2slmjPfuGDIcupuvWk+nNAkA4qRObSNr/s0LwOSQ6G90wR30SZkJj/w8Sri/fCOp+k3XSmac4VulXASuCFQN61wkUT0hhUyyYk8G5aI+JELIfAkAneUhf7cUkJtwI7ZlfYooNNhplJeIZguKcWLpQkvIp2RgRMW4idkbTpx0CjBMLQ5WVYHzVW7KhN3XmsQeQE4R9AkBagT4KPrDgOBoTm8WADsYlie88DVSlXaXTGyWG59ypBuI37QZwsFfdlkoN3cAjCVseyEuUydF5pX1Pyc3CPryO\n";
|
|
|
+ String aaa1 = getSign("2f2b0ec46ea8cfe4e256649eb873777d",aaa.replaceAll("\n",""));
|
|
|
+
|
|
|
+ String bbbq = getSign(ps,bb);
|
|
|
+
|
|
|
+ System.out.println(aaa1);
|
|
|
+ System.out.println(bbbq);
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
}
|