新增测试环境用户限制

debug
wangsq 1 year ago
parent 2d03d453ff
commit 97a5542288
  1. 6
      src/main/java/com/ynxbd/common/action/PWEAction.java
  2. 2
      src/main/java/com/ynxbd/common/action/RecipeAction.java
  3. 18
      src/main/java/com/ynxbd/wx/pwe/PWEConfig.java
  4. 12
      src/main/java/com/ynxbd/wx/pwe/PWEHelper.java
  5. 1
      src/main/resources/pwe.properties

@ -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();

@ -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;

@ -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<String> openIdList = Arrays.asList(openIds.split(","));
return openIdList.contains(openid);
}
}

@ -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);

@ -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
Loading…
Cancel
Save