一.創建應用
登錄服務商平臺->應用管理->應用開發->網頁應用->創建應用
具體地址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×tamp=%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
最後上架到第三方應用時需要一些條件的;