企業微信開發(1)——接入企業微信

準備工作

首先得註冊個企業微信

其次下載一個加解密的包,免得自己封裝
https://work.weixin.qq.com/api/doc#10128/java%E5%BA%93

具體使用方法:下載解壓後,將com文件夾拷貝到src下,然後將lib下的jar包拷貝到咱們web工程的WEB-INF/lib下就行了。

創建應用

登錄企業微信,點擊【企業應用】-【創建應用】,輸入應用logo、應用名稱,選擇部門/成員後點擊【創建應用】。

設置接收微信消息的開發者服務器

點擊剛剛創建的應用,點擊【接收消息】-【設置API接收】,在URL處填寫我方的地址,例如:

http://xx.xx.xx.xx:8080/XXproject/XXServlet,表示IP地址xx.xx.xx.xx的8080端口上的XXproject項目的XXSerlvet負責接收微信發送的消息。

然後點擊Token和EncodingAESKey後的隨機獲取,將這兩個參數記錄下來。

然後消息類型都選上,點擊【保存】,此時提示”回調URL校驗失敗”,所以需要在剛剛自己的Servlet上處理微信發過來的消息並按規則進行回覆,這樣微信才認可。

驗證URL

首先封裝一個常量類,保存相關參數,因爲是企業微信Enterprise Wechat,此處簡寫爲Wxep,此處爲了安全就不具體寫參數了

    package com.easy.wxep.util;
    /**
     * 企業微信常量
     * @author easypanda
     * @since 2018-04-21
     */
    public class WxepConstants {
        //API接收消息中的Token
        public final static String Token="";
        //API接收消息中的EncodingAESKey
        public final static String EncodingAESKey="";
        //企業ID
        public final static String CorpId="";
        //應用憑證密鑰
        public final static String CorpSecret="";
    }

第二,在Servlet中對微信發過來的消息處理,注意加解密使用之前導入的jar包封裝的接口即可。此處我用的是SpringMVC接收消息,在Servlet中代碼一樣即可。

    /**
     * 接收企業微信api消息
     * @throws IOException 
     */
    @RequestMapping("/public_wxapi_message")
    public void public_wxapi_message(HttpServletRequest request, HttpServletResponse response) throws IOException {
        //獲取微信服務器發送過來的四個參數
        //微信加密簽名  
        String msg_signature = request.getParameter("msg_signature");  
        //時間戳  
        String timestamp = request.getParameter("timestamp");  
        //隨機數  
        String nonce = request.getParameter("nonce");  
        //隨機字符串  
        String echostr = request.getParameter("echostr");  


        //驗證輸入後返回消息給微信服務器
        PrintWriter out = response.getWriter();  
        // 通過檢驗msg_signature對請求進行校驗,若校驗成功則原樣返回echostr,表示接入成功,否則接入失敗  
        String result = null;  
        try {
            WXBizMsgCrypt wxcpt = new WXBizMsgCrypt(WxepConstants.Token, WxepConstants.EncodingAESKey, WxepConstants.CorpId);  
            result = wxcpt.VerifyURL(msg_signature, timestamp, nonce, echostr);  
        } catch (Exception e) {  
            e.printStackTrace();    
        }  
        if (result == null) {  
            result = WxepConstants.Token;  
        }  
        out.print(result);  
        out.close();  
        out = null;  
    }

此時再點擊【保存】則Eclipse異常信息:Illegal key size

此時可參考企業微信API提出的方案:

異常java.security.InvalidKeyException:illegal Key Size的解決方案:在官方網站下載JCE無限制權限策略文件(請到官網下載對應的版本, 例如JDK7的下載地址:http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html ):下載後解壓,可以看到local_policy.jar和US_export_policy.jar以及readme.txt。
如果安裝了JRE,將兩個jar文件放到%JRE_HOME% \lib\security目錄下覆蓋原來的文件,如果安裝了JDK,將兩個jar文件放到%JDK_HOME%\jre\lib\security目錄下覆蓋原來文件。

此處我使用的JDK8對應下載地址http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

驗證

重啓Tomcat後再次點擊【保存】,提示”保存成功”,表示微信服務器已認可我們配置的服務器。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章