JEECG微信专题① - 微信平台功能设计概要

1、软件设计目标

该软件设计的初衷是为了当用户微信公众账号开启开发模式时,编辑模式下微信公众平台不能使用缺陷,使微信公众平台与企业业务系统更紧密的结合。

2、软件功能

2.1、菜单管理功能:允许用户自定义微信菜单,同时可以关联点击菜单是触发的消息。

     设计这个菜单功能的时候遇到一个问题就是当用户点击菜单时,发送的消息数据来自企业业务系统,而不是平台预先定义好模板。例如:当用户点击“话费查询”菜单,怎么获得移动的业务系统数据?因为每当用户点击微信菜单的时微信平台会向系统接口中推送一条消息,在这条消息中可以获得用户OpenId和菜单key,那么我就可以根据这个key与系统资源文件中的key对比判断用户点击是那个菜单,同然后根据openId查询绑定表找到用户绑定是对应的手机号,然后根据手机号通过接口获得数据。

 

2.2、消息管理:目前仅保存用户对公众账号发送的文本消息和支持回复功能。在回复是用到微信“客服接口”。

    在这个功能关键点:每次对向微信服务器发送消息时,需要从数据库中读取凭证并验证凭证的是否失效(用时间比较的方法),如失效则更新凭证和凭证产生时间。

 

2.3、关注回复:当用户关注微信账号时,发送一条消息。当用户关注时会向接口发送消息,根据事件类型值,调用相应的方法从数据库读取模板

 

2.4、关键字管理:用户定义关键,同时关联相应的消息模板。

2.5、文本管理:支持用户预先定义模板

2.6、图文模板管理:支持用户预先定义图文模板,供系统其他功能使用。

    在开发这个功能遇到问题是:当用户点击这个消息,这个消息的url不是系统内部的一个url,而不是一定的规则的url。例如用户绑定,当用户点击“用户绑定”时触发一个消息,这个消息的连接直接调整到绑定的页面而不是消息的内容。这个时候给我图文模板增加了一个分类:普通图文消息和超链接消息,从解决上面的问题。

2.7、用户绑定:保存用户opnenId和手机号信息。

    开发这个功能的时候遇到问题:怎么取到用户的openId,我开始犯错误是在接口servlet中把openId保存session,然后在保存的方法中从session取值,但是一直没有成功,仔细一想,他们是在不同session中。最后采用的办法,点击菜单触发消息,然后把openId动态添加到消息的url,传入系统中再会写到用户绑定页面中,同用户其他信息一块提交到后台保存。

 

3、移动业务系统接口

     根据事先要求项目不能直接访问移动的业务系统对外提供的socket接口,所以写了一个接口服务,负责与移动的业务系统对接,这个接口服务器放在一个具有双网卡的服务器上一,本系统通过http接口与接口服务通讯。

 

猜你喜欢

转载自jeecg.iteye.com/blog/2065893