微信公众号开发---使用开源组件开发进行接口验证

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网页授权授权登录

微信公众号开发

微信公众号开发笔记1(nodejs开发的)

使用NodeJs作为微信公众号后台服务器 使用node回复公众号消息 node验证公众号tonken node微信公众号开发