微信公众平台开发01

时间:2020-12-18 03:25:21
 

微信公众平台开发01

1 微信公众平台

 

1.1 开发准备

  • 微信公众号服务器只是做了一个中介的作用

微信公众平台开发01

微信公众号服务器和网站的关系

  • 可以使用nat123在内网搭建网站,作为测试开发
  • 可以申请微信公众平台接口测试帐号,前期避免繁琐的账号认证,打开浏览器,这里以IE 为例。输入:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
  • 正式运营时,可以使用新浪云计算SAE Java平台,不用自己购买服务器和管理服务器

1.2 功能

  • 自定义欢迎信息:用户关注我们的微信公众号时,返回自定义欢迎信息
  • 提供位置服务:网站收到用户发送的位置信息,在数据库中保存位置信息, 再根据用户发送的信息在制定的位置范围内搜索,如用户先发送位置信息"兰 州市西固区玉门街什字",再发送"超市",网站收到这个信息,先从数据库中 取得用户位置信息,再根据位置信息和搜索信息,得到用户想要的结果,以微 信的形式返回
  • 提供自定义菜单:如"获取优惠卷","调查问卷"

1.3 代码分析

微信公众平台开发01

主要类的关系

1.3.1 WeixinSerciceImpl代码分析

weixinConfirm:微信确认请求是微信公众平台向网站发送消息的入口,分为GET和POST两种 方式,GET用于验证网站真实性,POST用于向网站发送信息和事件推送。目前发送信息处理了 TEXT类型的消息,事件推送处理了自定义菜单点击和模板消息推送

//微信确认请求
public String weixinConfirm(HttpServletRequest request,HttpServletResponse response)throws Exception
      |
      |
      v
/**
 * 处理微信发来的POST请求
 * 
 * @param request
 * @return
 */
private String processRequest(HttpServletRequest request)
      |
      |
      v
/**
 * 根据属性名到属性配置文件内找对应的xml文件进行返回。
 * @param request
 * @param content
 * @param requestMap
 * @return
 */
private String responseMessage(HttpServletRequest request,String content,Map<String, String> requestMap)
      |
      |
      v
/**
 * 返回文本信息
 * @param requestMap
 * @param request
 * @param content
 * @return
 */
private String responseTxtMsg(Map<String, String> requestMap,HttpServletRequest request,String content)

1.3.2 WeixinUtil代码分析

httpsRequest:发起https请求并获取结果,分为GET和POST两种方式。用于菜单创建(POST), 获取 accesstoken的接口,获取网页授权认证, 推送模板信息,获取用户信息,获取微信IP地址 列表,网页授权获取用户信息,长链接转换成短链接

/**
 * 发起https请求并获取结果
 * @param requestUrl 请求地址
 * @param requestMethod 请求方式(GET、POST)
 * @param outputStr 提交的数据
 * @return JSONObject(通过JSONObject.get(key)的方式获取json对象的属性值)
 */
public static JSONObject httpsRequest(String requestUrl, String requestMethod, String outputStr) 

Date: 2015-03-06 10:46:18

Author:

Org version 7.8.06 with Emacs version 23

Validate XHTML 1.0