微信公众号开发--善忘影视(二)
打开开发者模式后,需要一个后台接收微信过来的请求, 比如搜索框输入电影名字, 能返回相关电影列表信息 。
如上我搜索老九门 返回了搜索结果点击对应列表信息,就能查看影视节目的详情信息了。
为了简单, 不需要自己从零开始实现微信上的接口了, 比起最早什么都要自己实现来,现在开源的微信框架都挺成熟了。
我这里用的是http://git.oschina.net/lisenhui/mpsdk4j这个开源的实现, 可以节约很多时间,当然, oschina上有很多,选一个自己觉得可以的就行了, 都大同小异了。我使用的是ssm框架结构,可以看道文档里面有关于springmvc使用说明,如下图,
现在已经是最新版本的,我用版本是早点版本 ,代码可能有点区别,用实际的代码就好了。
在我的是实现类里面实现引用属性值,springmvc 配置文件中初始化了属性文件
#微信账号信息 在属性文件里面配置
weixin.appId=xxx
weixin.appSecret=xxxxx
weixin.token=xxx
weixin.aesKey=xxxxx
@Controller @RequestMapping("/weixin") public class WeiXinController extends WxSpringSupport {@Value("${weixin.appId}") private String appId; @Value("${weixin.appSecret}") private String appSecret; @Value("${weixin.token}") private String token; @Value("${weixin.aesKey}") private String aesKey;</pre>
然后实现了消息处理器
以下具体的实现/** * 默认的微信消息处理器 * * @author 凡梦星尘(elkan1788@gmail.com) * @since 2014/12/05 * @version 1.0.0 */ public class WxDefaultHandler implements WxHandler {private static final Logger log = LoggerFactory
.getLogger(WxDefaultHandler.class);
// 微信接入验证 if ("GET".equals(method)) { try { reply = this.wxBase.check(); if (reply.isEmpty()) { reply = "error"; log.error("微信接入验证URL时失败!!!"); log.error("微信服务器echoStr值: {}", this.wxBase.getEchostr()); log.error("SHA1签名echoStr值: {}", reply); } } catch (AesException e) { log.error("微信接入验证URL时出现异常!!!"); log.error(e.getLocalizedMessage(), e); } return reply; }// 信息互动
try {
reply = this.wxBase.handler();
} catch (Exception e) {
log.error(“解析微信消息时出现异常!!!”);
log.error(e.getLocalizedMessage(), e);
}
微信认证就是第一次微信后台启用的时候,需要验证代码是否正确。这里需要注意的是,因为使用AES加密,需要下载jce的jar包替换jdk目录下面的文件
使用AES解密, 需要再jre下面添加相关的jce文件,不然会出现错误
/**
* 提供接收和推送给公众平台消息的加解密接口(UTF8编码的字符串).
* <ol>
* <li>第三方回复加密消息给公众平台</li>
* <li>第三方收到公众平台发送的消息,验证消息的安全性,并对消息进行解密。</li>
* </ol>
* 说明:异常java.security.InvalidKeyException:illegal Key Size的解决方案
* <ol>
* <li>在官方网站下载JCE无限制权限策略文件(JDK7的下载地址:
* http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html</li>
* <li>下载后解压,可以看到localpolicy.jar和USexport_policy.jar以及readme.txt</li>
* <li>如果安装了JRE,将两个jar文件放到%JRE_HOME%\lib\security目录下覆盖原来的文件</li>
* <li>如果安装了JDK,将两个jar文件放到%JDK_HOME%\jre\lib\security目录下覆盖原来文件</li>
* </ol>
*/最后直接启用就好了,如果返回成功,微信后台就会显示启用成功的状态
就类似我下面的状态