parent
f1618ce278
commit
7fbee4f068
|
|
@ -1,6 +1,8 @@
|
||||||
package com.ghy.web.controller.tool;
|
package com.ghy.web.controller.tool;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.ghy.common.core.controller.BaseController;
|
import com.ghy.common.core.controller.BaseController;
|
||||||
|
import com.ghy.common.utils.WxUtils;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
|
@ -18,7 +20,7 @@ public class WxController extends BaseController {
|
||||||
|
|
||||||
@GetMapping("/token")
|
@GetMapping("/token")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public String demo3(String timestamp, String nonce, String signature, String echostr, HttpServletRequest request) throws IOException {
|
public String token(String timestamp, String nonce, String signature, String echostr) throws IOException {
|
||||||
String token = "gqz";
|
String token = "gqz";
|
||||||
boolean checkSignature = checkSignature(signature, timestamp, nonce, token);
|
boolean checkSignature = checkSignature(signature, timestamp, nonce, token);
|
||||||
if (checkSignature) {
|
if (checkSignature) {
|
||||||
|
|
@ -28,6 +30,14 @@ public class WxController extends BaseController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/openid")
|
||||||
|
@ResponseBody
|
||||||
|
public String openId(HttpServletRequest request) throws Exception{
|
||||||
|
String code = request.getParameter("code");
|
||||||
|
JSONObject wxUser = WxUtils.getOpenid(code);
|
||||||
|
return wxUser.getString("openid");
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 验证微信签名
|
* 验证微信签名
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
bRFuvYpyQ4WLr0on
|
||||||
|
|
@ -0,0 +1,44 @@
|
||||||
|
package com.ghy.common.utils;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
|
||||||
|
import javax.net.ssl.HttpsURLConnection;
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.net.URL;
|
||||||
|
|
||||||
|
public class WxUtils {
|
||||||
|
|
||||||
|
public static String getOpenIdUrl = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code";
|
||||||
|
|
||||||
|
/*通过code获取用户openid*/
|
||||||
|
public static JSONObject getOpenid(String code) throws IOException {
|
||||||
|
JSONObject jsonObject = null;
|
||||||
|
String path = getOpenIdUrl.replace("APPID", "wx404f2439a8c24e15").replace("SECRET", "49ade04a817067fe2d65ab2f17afce75").replace("CODE", code);
|
||||||
|
StringBuffer buffer = new StringBuffer();
|
||||||
|
URL url = new URL(path);
|
||||||
|
HttpsURLConnection httpUrlConn = (HttpsURLConnection) url.openConnection();
|
||||||
|
httpUrlConn.setRequestMethod("POST");
|
||||||
|
httpUrlConn.setDoOutput(true);
|
||||||
|
httpUrlConn.setDoInput(true);
|
||||||
|
httpUrlConn.setUseCaches(false);
|
||||||
|
// 将返回的输入流转换成字符串
|
||||||
|
InputStream inputStream = httpUrlConn.getInputStream();
|
||||||
|
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");
|
||||||
|
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
|
||||||
|
String str = null;
|
||||||
|
while ((str = bufferedReader.readLine()) != null) {
|
||||||
|
buffer.append(str);
|
||||||
|
}
|
||||||
|
bufferedReader.close();
|
||||||
|
inputStreamReader.close();
|
||||||
|
// 释放资源
|
||||||
|
inputStream.close();
|
||||||
|
inputStream = null;
|
||||||
|
httpUrlConn.disconnect();
|
||||||
|
jsonObject = JSONObject.parseObject(buffer.toString());
|
||||||
|
return jsonObject;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -278,6 +278,7 @@ public class ShiroConfig
|
||||||
//部分接口不需要登陆校验
|
//部分接口不需要登陆校验
|
||||||
filterChainDefinitionMap.put("/wx/**", "anon");
|
filterChainDefinitionMap.put("/wx/**", "anon");
|
||||||
// 对静态资源设置匿名访问
|
// 对静态资源设置匿名访问
|
||||||
|
filterChainDefinitionMap.put("/MP_verify_bRFuvYpyQ4WLr0on.txt", "anon");
|
||||||
filterChainDefinitionMap.put("/favicon.ico**", "anon");
|
filterChainDefinitionMap.put("/favicon.ico**", "anon");
|
||||||
filterChainDefinitionMap.put("/ruoyi.png**", "anon");
|
filterChainDefinitionMap.put("/ruoyi.png**", "anon");
|
||||||
filterChainDefinitionMap.put("/html/**", "anon");
|
filterChainDefinitionMap.put("/html/**", "anon");
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue