微信公眾號開發(3)---使用開源組件開發進行接口驗證
在經過一系列的微信開發後,關於微信的開發確實內容很龐大,一些基礎的組件都要有我們開發者進行編寫,有沒有簡單的方法呢?
哈哈----在開源社區中無意中找到了關於微信全套開發的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; } }
微信公眾號開發(3)---使用開源組件開發進行接口驗證