小程序
小游戏
企业微信
微信支付
扫描小程序码分享
如题
1 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
别如题了,亮代码吧,怎么个直接
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
别如题了,亮代码吧,怎么个直接
public void init(HttpServletRequest request, HttpServletResponse response){
System.out.println("================================微信URL回调测试=========================");
SAXReader saxReader = new SAXReader();
Document document;
try {
try {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
String signature = request.getParameter("signature");
String timestamp = request.getParameter("timestamp");
String nonce = request.getParameter("nonce");
String echostr = request.getParameter("echostr");
log.info("signature[{}], timestamp[{}], nonce[{}], echostr[{}]", signature, timestamp, nonce, echostr);
if (SignUtil.checkSignature(signature, timestamp, nonce)) {
//log.info("数据源为微信后台,将echostr[{}]返回!", echostr);
response.getOutputStream().println(echostr);
// 获得微信端返回的xml数据
InputStream is = null;
InputStreamReader isr = null;
BufferedReader br = null;
try {
//writer = response.getWriter();
is = request.getInputStream();
isr = new InputStreamReader(is, "utf-8");
br = new BufferedReader(isr);
String str = null;
StringBuffer returnXml= new StringBuffer();
while ((str = br.readLine()) != null) {
//返回的是xml数据
returnXml.append(str);
}
if (!StringUtils.isEmpty(returnXml.toString())) {
Map<String, String> encryptMap = xmlToMap(returnXml.toString());
//// 区分消息类型
String msgType = encryptMap.get("MsgType");
// 普通消息
if ("text".equals(msgType)) { // 文本消息
// todo 处理文本消息
response.getOutputStream().print("success");
}