微信公众号开发基础入门

编程入门 行业动态 更新时间:2024-10-21 11:28:30

微信公众号开发基础<a href=https://www.elefans.com/category/jswz/34/1770026.html style=入门"/>

微信公众号开发基础入门

一、申请一个微信公众号
/

二、接口认证(证明你是一名合法的开发者)

在微信公众平台左侧菜单找到基本配置


开发者ID是注册完就有的,这里要注意的是开发者密码,非常重要,获取密码后,建议保存在文本文档里。还有一个IP白名单是干什么的呢?
开发者访问微信服务器时会携带ID和密码和IP地址,在服务器里IP白名单上的IP地址才允许访问。

点击修改配置


URL是访问地址,借助NATAPP工具获取
/
下载64位ZIP,解压出来运行后出现命令窗口,需输入指令。
先在NATAPP网页上找到免费隧道(需注册)
购买一个免费隧道

在命令窗口中输入 natapp -authtoken=(authtoken下的内容)

成功后显示online,http://…cc即是内网穿透后的地址(付费与免费的区别就是免费的URL每次都是不一样的)。

回到微信公众平台的配置网页,复制地址到URL栏,地址后接controller地址。Token随意取名,随机生成,明文模式。点击提交,提示失败。

打开IDEA新建工程,创建maven项目,因为与controlller交互,所以需要springmvc相关配置文件
1.pom.xml中引入依赖

<dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>4.3.20.RELEASE</version></dependency>

导入springmvc.xml配置文件
web.xml中初始化配置文件

<servlet><servlet-name>oa</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>oa</servlet-name><url-pattern>/</url-pattern></servlet-mapping>

创建controller进行开发者认证

//1.按字典顺序排序TreeSet<String> set = new TreeSet<>();set.add(TOKEN);set.add(timestamp);set.add(nonce);//2.将三个参数拼接成一个字符串StringBuilder builder = new StringBuilder();for(String str:set){builder.append(str);}//3.通过SHA1加密String str = SHA1.encode(builder.toString());if(str.equals(signature)){System.out.println("接入成功");return echostr;}else {System.out.println("接入失败");return "failed";}

返回字符串需加@ResponseBody注解

再次点击提交,提交成功。

三、利用测试号进行测试
点击开发者工具,选择开发平台测试账号,微信扫码即可。

四、接收并回复用户发送的消息

//接收用户发送过来的信息(xml)@PostMapping(value="auth",produces = "text/xml;charset=utf-8")@ResponseBodypublic String receive(@RequestBody String strXml) throws DocumentException {System.out.println(strXml);//1.接收消息//sax  dom  dom4j//把xml数据变成document对象Document document = DocumentHelper.parseText(strXml);//得到根节点Element rootElement = document.getRootElement();//得到节点对象Element toUserNameElement = rootElement.element("ToUserName");Element fromUserNameElement = rootElement.element("FromUserName");//得到消息类型对象Element msgTypeElement = rootElement.element("MsgType");//得到节点中的数据String userNameText = toUserNameElement.getText();String fromUserNameElementText = fromUserNameElement.getText();String msgTypeElementText = msgTypeElement.getText();if("event".equals(msgTypeElementText)){Element eventElement = rootElement.element("Event");String eventType = eventElement.getText();if("subscribe".equals(eventType)){//关注return newsMessage(fromUserNameElementText,userNameText);}else {//取消关注System.out.println("取消了关注");return null;}}//2.回复消息Element contentElement = rootElement.element("Content");String contentElementText = contentElement.getText();String responseText = contentElementText+"hh";StringBuilder builder = new StringBuilder();builder.append("<xml>");builder.append("<ToUserName><![CDATA["+fromUserNameElementText+"]]></ToUserName>");builder.append("<FromUserName><![CDATA["+userNameText+"]]></FromUserName>");builder.append("<CreateTime>"+System.currentTimeMillis()+"</CreateTime>");builder.append("<MsgType><![CDATA[text]]></MsgType>");builder.append("<Content><![CDATA["+responseText+"]]></Content>");builder.append("</xml>");System.out.println(builder.toString());return builder.toString();

更多推荐

微信公众号开发基础入门

本文发布于:2024-02-06 09:56:30,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1748135.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:入门   公众   基础

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!