微信公众平台开发简介

一、什么是微信公众账号
如下面图所示,展示了一个微信公众账号。






二、开发原理
  
我们所要做的主要工作为:解码 -> 实现自己的业务 -> 编码后返回结果。很简单的一个流程。

三、账号申请与配置
账号申请
申请不多说了。地址: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<String, String> 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值