公众号开发
This commit is contained in:
@ -2,14 +2,11 @@ package com.stdiet.web.controller.custom;
|
|||||||
|
|
||||||
import com.stdiet.common.core.controller.BaseController;
|
import com.stdiet.common.core.controller.BaseController;
|
||||||
import com.stdiet.common.core.domain.AjaxResult;
|
import com.stdiet.common.core.domain.AjaxResult;
|
||||||
import com.stdiet.custom.domain.WxXmlData;
|
|
||||||
import com.stdiet.custom.service.ISysWxService;
|
import com.stdiet.custom.service.ISysWxService;
|
||||||
import com.thoughtworks.xstream.XStream;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.xml.bind.annotation.XmlMimeType;
|
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/wx")
|
@RequestMapping("/wx")
|
||||||
@ -24,8 +21,13 @@ public class CusWxController extends BaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/checkSign")
|
@PostMapping("/checkSign")
|
||||||
public String autoResonse(HttpServletRequest request){
|
public String autoResponse(HttpServletRequest request) {
|
||||||
return sysWxService.autoResponse(request);
|
return sysWxService.autoResponse(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/accessToken")
|
||||||
|
public AjaxResult getAccessToken() {
|
||||||
|
return sysWxService.getAccessToken();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,12 @@
|
|||||||
|
package com.stdiet.custom.domain.wechat;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class WxAccessToken implements Serializable {
|
||||||
|
private String accessToken;
|
||||||
|
|
||||||
|
private Integer expiresIn;
|
||||||
|
}
|
@ -1,5 +1,6 @@
|
|||||||
package com.stdiet.custom.service;
|
package com.stdiet.custom.service;
|
||||||
|
|
||||||
|
import com.stdiet.common.core.domain.AjaxResult;
|
||||||
import com.stdiet.custom.domain.WxXmlData;
|
import com.stdiet.custom.domain.WxXmlData;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
@ -16,4 +17,6 @@ public interface ISysWxService {
|
|||||||
public String wxCheckAuth(String signature, String timestamp, String nonce, String echostr);
|
public String wxCheckAuth(String signature, String timestamp, String nonce, String echostr);
|
||||||
|
|
||||||
public String autoResponse(HttpServletRequest request);
|
public String autoResponse(HttpServletRequest request);
|
||||||
|
|
||||||
|
public AjaxResult getAccessToken();
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.stdiet.custom.service.impl;
|
package com.stdiet.custom.service.impl;
|
||||||
|
|
||||||
|
import com.stdiet.common.core.domain.AjaxResult;
|
||||||
import com.stdiet.common.utils.StringUtils;
|
import com.stdiet.common.utils.StringUtils;
|
||||||
import com.stdiet.custom.domain.WxXmlData;
|
import com.stdiet.custom.domain.WxXmlData;
|
||||||
import com.stdiet.custom.service.ISysWxService;
|
import com.stdiet.custom.service.ISysWxService;
|
||||||
@ -29,7 +30,7 @@ public class SysWxServiceImpl implements ISysWxService {
|
|||||||
WxXmlData resultXmlData = new WxXmlData();
|
WxXmlData resultXmlData = new WxXmlData();
|
||||||
resultXmlData.setToUserName(wxData.getFromUserName()); //收到的消息是谁发来的再发给谁
|
resultXmlData.setToUserName(wxData.getFromUserName()); //收到的消息是谁发来的再发给谁
|
||||||
resultXmlData.setFromUserName(wxData.getToUserName()); //
|
resultXmlData.setFromUserName(wxData.getToUserName()); //
|
||||||
if (!StringUtils.isEmpty(wxData.getEvent())) {
|
if (wxData.getMsgType().equals(WechatMessageUtil.MESSAGE_EVENT)) {
|
||||||
if (wxData.getEvent().equals(WechatMessageUtil.MESSAGE_EVENT_SUBSCRIBE)) {
|
if (wxData.getEvent().equals(WechatMessageUtil.MESSAGE_EVENT_SUBSCRIBE)) {
|
||||||
resultXmlData.setMsgType("text");
|
resultXmlData.setMsgType("text");
|
||||||
resultXmlData.setCreateTime(System.currentTimeMillis());
|
resultXmlData.setCreateTime(System.currentTimeMillis());
|
||||||
@ -37,7 +38,7 @@ public class SysWxServiceImpl implements ISysWxService {
|
|||||||
} else if (wxData.getEvent().equals(WechatMessageUtil.MESSAGE_EVENT_UNSUBSCRIBE)) {
|
} else if (wxData.getEvent().equals(WechatMessageUtil.MESSAGE_EVENT_UNSUBSCRIBE)) {
|
||||||
|
|
||||||
}
|
}
|
||||||
} else if (wxData.getContent().equalsIgnoreCase("vip")) {
|
} else if (wxData.getMsgType().equals(WechatMessageUtil.MESSAGE_TEXT)) {
|
||||||
resultXmlData.setMsgType("text");
|
resultXmlData.setMsgType("text");
|
||||||
resultXmlData.setCreateTime(System.currentTimeMillis());
|
resultXmlData.setCreateTime(System.currentTimeMillis());
|
||||||
resultXmlData.setContent("<a href=\"https://my.openwrite.cn/code/generate?blogId=18931-1576559666626-322\">点击该链接,获取博客解锁验证码</a>");
|
resultXmlData.setContent("<a href=\"https://my.openwrite.cn/code/generate?blogId=18931-1576559666626-322\">点击该链接,获取博客解锁验证码</a>");
|
||||||
@ -55,4 +56,10 @@ public class SysWxServiceImpl implements ISysWxService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AjaxResult getAccessToken() {
|
||||||
|
return AjaxResult.success(WxTokenUtils.fetchAccessToken());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
package com.stdiet.custom.utils;
|
package com.stdiet.custom.utils;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.stdiet.common.utils.StringUtils;
|
||||||
|
import com.stdiet.common.utils.http.HttpUtils;
|
||||||
import com.stdiet.custom.domain.WxXmlData;
|
import com.stdiet.custom.domain.WxXmlData;
|
||||||
|
import com.stdiet.custom.domain.wechat.WxAccessToken;
|
||||||
import com.thoughtworks.xstream.XStream;
|
import com.thoughtworks.xstream.XStream;
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
|
|
||||||
@ -13,6 +17,23 @@ public class WxTokenUtils {
|
|||||||
|
|
||||||
// 与接口配置信息中的Token要一致
|
// 与接口配置信息中的Token要一致
|
||||||
private static String token = "shengtangdiet";
|
private static String token = "shengtangdiet";
|
||||||
|
private static String appId = "wx4a9c1fc9dba53202";
|
||||||
|
private static String appSecret = "fff029ade5d3575df755f4cf9e52f8da";
|
||||||
|
private static String tokenUrl = "https://api.weixin.qq.com/cgi-bin/token";
|
||||||
|
|
||||||
|
public static WxAccessToken fetchAccessToken() {
|
||||||
|
try {
|
||||||
|
String resStr = HttpUtils.sendGet(tokenUrl, "grant_type=client_credential&appid=" + appId + "secret=" + appSecret);
|
||||||
|
if (StringUtils.isEmpty(resStr)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
JSONObject obj = JSONObject.parseObject(resStr);
|
||||||
|
WxAccessToken token = JSONObject.toJavaObject(obj, WxAccessToken.class);
|
||||||
|
return token;
|
||||||
|
} catch (Exception e) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 验证签名
|
* 验证签名
|
||||||
|
Reference in New Issue
Block a user