微信公众号开发---使用开源组件开发进行接口验证
Posted 你所能做的,就是不断的学习
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信公众号开发---使用开源组件开发进行接口验证相关的知识,希望对你有一定的参考价值。
在经过一系列的微信开发后,关于微信的开发确实内容很庞大,一些基础的组件都要有我们开发者进行编写,有没有简单的方法呢?
哈哈----在开源社区中无意中找到了关于微信全套开发的sdk,里面包含了微信开发中所有的功能实现,作者是binarywang,也是一直在更新,社区还是挺活跃的。
献上 github地址: https://github.com/Wechat-Group/weixin-java-tools !里面有一些开发的文档,大大便利我们的开发--
接口配置(无需我们的工具类,一些验证已经帮我们进行了实现):
1.导入pom依赖:
<!-- 微信开发Java SDK公共模块 -->
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-common</artifactId>
<version>3.1.0</version>
</dependency>
<!-- 微信公众号Java SDK-->
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-mp</artifactId>
<version>3.1.0</version>
</dependency>
2,微信验证(只需要创建 WxMpInMemoryConfigStorage--存放配置信息,和 WxMpServiceImpl 两对象就可完成验证):
(1) 我使用spring 将这两个类进行管理,代码直接注入就可以
<!-- 微信相关组件交给spring 管理 --> <!-- 微信基础配置,存放token 秘钥,我们也可以直接将后台微信配置放进去 --> <bean id="config" class="me.chanjar.weixin.mp.api.WxMpInMemoryConfigStorage"></bean> <!-- 功能实现的方法 --> <bean id="wxMpService" class="me.chanjar.weixin.mp.api.impl.WxMpServiceImpl"></bean>
(2),注入后直接使用
@Autowired private WxMpInMemoryConfigStorage config;//微信后台配置 @Autowired private WxMpService wxMpService;//实现方法 /* * 该方法与微信后台配置的url进行对接,是get的请求,是微信开发的第一步 * 微信后台会给我们接口传入signature,timestamp,nonce,echostr * 进行sha1 加密与signature比较,TRUE 则返回echostr给微信 * author:cys */ @RequestMapping(value="/wxopen" ,method=RequestMethod.GET) public void wxopen(HttpServletResponse response,String signature,String timestamp, String nonce,String echostr) throws IOException { response.setContentType("text/html;charset=utf-8"); //用来存放我们后台配置的信息 config.setToken("chenyuesong"); wxMpService.setWxMpConfigStorage(config); //此方法对微信的验证进行了封装--我们无需自己实现 wxMpService.checkSignature(timestamp, nonce, signature); @Cleanup//lombok 管理释放资源,类似于try catch finally,用不上可直接去除 PrintWriter writer =response.getWriter(); //验证返回false时候 if (!wxMpService.checkSignature(timestamp, nonce, signature)) { // 消息签名不正确,说明不是公众平台发过来的消息 writer.println("非法请求"); return; } //验证返回true时候,返回微信echostr if (StringUtils.isNotBlank(echostr)) { // 说明是一个仅仅用来验证的请求,回显echostr writer.println(echostr); return; } else { return; } }
以上是关于微信公众号开发---使用开源组件开发进行接口验证的主要内容,如果未能解决你的问题,请参考以下文章
微信开放平台 公众号第三方平台开发 教程四 代公众号调用接口的SDK和demo
微信公众号开发---使用开源组件开发公众号OAuth2.0网页授权授权登录
使用NodeJs作为微信公众号后台服务器 使用node回复公众号消息 node验证公众号tonken node微信公众号开发