redirectOperate.jsp
4.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@page import="java.util.*,weaver.wechat.request.QueryAction,weaver.wechat.util.*,java.net.*,com.alibaba.fastjson.JSONObject" %>
<jsp:useBean id="ResourceComInfo" class="weaver.hrm.resource.ResourceComInfo" scope="page"/>
<jsp:useBean id="rs" class="weaver.conn.RecordSet" scope="page"/>
<%
//必须通过微信授权页面过来才有效
String code = request.getParameter("code");
String publicid = request.getParameter("publicid");
String mode = request.getParameter("mode");
String params = request.getParameter("params");
String state = request.getParameter("state");
String queryopenid = "";
QueryAction qa = new QueryAction();
if (publicid.length() > 0 && code.length() > 0) {
queryopenid = qa.queryBandOpendId(publicid, code);
} else {
response.sendRedirect("result.jsp?type=param&msg=invalid");
return;
}
if ("1".equals(state)) {//系统模块发送提醒
String openid = request.getParameter("openid");
String userid = request.getParameter("userid");
if (!"".equals(queryopenid) && queryopenid.equals(openid)) {
//此时生成token
String token = WechatUtil.createToken(userid, publicid, openid);
//获取用户登录id
String loginid = ResourceComInfo.getLoginID(userid);
//获取手机web地址
String mobileurl = WechatPropConfig.getMobileUrl();
//模块查看地址
String modeurl = WechatPropConfig.getModeUrl(mode);
if (!"".equals(modeurl)) {
params = URLDecoder.decode(params, "UTF-8");
JSONObject json = JSONObject.parseObject(params);
Iterator<String> it = json.keySet().iterator();
while (it.hasNext()) {
String key = it.next();
if (modeurl.indexOf("{" + key + "}") > -1) {
modeurl = modeurl.replace("{" + key + "}", json.getString(key));
}
}
modeurl = URLEncoder.encode(modeurl, "UTF-8");
response.sendRedirect(mobileurl + "/weixin.jsp?loginid=" + URLEncoder.encode(loginid, "UTF-8") + "&password=" + token + "&tokenpass=_wechat&target=" + modeurl);
} else {
response.sendRedirect("result.jsp?type=param&msg=nomodeurl");
return;
}
} else {
response.sendRedirect("result.jsp?type=param&msg=invalid");
return;
}
} else if ("qr".equals(state)) {//二维码扫描
if (!"".equals(queryopenid)) {
//查看openid 是否绑定
rs.execute("select userid from wechat_band where publicid='" + publicid + "' and openid='" + queryopenid + "'");
if (rs.next()) {
String userid = rs.getString("userid");
//此时生成token
String token = WechatUtil.createToken(userid, publicid, queryopenid);
//获取用户登录id
String loginid = ResourceComInfo.getLoginID(userid);
//获取手机web地址
String mobileurl = WechatPropConfig.getMobileUrl();
//模块自定义查看地址
String modeurl = WechatPropConfig.getCustomUrl(mode);
if (!"".equals(modeurl) && !"".equals(mobileurl)) {
params = URLDecoder.decode(params, "UTF-8");
JSONObject json = JSONObject.parseObject(params);
Iterator<String> it = json.keySet().iterator();
while (it.hasNext()) {
String key = it.next();
if (modeurl.indexOf("{" + key + "}") > -1) {
modeurl = modeurl.replace("{" + key + "}", json.getString(key));
}
}
modeurl = URLEncoder.encode(modeurl, "UTF-8");
response.sendRedirect(mobileurl + "/weixin.jsp?loginid=" + URLEncoder.encode(loginid, "UTF-8") + "&password=" + token + "&tokenpass=_wechat&target=" + modeurl);
} else {
response.sendRedirect("result.jsp?type=param&msg=nomodeurl");
return;
}
} else {
response.sendRedirect("result.jsp?type=user&msg=noband");
return;
}
} else {
response.sendRedirect("result.jsp?type=param&msg=invalid");
return;
}
} else {
response.sendRedirect("result.jsp?type=param&msg=nosupport");
return;
}
%>