iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >利用java怎么实现一个微信公众平台消息接口应用
  • 762
分享到

利用java怎么实现一个微信公众平台消息接口应用

javaava 2023-05-31 11:05:27 762人浏览 安东尼
摘要

利用java怎么实现一个微信公众平台消息接口应用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。具体如下:微信公众平台现在推出自动回复消息接口,但是由于是接口内容

利用java怎么实现一个微信公众平台消息接口应用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

具体如下:

微信公众平台现在推出自动回复消息接口,但是由于是接口内容用的是PHP语言写的,很多地方操作起来让本人这个对Java比较熟悉的小伙很别扭,所以仿照php的接口代码做了一套jsp语言编写的接口。

首先先把整个接口代码贴出来做下比较,然后我们再分析代码:

JAVA:

<%@page import="java.util.Date"%><%@page import="org.dom4j.Element"%><%@page import="org.dom4j.DocumentHelper"%><%@page import="org.dom4j.Document"%><%@page import="java.io.IOException"%><%@page import="java.io.InputStreamReader"%><%@page import="java.io.BufferedReader"%><%@page import="java.io.Reader"%><%@page import="java.security.MessageDigest"%><%@page import="java.util.Arrays"%><%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><%  //WeiXinHandler为内部类不能使用非final类型的对象  final String TOKEN="weixin";  final httpservletRequest final_request=request;  final HttpServletResponse final_response=response;%><%class WeiXinHandler{  public void valid(){    String echostr=final_request.getParameter("echostr");    if(null==echostr||echostr.isEmpty()){      responseMsg();    }else{      if(this.checkSignature()){        this.print(echostr);      }else{        this.print("error");      }    }  }  //自动回复内容  public void responseMsg(){    String postStr=null;    try{      postStr=this.readStreamParameter(final_request.getInputStream());    }catch(Exception e){      e.printStackTrace();    }    //System.out.println(postStr);    if (null!=postStr&&!postStr.isEmpty()){      Document document=null;      try{        document = DocumentHelper.parseText(postStr);      }catch(Exception e){        e.printStackTrace();      }      if(null==document){        this.print("");        return;      }      Element root=document.getRootElement();      String fromUsername = root.elementText("FromUserName");      String toUsername = root.elementText("ToUserName");      String keyWord = root.elementTextTrim("Content");      String time = new Date().getTime()+"";      String textTpl = "<xml>"+            "<ToUserName><![CDATA[%1$s]]></ToUserName>"+            "<FromUserName><![CDATA[%2$s]]></FromUserName>"+            "<CreateTime>%3$s</CreateTime>"+            "<MsgType><![CDATA[%4$s]]></MsgType>"+            "<Content><![CDATA[%5$s]]></Content>"+            "<FuncFlag>0</FuncFlag>"+            "</xml>";      if(null!=keyword&&!keyword.equals(""))      {        String msgType = "text";        String contentStr = "Welcome to wechat world!";        String resultStr = textTpl.fORMat(textTpl, fromUsername, toUsername, time, msgType, contentStr);        this.print(resultStr);      }else{        this.print("Input something...");      }    }else {      this.print("");    }  }  //微信接口验证  public boolean checkSignature(){    String signature = final_request.getParameter("signature");    String timestamp = final_request.getParameter("timestamp");    String nonce = final_request.getParameter("nonce");    String token=TOKEN;    String[] tmpArr={token,timestamp,nonce};    Arrays.sort(tmpArr);    String tmpStr=this.ArrayToString(tmpArr);    tmpStr=this.SHA1Encode(tmpStr);    if(tmpStr.equalsIgnoreCase(signature)){      return true;    }else{      return false;    }  }  //向请求端发送返回数据  public void print(String content){    try{      final_response.getWriter().print(content);      final_response.getWriter().flush();      final_response.getWriter().close();    }catch(Exception e){    }  }  //数组字符串  public String ArrayToString(String [] arr){    StringBuffer bf = new StringBuffer();    for(int i = 0; i < arr.length; i++){     bf.append(arr[i]);    }    return bf.toString();  }  //sha1加密  public String SHA1Encode(String sourceString) {    String resultString = null;    try {      resultString = new String(sourceString);      MessageDigest md = MessageDigest.getInstance("SHA-1");      resultString = byte2hexString(md.digest(resultString.getBytes()));    } catch (Exception ex) {    }    return resultString;  }  public final String byte2hexString(byte[] bytes) {    StringBuffer buf = new StringBuffer(bytes.length * 2);    for (int i = 0; i < bytes.length; i++) {      if (((int) bytes[i] & 0xff) < 0x10) {        buf.append("0");      }      buf.append(Long.toString((int) bytes[i] & 0xff, 16));    }    return buf.toString().toUpperCase();  }  //从输入流读取post参数  public String readStreamParameter(ServletInputStream in){    StringBuilder buffer = new StringBuilder();    BufferedReader reader=null;    try{      reader = new BufferedReader(new InputStreamReader(in));      String line=null;      while((line = reader.readLine())!=null){        buffer.append(line);      }    }catch(Exception e){      e.printStackTrace();    }finally{      if(null!=reader){        try {          reader.close();        } catch (IOException e) {          e.printStackTrace();        }      }    }    return buffer.toString();  }}%><%  WeiXinHandler handler=new WeiXinHandler();  handler.valid();%>

--结束END--

本文标题: 利用java怎么实现一个微信公众平台消息接口应用

本文链接: https://www.lsjlt.com/news/225070.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 利用java怎么实现一个微信公众平台消息接口应用
    利用java怎么实现一个微信公众平台消息接口应用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。具体如下:微信公众平台现在推出自动回复消息接口,但是由于是接口内容...
    99+
    2023-05-31
    java ava
  • 微信公众平台开发中使用Java如何实现一个消息回复功能
    本篇文章给大家分享的是有关微信公众平台开发中使用Java如何实现一个消息回复功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。(一)回复文本消息在前面我们已经完成了对消息的分类...
    99+
    2023-05-31
    java 消息回复
  • PHP调用微信公众号接口发送消息
    PHP调用微信公众号接口发送消息随着社交媒体的普及,微信成为了人们在生活和工作中经常使用的一种社交工具。而对于企业来说,利用微信公众号与用户进行互动已经成为了一种必备的营销手段。PHP作为一种广泛应用于Web开发的编程语言,也有着调用微信公...
    99+
    2023-05-21
    PHP 微信公众号接口 发送消息
  • 微信公众平台开发中使用Java挺好实现一个多媒体消息回复功能
    微信公众平台开发中使用Java挺好实现一个多媒体消息回复功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。(一)素材接口图片上传按照之前我们的约定将接口请求的url写入到配置文...
    99+
    2023-05-31
    java 消息回复
  • 微信小程序 | 微信公众平台SpringBoot开发实例 │ 模板消息的应用开发
     在手机微信公众号中输入文本(如“你好”),公众号发送两条模板消息,如下图所示。 1、说明 1●模板消息的基本规则 模板消息用来帮助公众号进行业务通知,是在模板内容中设定参数(参数必须以{ {开头,且以.DATA} }结尾)并在调用时为这...
    99+
    2023-09-20
    微信公众平台 java 开发语言 微信小程序 小程序
  • Java微信公众平台开发(3) 接收消息的分类及实体的创建
    前面一篇有说道应用服务器和腾讯服务器是通过消息进行通讯的,并简单介绍了微信端post的消息类型,这里我们将建立消息实体以方便我们后面的使用!(一)消息实体基础类package com.cuiyongzhi.wechat.message.re...
    99+
    2023-05-31
    java 接收消息
  • Java怎么实现微信公众号发送模版消息
    这篇文章主要介绍Java怎么实现微信公众号发送模版消息,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!微信公众号发送模版消息 背景:如下图,当用户发布需求的时候,公众号自定推送消息。例如:微信支付的时候,公众号会推送支...
    99+
    2023-06-29
  • 微信公众平台开发中使用Java如何实现获取用户的信息
    本篇文章为大家展示了微信公众平台开发中使用Java如何实现获取用户的信息,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。(一)用户微信消息的获取实现在关注者与公众号产生消息交互后,公众号可获得关注者的...
    99+
    2023-05-31
    java 获取用户信息
  • 微信公众平台开发使用Java如何实现关联微信的三大平台
    本篇文章为大家展示了微信公众平台开发使用Java如何实现关联微信的三大平台,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。微信公众平台(map.weixin.qq.com)/开放平台(open.wei...
    99+
    2023-05-31
    java 平台
  • 用PHP构建一个微信公众号API接口
    在当今互联网时代,微信公众号成为了越来越多企业的重要营销渠道。想要自己的微信公众号实现更多的功能,常常需要编写相应的接口。本文将以PHP语言为例,介绍如何构建一个微信公众号API接口。一、前置准备在编写微信公众号API接口之前,需要开发者拥...
    99+
    2023-05-14
    PHP 微信公众号 API接口
  • 微信公众平台开发使用Java如何实现获取token
    微信公众平台开发使用Java如何实现获取token?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。(一)token的介绍引用:access_token是公众号的全局唯一票据,...
    99+
    2023-05-31
    java token
  • 如何实现java公众平台通用接口工具类HttpConnectUtil
    这篇文章给大家分享的是有关如何实现java公众平台通用接口工具类HttpConnectUtil的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。实例如下:package com.common.util;im...
    99+
    2023-05-30
  • Java微信公众平台开发(4) 回复消息的分类及实体的创建
    前面有说道对接收到微信服务器消息后对消息的分类,当时主要分为普通消息和事件消息,这里我们要讲述的是我们在给用户回复的消息类型,在这里也可以大致分为两类:一种为不需要上传资源到微信服务器的这里成为【普通消息回复】;还有一种需要上传资源到微信服...
    99+
    2023-05-31
    java 消息
  • Java微信公众平台开发(9) 关键字回复以及客服接口实现
    我们在微信公众号的后台可以发现微信给我们制定了两种模式,一种是开发者模式(也就是我们一直在做的开发),还有一种模式是编辑模式,然而很蛋疼的是有些功能一旦我们切换到开发者模式下就无法使用了,比较典型的就是关键字回复以及服务器无响应的时候返回的...
    99+
    2023-05-31
    java 关键字
  • 如何利用python给微信公众号发消息实例代码
    现在通过发微信公众号信息来做消息通知和告警已经很普遍了。最常见的就是运维通过zabbix调用shell脚本给微信发消息,起到告警的作用。当要发送的信息较多,而且希望按照指定格式显示的...
    99+
    2024-04-02
  • 微信公众平台开发中使用Java如何实现创建一个自定义菜单
    微信公众平台开发中使用Java如何实现创建一个自定义菜单?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。自定义菜单这个功能在我们普通的编辑模式下是可以直接在后台编辑的,但是一旦我...
    99+
    2023-05-31
    java 自定义菜单
  • 利用java如何实现一个微信APP支付接口
    这篇文章给大家介绍利用java如何实现一个微信APP支付接口,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。开始开发1、配置相关的配置信息1、配置appid(Android)、mch_id(ios)、微信支付后的回调地址...
    99+
    2023-05-31
    java 支付
  • Android微信公众号开发消息推送功能怎么实现
    这篇文章主要讲解了“Android微信公众号开发消息推送功能怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Android微信公众号开发消息推送功能怎么实现”吧!微信公众号简介微信公众...
    99+
    2023-07-05
  • 微信公众平台开发中使用Java如何实现帐号申请功能
    本篇文章给大家分享的是有关微信公众平台开发中使用Java如何实现帐号申请功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。①登入到微信公众平台,我们到【开发】——>【开发...
    99+
    2023-05-31
    java 帐号申请
  • 微信公众号如何实现H5支付接口调用方法
    这篇文章主要为大家展示了“微信公众号如何实现H5支付接口调用方法”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“微信公众号如何实现H5支付接口调用方法”这篇文章吧...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作