對接企業微信上架第三方應用_JAVA

一.創建應用

登錄服務商平臺->應用管理->應用開發->網頁應用->創建應用

具體地址https://open.work.weixin.qq.com/wwopen/developer#/sass/apps/list

 

1.配置基礎信息

3.配置開發信息

注:除了圈紅線的url,其他的都能從旁邊的詳細解釋看的懂。當然這兩個url可以創建完成之後再進行更改調試。

點擊創建完成。

 

二.編輯回調配置

  • 這裏需要我們正確的響應微信服務調用,微信會通過下面我們配置的兩個url進行傳參調用,我們需要根據TOKEN、ENCODING_AES_KEY、CORP_ID等參數(CORP_ID可以在服務商信息找到)生成加、解密的接口的實例,再將從微信發起的請求中獲取對應的參數,就可以解析出相應的信息。

微信開發官方指南https://work.weixin.qq.com/api/doc/90001/90143/91116

  •  編寫接口響應回調

        入參如下圖所示

需要引用到的jar下載地址

https://work.weixin.qq.com/api/doc/90001/90145/90446#java庫

 

實現代碼參考:

@ResponseBody
@RequestMapping("wx/callback")
    public String callback(HttpServletRequest request, HttpServletResponse response) {

        String resData = "";
        try {
            boolean getFlag = GET.equals(request.getMethod().toLowerCase());
            String signature = request.getParameter(MSG_SIGNATURE);
            String timestamp = request.getParameter(TIMESTAMP);
            String nonce = request.getParameter(NONCE);
            String sVerifyEchoStr = request.getParameter(ECHOSTR);

            //數據回調URL
            if (getFlag) {
                resData = this.verifyUrl(signature, timestamp, nonce, sVerifyEchoStr);
                return resData;
}


private String verifyUrl(String signature, String timestamp, String nonce, String sVerifyEchoStr) throws Exception {
        WXBizMsgCrypt wxCpt = new WXBizMsgCrypt(TOKEN, ENCODING_AES_KEY, CORP_ID);
        logger.info("------開始進行數據回調URL--------");
        logger.info(String.format("msg_signature=%s&timestamp=%s&nonce=%s&echostr=%s",
                signature, timestamp, nonce, sVerifyEchoStr));
        //解密
        String resData = wxCpt.VerifyURL(signature, timestamp,
                nonce, sVerifyEchoStr);
        logger.info("-------數據回調URL結束------------返回的字符串: " + resData);
        return resData;
    }

 

點擊申請校驗會出現正確響應該次請求的日誌

 

 

注:

1.如出現異常java.security.InvalidKeyException:illegal Key Size

2.配置指令回調url、數據回調url這兩個是一個請求。

(這裏保留疑問,因爲看官方文檔我的理解是指令回調url對應POST請求接口,但是在這裏申請驗證時候接收到的請求參數和數據回調url是一樣的,包括請求方式,返回值)

 

三.安裝測試

點擊安裝測試->添加測試企業

這裏會提示必須響應並處理“ 授權成功的通知”的回調消息

 

四.設置授權

①官方文檔https://work.weixin.qq.com/api/doc/90001/90143/90600

 

  • 代碼實現

整體邏輯如下:

1.接收回調接口推送suite_ticket並進行存儲及更新(每十分鐘推送一次)

此次調用的接口還是/wx/callback,請求方式爲POST,請求包體xml參數需要從body中獲取,再解析xml可以判斷是推送suite_ticket事件,再獲取SuiteTicket標籤中的值,解析成功必須返回success字符串,其他均爲失敗。

 

2.調用獲取第三方應用憑證接口

通過http請求調用,suite_id,suite_secret在應用管理->應用詳情獲取

調用成功返回suite_access_token,這個值需要進行緩存更新

3.調用預授權碼接口

成功返回預授權碼

 

4.調用設置授權配置接口

獲取結果,成功必須返回success字符串,其他均爲失敗。

 

五.掃碼安裝

 可以設置哪些人可以使用,點擊同意就會調用上述請求。然後在工作臺就能打開該應用,會跳轉至之前配置的首頁。

 

注:出現cropid校驗失敗時,要把生成加解密實例的入參cropid換成suitid

 

最後上架到第三方應用時需要一些條件的;

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