項目結構
項目結構
WeixinApiController
WeixinApiController
繼承 ApiController
,所有使用 Api 的 controller 都需要繼承此類。
目前沒有使用 jfinal-weixin 接口,只是簡單地跳轉到主頁。
package com.nancarp.controller;
import com.jfinal.weixin.sdk.api.ApiConfig;
import com.jfinal.weixin.sdk.jfinal.ApiController;
import com.nancarp.utils.WeixinUtil;
public class WeixinApiController extends ApiController {
/**
* 如果要支持多公眾賬號,只需要在此返回各個公眾號對應的 ApiConfig 對象即可 可以通過在請求 url 中掛參數來動態從數據庫中獲取
* ApiConfig 屬性值
*/
@Override
public ApiConfig getApiConfig() {
return WeixinUtil.getApiConfig();
}
// 主頁
public void index(){
render("index.html");
}
}
Constants
Constants
類保存項目中用到的常量
package com.nancarp.utils;
import com.jfinal.kit.PropKit;
public class Constants {
// 獲取域名
public static String host = PropKit.get("host");
}
WeixinConfig 增加路由
@Override
public void configRoute(Routes me) {
// HelloWorld 路由
me.add("/hello",HelloWorldController.class);
// 接收用戶消息和發送消息
me.add("/msg", WeixinMsgController.class);
// 操作微信接口
me.add("/api", WeixinApiController.class,"/api");
}
修改 WeixinMsgController
url
要以 http://
或 https://
開頭,否則微信返回的信息只是單純的文本。
@Override
protected void processInTextMsg(InTextMsg inTextMsg) {
// 文本內容
String msgContent = inTextMsg.getContent().trim();
// 回復主頁鏈接
if ("1".equals(msgContent) || "主頁".equals(msgContent)){
OutTextMsg outMsg = new OutTextMsg(inTextMsg);
String url = Constants.host + "/api/index";
String urlStr = "<a href=\""+url+"\">點擊跳轉主頁</a>";
outMsg.setContent(urlStr);
render(outMsg);
} else {
// 其它文本消息直接返回原值
OutTextMsg outMsg = new OutTextMsg(inTextMsg);
outMsg.setContent("\t文本消息已成功接收,內容為: " + inTextMsg.getContent());
render(outMsg);
}
}
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>主頁</title>
</head>
<body>
<h1>歡迎來到主頁</h1>
</body>
</html>
啟動項目
不出意外,將會得到如下結果:
回復消息
主頁
源碼地址
JFinal Weixin 學習筆記(6)-- 獲取微信接口調用憑據
JFinal Weixin 學習筆記(1)-- 目錄