Java 微信公眾號開發相關總結
個人微信公眾號相關的接口權限有限,不過用于個人學習體驗一下足夠了,如圖:
然后進入微信公眾后臺,點擊基本配置,按照如下操作(點擊啟用,相當于設置請求url為自己后臺的):
設置服務器URL、令牌、消息加解密密鑰(這個可以使用自動生成的):
服務器URL至關重要,我在這里設置為我自己的域名http://www.youcongtech.com/wx-api。
這個wx-api就是后面對應的接口(比如我發送某個關鍵字,返回對應的信息)。token可以設置復雜點。
效果圖上面的演示效果來自本人微信公眾號,并長期運行穩定沒有任何問題。
后臺路由代碼package com.blog.springboot.controller;import java.io.IOException;import java.io.PrintWriter;import java.io.UnsupportedEncodingException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import com.blog.springboot.wx.service.WxService;import com.blog.springboot.wx.util.SignUtil;import io.swagger.annotations.Api;import io.swagger.annotations.ApiOperation;/** * 微信公眾號API * @author youcong * @date 2019-6-02 */@RestController@RequestMapping('/wx_public_api')@Api(tags = { '微信公眾號api' }, description = '微信公眾號api')public class WxPublicApiController extends AbstractController{@Autowiredprivate WxService wxService; /*** 微信公眾平臺服務器配置驗證* @param request* @param response*/ @GetMapping @ApiOperation('微信公眾平臺服務器配置驗證') public void validate(HttpServletRequest request, HttpServletResponse response) {// 微信加密簽名,signature結合了開發者填寫的token參數和請求中的timestamp參數、nonce參數。String signature = request.getParameter('signature');// 時間戳String timestamp = request.getParameter('timestamp');// 隨機數String nonce = request.getParameter('nonce');// 隨機字符串String echostr = request.getParameter('echostr');PrintWriter out = null;try { out = response.getWriter(); // 通過檢驗signature對請求進行校驗,若校驗成功則原樣返回echostr,否則接入失敗 if (SignUtil.checkSignature(signature, timestamp, nonce)) {out.print(echostr); }} catch (IOException e) { e.printStackTrace(); logger.error(e.getMessage()); } finally { out.close(); out = null;} } /** * 關注推送消息 * @param request * @param response */ @PostMapping @ApiOperation('關注推送消息') public void about(HttpServletRequest request, HttpServletResponse response) {try { request.setCharacterEncoding('UTF-8');} catch (UnsupportedEncodingException e) { e.printStackTrace(); logger.error(e.getMessage(),e);}response.setContentType('text/html;charset=UTF-8');// 調用核心業務類接收消息、處理消息String respMessage = wxService.newMessageRequest(request);// 響應消息PrintWriter out = null;try { out = response.getWriter(); out.print(respMessage);} catch (IOException e) { e.printStackTrace(); logger.error(e.getMessage(),e);} finally { out.close(); out = null;} }}完整代碼
完整代碼已經放到我個人的GitHub倉庫,地址為:https://github.com/developers-youcong/blog-springcloud-pro/tree/master/blog-wx-client
這是其中的子項目,功能主要是微信公眾平臺。
鑒于我個人主要維護的開源項目尚未公開,有很多隱私信息等,所以將其中的微信公眾號模塊抽取出來放到我的新開源項目blog-springcloud-pro中(此項目目前處于開發中)。
微信公眾號模塊基本上換上自己的token、appid、appsecret并部署到線上就基本可用了。有任何問題,可留言。
以上就是Java 微信公眾號開發相關總結的詳細內容,更多關于Java 微信公眾號開發的資料請關注好吧啦網其它相關文章!
相關文章: