diff --git a/src/main/java/com/ynxbd/common/action/PWEAction.java b/src/main/java/com/ynxbd/common/action/PWEAction.java index eb48875..9bb5966 100644 --- a/src/main/java/com/ynxbd/common/action/PWEAction.java +++ b/src/main/java/com/ynxbd/common/action/PWEAction.java @@ -54,13 +54,13 @@ public class PWEAction extends BaseAction { * [预问诊][患者端]获取预问诊H5链接 */ @Action("getH5PWEUrl") - public Result getH5PWEUrl(String registerId) { + public Result getH5PWEUrl(String registerId, String openid) { try { log.info("[预问诊][患者端]获取预问诊h5链接 registerId={}", registerId); if (ObjectUtils.isEmpty(registerId)) { return Result.error(ResultEnum.PARAM_IS_BLANK); } - String miniPWEUrl = PWEHelper.getH5PWEUrl(registerId); + String miniPWEUrl = PWEHelper.getH5PWEUrl(registerId, openid); return Result.success(miniPWEUrl); } catch (Exception e) { return Result.error(e); @@ -111,7 +111,7 @@ public class PWEAction extends BaseAction { Register order = new PWEReportDao().selectRegOrderInfo(registeredId); log.info("[预问诊]6.3 预问诊完成通知 partnerId={}, hospitalId={}, registeredId={}, progress={}", partnerId, hospitalId, registeredId, progress); if ("1".equals(progress)) { - log.info("进度100%"); + log.info("[预问诊]报告生成进度100%"); MessagePushConfig.regAIReport(order.getPatientId()); } return PWEResult.success(); diff --git a/src/main/java/com/ynxbd/common/action/RecipeAction.java b/src/main/java/com/ynxbd/common/action/RecipeAction.java index 9539692..a1f8645 100644 --- a/src/main/java/com/ynxbd/common/action/RecipeAction.java +++ b/src/main/java/com/ynxbd/common/action/RecipeAction.java @@ -6,7 +6,6 @@ import com.ynxbd.common.bean.NatRecord; import com.ynxbd.common.bean.Patient; import com.ynxbd.common.bean.enums.MerchantEnum; import com.ynxbd.common.bean.pay.Recipe; -import com.ynxbd.common.bean.xk.medicalRecipe; import com.ynxbd.common.dao.NatRecordDao; import com.ynxbd.common.dao.PatientDao; import com.ynxbd.common.dao.his.HisRecipeDao; @@ -17,7 +16,6 @@ import com.ynxbd.common.helper.his.HisHelper; import com.ynxbd.common.result.JsonResult; import com.ynxbd.common.result.Result; import com.ynxbd.common.result.ResultEnum; -import com.ynxbd.common.service.PeisService; import com.ynxbd.common.service.RecipeService; import com.ynxbd.wx.config.WeChatConfig; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/ynxbd/wx/pwe/PWEConfig.java b/src/main/java/com/ynxbd/wx/pwe/PWEConfig.java index e022474..6bd0360 100644 --- a/src/main/java/com/ynxbd/wx/pwe/PWEConfig.java +++ b/src/main/java/com/ynxbd/wx/pwe/PWEConfig.java @@ -2,6 +2,10 @@ package com.ynxbd.wx.pwe; import com.ynxbd.common.helper.ProperHelper; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.ObjectUtils; + +import java.util.Arrays; +import java.util.List; @Slf4j public class PWEConfig { @@ -10,6 +14,7 @@ public class PWEConfig { public static final String PARTNER_SECRET; // 合作方密钥 public static final String HOSPITAL_ID; // 医院ID public static final String SECRET_KEY; // 私钥 + public static final String OPEN_IDS; // openIds // public static final boolean IS_DEV; @@ -24,16 +29,29 @@ public class PWEConfig { PARTNER_ID = config.getString("pwe.partner_id"); PARTNER_SECRET = config.getString(IS_DEV ? "pwe.dev.partner_secret" : "pwe.partner_secret"); SECRET_KEY = config.getString(IS_DEV ? "pwe.dev.secret_key" : "pwe.secret_key"); + OPEN_IDS = config.getString("pwe.dev.open_ids"); } else { IS_DEV = false; HOSPITAL_ID = null; PARTNER_ID = null; PARTNER_SECRET = null; SECRET_KEY = null; + OPEN_IDS = null; } if (PARTNER_ID == null || PARTNER_SECRET == null) { log.error("[预问诊]读取配置文件pwe.properties失败"); } } + + public static boolean hasOpenId(String openid) { + if (ObjectUtils.isEmpty(openid)) { + return false; + } + String openIds = OPEN_IDS == null ? "" : OPEN_IDS; + List openIdList = Arrays.asList(openIds.split(",")); + return openIdList.contains(openid); + } + + } diff --git a/src/main/java/com/ynxbd/wx/pwe/PWEHelper.java b/src/main/java/com/ynxbd/wx/pwe/PWEHelper.java index cdb1323..ddc6f93 100644 --- a/src/main/java/com/ynxbd/wx/pwe/PWEHelper.java +++ b/src/main/java/com/ynxbd/wx/pwe/PWEHelper.java @@ -2,7 +2,6 @@ package com.ynxbd.wx.pwe; import com.alibaba.fastjson.JSONObject; import com.ynxbd.common.helper.common.CodeHelper; -import com.ynxbd.common.helper.common.JsonHelper; import com.ynxbd.common.helper.common.URLHelper; import com.ynxbd.common.helper.http.OkHttpHelper; import com.ynxbd.common.result.ServiceException; @@ -12,7 +11,6 @@ import org.apache.commons.lang3.ObjectUtils; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import javax.servlet.http.HttpServletRequest; -import java.io.BufferedReader; import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.Map; @@ -69,11 +67,17 @@ public class PWEHelper { * * @param registerId 挂号ID(商户订单号 outTradeNo) */ - public static String getH5PWEUrl(String registerId) { + public static String getH5PWEUrl(String registerId, String openid) { log.info("[患者端]获取预问诊h5链接 registerId={}", registerId); String registerIdSign = toHmacSha256Example(PWEConfig.SECRET_KEY, (PWEConfig.HOSPITAL_ID + registerId)); if (ObjectUtils.isEmpty(registerIdSign)) { - log.error("签名失败"); + log.error("[患者端]获取预问诊h5链接,签名失败"); + return null; + } + // 测试环境,并且未找到用户 + if (PWEConfig.IS_DEV && !PWEConfig.hasOpenId(openid)) { + log.error("[患者端]测试环境未找到用户 openid={}", openid); + return null; } String params = URLHelper.mapToUrl(map -> { map.put("partnerId", PWEConfig.PARTNER_ID); diff --git a/src/main/resources/pwe.properties b/src/main/resources/pwe.properties index 22e1ffc..363d502 100644 --- a/src/main/resources/pwe.properties +++ b/src/main/resources/pwe.properties @@ -9,3 +9,4 @@ pwe.secret_key=ZLU6bW&x#%k@2kxW # dev================== pwe.dev.partner_secret=ad99d34eb89b5fb517380ff4745ada1e pwe.dev.secret_key=P*HEi#aNN8hJ6*EA +pwe.dev.open_ids=1,2 \ No newline at end of file