微信公众平台开发简介
程序开发
2023-09-02 19:03:22
一、什么是微信公众账号
如下面图所示,展示了一个微信公众账号。
二、开发原理 我们所要做的主要工作为:解码 -> 实现自己的业务 -> 编码后返回结果。很简单的一个流程。
三、账号申请与配置 账号申请 申请不多说了。地址:https://mp.weixin.qq.com 配置 主要配置三个信息:URL、Token、EncodingAESKey。 URL :微信服务器收到消息将会推送到此URL Token:任意填写,用于验证消息是否来自微信服务器 EncodingAESKey:用作消息体加解密密钥
四、开发一个简单的程序
get:微信服务器会先get消息进行确认。 加密/校验流程如下: 1. 将token、timestamp、nonce三个参数进行字典序排序 2. 将三个参数字符串拼接成一个字符串进行sha1加密 3. 开发者获得加密后的字符串可与signature对比,标识 该请求来源于微信 4.成功原样返回参数中的echostr
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String signature = request.getParameter("signature"); String timestamp = request.getParameter("timestamp"); // 时间 String nonce = request.getParameter("nonce"); String echostr = request.getParameter("echostr"); PrintWriter out = response.getWriter(); // 跳过校验,直接返回成功 if (true) { out.print(echostr); } out.close(); out = null; }
post:get确认成功后,post推送用户消息。 根据用户消息处理业务并返回回复消息 /** * 处理微信服务器发来的消息 */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); String respMessage = RequestManager.processRequest(request); // 响应消息 PrintWriter out = response.getWriter(); out.print(respMessage); out.close(); }
public static String processRequest(HttpServletRequest request) { String respMessage = "出错鸟!"; try { Map requestMap = MessageUtil.parseXml(request); //这里解析 String fromUserName = requestMap.get("FromUserName"); String toUserName = requestMap.get("ToUserName"); String msgType = requestMap.get("MsgType"); TextMessage txtMsg = new TextMessage("呵呵!");
txtMsg.setToUserName(fromUserName); txtMsg.setFromUserName(toUserName); txtMsg.setCreateTime(new Date().getTime()); txtMsg.setFuncFlag(0); respMessage = txtMsg.toXml(); //这里转换格式返回给微信服务器 具体做法都很简单 } catch (Exception e) { e.printStackTrace(); } return respMessage; }
开发者文档 更多详细信息可以参考官方文档:http://mp.weixin.qq.com/wiki/index.php
五:最后 主要是把简单流程给大家介绍了一下。希望大家有个基本了解。具体细节可以参考官方开发文档。 大家不要把开发想的太复杂。有好的点子才更重要。 希望多多支持。 有不足之处和不正确的地方希望斧正!
示例微信公众账号:mmcxzs
二、开发原理 我们所要做的主要工作为:解码 -> 实现自己的业务 -> 编码后返回结果。很简单的一个流程。
三、账号申请与配置 账号申请 申请不多说了。地址:https://mp.weixin.qq.com 配置 主要配置三个信息:URL、Token、EncodingAESKey。 URL :微信服务器收到消息将会推送到此URL Token:任意填写,用于验证消息是否来自微信服务器 EncodingAESKey:用作消息体加解密密钥
get:微信服务器会先get消息进行确认。 加密/校验流程如下: 1. 将token、timestamp、nonce三个参数进行字典序排序 2. 将三个参数字符串拼接成一个字符串进行sha1加密 3. 开发者获得加密后的字符串可与signature对比,标识 该请求来源于微信 4.成功原样返回参数中的echostr
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String signature = request.getParameter("signature"); String timestamp = request.getParameter("timestamp"); // 时间 String nonce = request.getParameter("nonce"); String echostr = request.getParameter("echostr"); PrintWriter out = response.getWriter(); // 跳过校验,直接返回成功 if (true) { out.print(echostr); } out.close(); out = null; }
post:get确认成功后,post推送用户消息。 根据用户消息处理业务并返回回复消息 /** * 处理微信服务器发来的消息 */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); String respMessage = RequestManager.processRequest(request); // 响应消息 PrintWriter out = response.getWriter(); out.print(respMessage); out.close(); }
public static String processRequest(HttpServletRequest request) { String respMessage = "出错鸟!"; try { Map
txtMsg.setToUserName(fromUserName); txtMsg.setFromUserName(toUserName); txtMsg.setCreateTime(new Date().getTime()); txtMsg.setFuncFlag(0); respMessage = txtMsg.toXml(); //这里转换格式返回给微信服务器 具体做法都很简单 } catch (Exception e) { e.printStackTrace(); } return respMessage; }
开发者文档 更多详细信息可以参考官方文档:http://mp.weixin.qq.com/wiki/index.php
五:最后 主要是把简单流程给大家介绍了一下。希望大家有个基本了解。具体细节可以参考官方开发文档。 大家不要把开发想的太复杂。有好的点子才更重要。 希望多多支持。 有不足之处和不正确的地方希望斧正!
示例微信公众账号:mmcxzs
标签:
相关文章
-
无相关信息