微信后端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

80 lines
2.6 KiB

package com.ynxbd.wx.config;
import com.ynxbd.common.helper.ProperHelper;
import com.ynxbd.common.helper.common.HMACHelper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
/**
9 months ago
* 智能导诊配置
*/
@Slf4j
public class AIGuidanceConfig {
private AIGuidanceConfig() {
}
9 months ago
public final static boolean IS_ENABLE;
// 是否为测试环境
public final static boolean IS_DEV;
// 是否为分时段挂号
public final static boolean IS_SPLIT_TIME_REG;
//配置文件读取项
9 months ago
public final static String HOS_ID;
// 密钥
9 months ago
public final static String KEY;
public final static String PARTNER_ID;
public final static String HOS_NAME;
public final static String HOS_ADDRESS;
public final static String HOS_INTRO;
public final static String HOS_LEVEL;
public final static String HOS_TELEPHONE;
static {
ProperHelper config = new ProperHelper().read("ai-guidance.properties");
IS_ENABLE = config.getBoolean("ai.is_enable", false);
config.setIsEnable(IS_ENABLE);
IS_DEV = config.getBoolean("ai.is_dev", false);
IS_SPLIT_TIME_REG = config.getBoolean("ai.is_split_time_reg", true);
PARTNER_ID = config.getString("ai.partner_id");
KEY = config.getString("ai.key");
HOS_ID = config.getString("ai.hos_id");
HOS_NAME = config.getString("ai.hos_name");
HOS_ADDRESS = config.getString("ai.hos_address");
HOS_INTRO = config.getString("ai.hos_intro");
HOS_LEVEL = config.getString("ai.hos_level");
HOS_TELEPHONE = config.getString("ai.hos_telephone");
if (PARTNER_ID == null) {
log.error("[智能导诊]读取配置文件失败|功能未开启");
}
}
/**
* 验签
*
* @param request 请求
* @return 是否通过
*/
public static boolean isVerifySign(HttpServletRequest request) {
if (!IS_ENABLE) {
return false;
}
String signature = request.getHeader("god-portal-signature"); // 签名
if (ObjectUtils.isEmpty(signature)) {
return false;
}
String timestamp = request.getHeader("god-portal-timestamp"); // 时间戳
log.info("[智能导诊]验签 timestamp={}, signature={}", timestamp, signature);
String str = PARTNER_ID + timestamp;
String cacheSign = HMACHelper.sha256(str, KEY);
return signature.equals(cacheSign);
}
}