|
@@ -72,6 +72,39 @@ public class WxaUserApiController extends WxaController {
|
|
|
// renderJson("sessionId", sessionId);
|
|
|
}
|
|
|
|
|
|
+ public void loginBySession() {
|
|
|
+ IAccessTokenCache accessTokenCache = ApiConfigKit.getAccessTokenCache();
|
|
|
+ String sessionId = getHeader("wxa-sessionid");
|
|
|
+ if (StrKit.isBlank(sessionId)) {
|
|
|
+ Kv data = Kv.by("errcode", 500)
|
|
|
+ .set("errmsg", "wxa_session Header is blank");
|
|
|
+ renderJson(ErrorConstant.ERROR_WXA_SESSION_BLANK);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ String sessionJson = accessTokenCache.get("wxa:session:" + sessionId);
|
|
|
+ if (StrKit.isBlank(sessionJson)) {
|
|
|
+ Kv data = Kv.by("errcode", 500)
|
|
|
+ .set("errmsg", "wxa_session sessionJson is blank");
|
|
|
+ renderJson(ErrorConstant.ERROR_WXA_SESSION_BLANK);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ ApiResult sessionResult = ApiResult.create(sessionJson);
|
|
|
+ // 获取sessionKey
|
|
|
+ String sessionKey = sessionResult.get("session_key");
|
|
|
+ if (StrKit.isBlank(sessionKey)) {
|
|
|
+ Kv data = Kv.by("errcode", 500)
|
|
|
+ .set("errmsg", "sessionKey is blank");
|
|
|
+ renderJson(ErrorConstant.ERROR_WXA_SESSION_BLANK);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ DoctorsWechat doctorsWechat = DoctorsWechat.dao.findFirst("select * from doctors_wechat where wxa_openid=?", sessionResult.get("openid"));
|
|
|
+ Doctors doctors = Doctors.dao.findById(doctorsWechat.getDoctorId());
|
|
|
+ LoginBean loginBean = new LoginBean();
|
|
|
+ loginBean.setSessionId(sessionId);
|
|
|
+ loginBean.setDoctorBean(doctors);
|
|
|
+ renderJson(new ResultBean(loginBean));
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 服务端解密用户信息接口
|
|
|
* 获取unionId
|