123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 |
- 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.*;
- 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;
- import com.alibaba.fastjson.JSONObject;
- import com.jfinal.kit.PropKit;
- import okhttp3.FormBody;
- import okhttp3.MediaType;
- import okhttp3.OkHttpClient;
- import okhttp3.Request;
- import okhttp3.RequestBody;
- import okhttp3.Response;
- public class DataService {
-
- private static String GET_EXAM_URL = "https://risserver3.pacsonline.cn/butt/getExam";
-
- private static String SAVE_REPORT_URL = "https://risserver3.pacsonline.cn/butt/saveReport";
-
- private static String UPDATE_PATIENT_URL = "https://risserver3.pacsonline.cn/butt/saveExam";
-
- private static String FEE_URL = "https://risserver3.pacsonline.cn/film/callback";
-
- private static final OkHttpClient OKHTTP_CLIENT = new OkHttpClient();
-
- private static final MediaType JSON_TYPE = MediaType.parse("application/json; charset=utf-8");
-
- /**
- * 获取未出报告的检查列表
- * @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;
- //
- // }
-
- /**
- * 写入报告
- * @param instutionId
- * @param number
- */
- // public void saveReport(Map <String,String> map) {
- // postWithParameters(SAVE_REPORT_URL, map);
- //
- // }
-
- /**
- * 更新患者信息
- *
- * @param instutionId
- * @param number
- */
- // public void updatePatientInfo(Map<String, String> map) {
- // postWithParameters(UPDATE_PATIENT_URL, map);
- // }
-
- /*
- * 医院代收
- */
- // public void fee(JSONObject jsonObject) {
- // postWithJson(FEE_URL, jsonObject);
- // }
-
- public static String postWithParameters(String url, Map<String, String> map,String sj,String ps) throws Exception {
-
- FormBody.Builder formbody = new FormBody.Builder();
-
- for (Map.Entry<String, String> entry : map.entrySet()) {
- formbody.add(entry.getKey(), entry.getValue());
- }
- RequestBody requestBody = formbody.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()) 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
- e.printStackTrace();
- return null;
- }
- }
-
- 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).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
- e.printStackTrace();
- return null;
- }
- }
-
- 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("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);
- }
- }
|