石林县人民医院哈哈医疗的体检软件使用session中的openId作为查询条件导致查询失败的问题修复。使用token时解析成功时把解析的openid存储到session中

debug
王绍全 3 days ago
parent f9edb6c5a0
commit b9d94b40d8
  1. 16
      src/main/java/com/ynxbd/common/action/ExtAction.java
  2. 6
      src/main/java/com/ynxbd/wx/wxfactory/WxAuthHelper.java

@ -5,12 +5,14 @@ import com.ynxbd.common.bean.Patient;
import com.ynxbd.common.dao.PatientDao;
import com.ynxbd.common.helper.common.Base64Helper;
import com.ynxbd.common.result.Result;
import com.ynxbd.common.result.ResultEnum;
import com.ynxbd.wx.config.WeChatConfig;
import com.ynxbd.wx.wxfactory.WxAuthHelper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import javax.servlet.http.HttpSession;
import java.util.List;
/**
@ -29,14 +31,12 @@ public class ExtAction extends BaseAction {
*/
@Action("getSLTJReport")
public Result getSLTJReport() {
HttpSession session = getSession();
Object openid = session.getAttribute("openid");
if (ObjectUtils.isEmpty(openid)) {
return Result.error();
String openId = WxAuthHelper.getSessionOpenid(request);
if (ObjectUtils.isEmpty(openId)) {
return Result.error(ResultEnum.AUTH_FAILED);
}
List<Patient> patients = new PatientDao().selectListByOpenid(openid.toString());
List<Patient> patients = new PatientDao().selectListByOpenid(openId);
StringBuilder params = new StringBuilder();
String idCardNo;
@ -50,6 +50,6 @@ public class ExtAction extends BaseAction {
params.append(",");
}
}
return Result.redirect("http://www.slxrmyy.cn:9899/?id=" + params);
return Result.redirect(WeChatConfig.getDomain(false) + ":9899/?id=" + params);
}
}

@ -40,6 +40,11 @@ public class WxAuthHelper {
private static final String GMC_ID = "GMCId";
private static final String OPENID = "openid";
public static String getSessionOpenid(HttpServletRequest request) {
HttpSession session = request.getSession();
Object sessionOpenIdObj = session.getAttribute(OPENID); // 自身openid
return sessionOpenIdObj == null ? null : sessionOpenIdObj.toString();
}
public static String auth(HttpServletRequest request, HttpServletResponse response, boolean isUserInfo) {
try {
@ -164,6 +169,7 @@ public class WxAuthHelper {
if (cacheTokenOpenId != null) {
log.info("[微信token认证] token={}, cacheOpenId={}", token, cacheTokenOpenId);
AuthResultData authResultData = getTokenData(cacheTokenOpenId, token, authTokenData);
session.setAttribute(OPENID, cacheTokenOpenId);
return Result.success(authResultData.toResultData());
}

Loading…
Cancel
Save