From df126023f089c99a42a1bb196a57fa002b25b2f6 Mon Sep 17 00:00:00 2001 From: "LAPTOP-28AB6J60\\simdon" Date: Mon, 8 Aug 2022 10:02:23 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E6=96=87=E7=AB=A0?= =?UTF-8?q?=E4=BB=8E=E5=85=AC=E8=B4=A6=E5=8F=B7=E5=B1=95=E7=A4=BA=E5=90=8E?= =?UTF-8?q?=E5=88=86=E4=BA=AB=E5=88=B0=E6=9C=8B=E5=8F=8B=E5=9C=88=E5=92=8C?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E5=A5=BD=E5=8F=8B=E5=BE=AE=E4=BF=A1=E7=BE=A4?= =?UTF-8?q?=E4=B8=8D=E5=B1=95=E7=A4=BA=E5=B0=81=E9=9D=A2=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E5=92=8C=E6=A0=87=E9=A2=98=E6=97=A0=E6=B3=95=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E9=97=AE=E9=A2=98=20=E5=8F=82=E8=80=83=E8=B5=84?= =?UTF-8?q?=E6=96=99=EF=BC=9Ahttps://developers.weixin.qq.com/doc/offiacco?= =?UTF-8?q?unt/OA=5FWeb=5FApps/JS-SDK.html?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/zyd/blog/business/consts/WxConst.java | 19 +++++ .../blog/util/GetAccessTokenComponent.java | 52 ++++++++++++++ .../zyd/blog/util/JsApiTicketComponent.java | 55 +++++++++++++++ .../blog/controller/RestApiController.java | 64 +++++++++++++++++ .../src/main/resources/templates/article.ftl | 70 +++++++++++++++++++ 5 files changed, 260 insertions(+) create mode 100644 blog-core/src/main/java/com/zyd/blog/business/consts/WxConst.java create mode 100644 blog-core/src/main/java/com/zyd/blog/util/GetAccessTokenComponent.java create mode 100644 blog-core/src/main/java/com/zyd/blog/util/JsApiTicketComponent.java diff --git a/blog-core/src/main/java/com/zyd/blog/business/consts/WxConst.java b/blog-core/src/main/java/com/zyd/blog/business/consts/WxConst.java new file mode 100644 index 0000000..41514c3 --- /dev/null +++ b/blog-core/src/main/java/com/zyd/blog/business/consts/WxConst.java @@ -0,0 +1,19 @@ +package com.zyd.blog.business.consts; + +/** + * @author: gelin + * @phone:17788767989 + * @Createdate: 2022/8/4 13:55 + */ +public class WxConst { + + /** + * 公众号 secret + */ + public static final String APP_SECRET = ""; + + /** + * 公众号 app_id + */ + public static final String APP_ID = ""; +} diff --git a/blog-core/src/main/java/com/zyd/blog/util/GetAccessTokenComponent.java b/blog-core/src/main/java/com/zyd/blog/util/GetAccessTokenComponent.java new file mode 100644 index 0000000..b1a571b --- /dev/null +++ b/blog-core/src/main/java/com/zyd/blog/util/GetAccessTokenComponent.java @@ -0,0 +1,52 @@ +package com.zyd.blog.util; + +import com.alibaba.fastjson.JSONObject; +import org.apache.http.client.HttpClient; +import org.apache.http.client.ResponseHandler; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.BasicResponseHandler; +import org.apache.http.impl.client.DefaultHttpClient; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author: gelin + * @phone:17788767989 + * @Createdate: 2022/8/4 13:58 + */ +@Component +public class GetAccessTokenComponent { + + /** + * 网页授权接口 + */ + public final String AccessTokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=SECRET"; + + public Map getAccessToken(String appId, String AppSecret) { + Map result = new HashMap<>(); + + String requestUrl = AccessTokenUrl.replace("APPID", appId).replace("SECRET", AppSecret); + HttpClient client = null; + + try { + client = new DefaultHttpClient(); + HttpGet httpget = new HttpGet(requestUrl); + ResponseHandler responseHandler = new BasicResponseHandler(); + String response = client.execute(httpget, responseHandler); + JSONObject OpenidJSON = JSONObject.parseObject(response); + + String accessToken = String.valueOf(OpenidJSON.get("access_token")); + // 秒 + Integer expiresIn = (Integer) OpenidJSON.get("expires_in"); + + result.put("accessToken", accessToken); + } catch (Exception e) { + e.printStackTrace(); + } finally { + client.getConnectionManager().shutdown(); + } + return result; + } +} diff --git a/blog-core/src/main/java/com/zyd/blog/util/JsApiTicketComponent.java b/blog-core/src/main/java/com/zyd/blog/util/JsApiTicketComponent.java new file mode 100644 index 0000000..1e43982 --- /dev/null +++ b/blog-core/src/main/java/com/zyd/blog/util/JsApiTicketComponent.java @@ -0,0 +1,55 @@ +package com.zyd.blog.util; + +import com.alibaba.fastjson.JSONObject; +import org.apache.http.client.HttpClient; +import org.apache.http.client.ResponseHandler; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.BasicResponseHandler; +import org.apache.http.impl.client.DefaultHttpClient; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author: gelin + * @phone:17788767989 + * @Createdate: 2022/8/4 14:00 + */ +@Component +public class JsApiTicketComponent { + + /** + * 网页授权接口 + */ + public final String AccessTokenUrl = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi"; + + public Map JsapiTicket(String accessToken) { + Map result = new HashMap<>(); + + // 缓存过期,重新生成 + String requestUrl = AccessTokenUrl.replace("ACCESS_TOKEN", accessToken); + HttpClient client = null; + + try { + client = new DefaultHttpClient(); + HttpGet httpget = new HttpGet(requestUrl); + ResponseHandler responseHandler = new BasicResponseHandler(); + String response = client.execute(httpget, responseHandler); + JSONObject openidJSON = JSONObject.parseObject(response); + String errcode = String.valueOf(openidJSON.get("errcode")); + String errmsg = String.valueOf(openidJSON.get("errmsg")); + String ticket = String.valueOf(openidJSON.get("ticket")); + Integer expiresIn = (Integer) openidJSON.get("expires_in"); + + result.put("errcode", errcode); + result.put("errmsg", errmsg); + result.put("ticket", ticket); + } catch (Exception e) { + e.printStackTrace(); + } finally { + client.getConnectionManager().shutdown(); + } + return result; + } +} diff --git a/blog-web/src/main/java/com/zyd/blog/controller/RestApiController.java b/blog-web/src/main/java/com/zyd/blog/controller/RestApiController.java index 6a5c2a1..9c953e1 100644 --- a/blog-web/src/main/java/com/zyd/blog/controller/RestApiController.java +++ b/blog-web/src/main/java/com/zyd/blog/controller/RestApiController.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.zyd.blog.business.annotation.BussinessLog; +import com.zyd.blog.business.consts.WxConst; import com.zyd.blog.business.entity.Article; import com.zyd.blog.business.entity.BizAdBo; import com.zyd.blog.business.entity.Comment; @@ -16,9 +17,12 @@ import com.zyd.blog.framework.exception.ZhydArticleException; import com.zyd.blog.framework.exception.ZhydCommentException; import com.zyd.blog.framework.exception.ZhydLinkException; import com.zyd.blog.framework.object.ResponseVO; +import com.zyd.blog.util.GetAccessTokenComponent; +import com.zyd.blog.util.JsApiTicketComponent; import com.zyd.blog.util.RestClientUtil; import com.zyd.blog.util.ResultUtil; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.codec.digest.DigestUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; @@ -26,9 +30,11 @@ import org.springframework.validation.BindingResult; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.net.URLDecoder; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.UUID; import java.util.function.Function; import java.util.stream.Collectors; @@ -56,6 +62,10 @@ public class RestApiController { private SysNoticeService noticeService; @Autowired private BizAdService adService; + @Autowired + private GetAccessTokenComponent getAccessTokenComponent; + @Autowired + private JsApiTicketComponent jsApiTicketComponent; @PostMapping("/autoLink") @BussinessLog(value = "自助申请友链", platform = PlatformEnum.WEB) @@ -188,4 +198,58 @@ public class RestApiController { return ResultUtil.success(res); } + @PostMapping("/jssdkGetSignature") + @BussinessLog(value = "获取jssdk签名", platform = PlatformEnum.WEB, save = false) + public ResponseVO jssdkGetSignature(String url) { + + if (StringUtils.isEmpty(url)) { + return ResultUtil.error("页面地址为空"); + } + + String urlN = ""; + try { + urlN = URLDecoder.decode(url, "UTF-8"); + } catch (Exception e) { + e.printStackTrace(); + } + + Map tokenMap = getAccessTokenComponent.getAccessToken(WxConst.APP_ID, WxConst.APP_SECRET); + String accessToken = tokenMap.get("accessToken"); + if (StringUtils.isEmpty(accessToken)) { + log.error("accessToken is null"); + return ResultUtil.error("accessToken is empty"); + } + + Map ticketMap = jsApiTicketComponent.JsapiTicket(accessToken); + String ticket = ticketMap.get("ticket"); + if (StringUtils.isEmpty(ticket)) { + log.error("ticket is null"); + return ResultUtil.error("ticket is empty"); + } + + //随机字符串 + String nonceStr = UUID.randomUUID().toString().replaceAll("-", ""); + //时间戳 微信要求为秒 + Long timestamp = System.currentTimeMillis() / 1000; + //4获取url 根据项目需要获取对应的url地址 + + //5、将参数排序并拼接字符串 此处noncestr不能驼峰大写 按key的ascii顺序 + String str = "jsapi_ticket=" + ticket + "&noncestr=" + nonceStr + "×tamp=" + timestamp + "&url=" + urlN; + + //6、将字符串进行sha1加密 + String signature = DigestUtils.sha1Hex(str); + Map map = new HashMap<>(); + + map.put("appid", WxConst.APP_ID); + map.put("timestamp", timestamp); + map.put("noncestr", nonceStr); + map.put("accessToken", accessToken); + map.put("ticket", ticket); + map.put("signature", signature); + +// log.info("str: {}", str); +// log.info("urlN: {}, map: {}", urlN, JSONUtils.toJSONString(map)); + return ResultUtil.success("jssdkGetSignature获取成功", map); + } + } diff --git a/blog-web/src/main/resources/templates/article.ftl b/blog-web/src/main/resources/templates/article.ftl index 6030525..e29d078 100644 --- a/blog-web/src/main/resources/templates/article.ftl +++ b/blog-web/src/main/resources/templates/article.ftl @@ -266,6 +266,7 @@ <#-- --> + -- Gitee From 099679709d829a61cd4ec27a3916489b4627851c Mon Sep 17 00:00:00 2001 From: "LAPTOP-28AB6J60\\simdon" Date: Mon, 8 Aug 2022 14:07:36 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E5=88=B0AppProperty?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/zyd/blog/business/consts/WxConst.java | 19 ------------------- .../framework/property/AppProperties.java | 10 ++++++++++ .../blog/controller/RestApiController.java | 8 +++++--- .../src/main/resources/application-dev.yml | 4 ++++ docs/docker/.env | 4 ++++ 5 files changed, 23 insertions(+), 22 deletions(-) delete mode 100644 blog-core/src/main/java/com/zyd/blog/business/consts/WxConst.java diff --git a/blog-core/src/main/java/com/zyd/blog/business/consts/WxConst.java b/blog-core/src/main/java/com/zyd/blog/business/consts/WxConst.java deleted file mode 100644 index 41514c3..0000000 --- a/blog-core/src/main/java/com/zyd/blog/business/consts/WxConst.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.zyd.blog.business.consts; - -/** - * @author: gelin - * @phone:17788767989 - * @Createdate: 2022/8/4 13:55 - */ -public class WxConst { - - /** - * 公众号 secret - */ - public static final String APP_SECRET = ""; - - /** - * 公众号 app_id - */ - public static final String APP_ID = ""; -} diff --git a/blog-core/src/main/java/com/zyd/blog/framework/property/AppProperties.java b/blog-core/src/main/java/com/zyd/blog/framework/property/AppProperties.java index 3ab36b4..325f348 100644 --- a/blog-core/src/main/java/com/zyd/blog/framework/property/AppProperties.java +++ b/blog-core/src/main/java/com/zyd/blog/framework/property/AppProperties.java @@ -38,4 +38,14 @@ public class AppProperties { */ private String version; + /** + * 公众号 secret + */ + private String appSecret; + + /** + * 公众号 app_id + */ + private String appId; + } diff --git a/blog-web/src/main/java/com/zyd/blog/controller/RestApiController.java b/blog-web/src/main/java/com/zyd/blog/controller/RestApiController.java index 9c953e1..5e4cdd6 100644 --- a/blog-web/src/main/java/com/zyd/blog/controller/RestApiController.java +++ b/blog-web/src/main/java/com/zyd/blog/controller/RestApiController.java @@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.zyd.blog.business.annotation.BussinessLog; -import com.zyd.blog.business.consts.WxConst; import com.zyd.blog.business.entity.Article; import com.zyd.blog.business.entity.BizAdBo; import com.zyd.blog.business.entity.Comment; @@ -17,6 +16,7 @@ import com.zyd.blog.framework.exception.ZhydArticleException; import com.zyd.blog.framework.exception.ZhydCommentException; import com.zyd.blog.framework.exception.ZhydLinkException; import com.zyd.blog.framework.object.ResponseVO; +import com.zyd.blog.framework.property.AppProperties; import com.zyd.blog.util.GetAccessTokenComponent; import com.zyd.blog.util.JsApiTicketComponent; import com.zyd.blog.util.RestClientUtil; @@ -66,6 +66,8 @@ public class RestApiController { private GetAccessTokenComponent getAccessTokenComponent; @Autowired private JsApiTicketComponent jsApiTicketComponent; + @Autowired + private AppProperties appProperties; @PostMapping("/autoLink") @BussinessLog(value = "自助申请友链", platform = PlatformEnum.WEB) @@ -213,7 +215,7 @@ public class RestApiController { e.printStackTrace(); } - Map tokenMap = getAccessTokenComponent.getAccessToken(WxConst.APP_ID, WxConst.APP_SECRET); + Map tokenMap = getAccessTokenComponent.getAccessToken(appProperties.getAppId(), appProperties.getAppSecret()); String accessToken = tokenMap.get("accessToken"); if (StringUtils.isEmpty(accessToken)) { log.error("accessToken is null"); @@ -240,7 +242,7 @@ public class RestApiController { String signature = DigestUtils.sha1Hex(str); Map map = new HashMap<>(); - map.put("appid", WxConst.APP_ID); + map.put("appid", appProperties.getAppId()); map.put("timestamp", timestamp); map.put("noncestr", nonceStr); map.put("accessToken", accessToken); diff --git a/blog-web/src/main/resources/application-dev.yml b/blog-web/src/main/resources/application-dev.yml index bd73bbb..f58c016 100644 --- a/blog-web/src/main/resources/application-dev.yml +++ b/blog-web/src/main/resources/application-dev.yml @@ -28,4 +28,8 @@ app: # 启用后,项目在启动时会打印数据库(Mysql和Redis)链接信息(包含密码) # 代码请参考 enabledPrintConfig: ${ONEBLOG_APP_ENABLE_PRINT_CONFIG:false} + # 公众号 app_id + appId: ${APP_ID} + # 公众号 secret + appSecret: ${APP_SECRET} ####################################自定义配置########################################## diff --git a/docs/docker/.env b/docs/docker/.env index f7b6087..726afd4 100644 --- a/docs/docker/.env +++ b/docs/docker/.env @@ -47,3 +47,7 @@ ONEBLOG_APP_ENABLE_PRINT_CONFIG=true # 优先级高于 {@link com.zyd.blog.business.annotation.RedisCache#enable()} 注解的配置 # 开发环境建议关闭,线上环境建议打开 ONEBLOG_ENABLE_REDIS_CACHE=true +# 公众号 app_id +APP_ID=xxx +# 公众号 secret +APP_SECRET=xxx -- Gitee From 429abe92979745c53a8070ab25f703834e73bc62 Mon Sep 17 00:00:00 2001 From: "LAPTOP-28AB6J60\\simdon" Date: Mon, 8 Aug 2022 14:47:43 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E5=85=AC=E4=BC=97=E5=8F=B7=E5=8F=B7=E9=85=8D=E7=BD=AE=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=E4=B8=BA=E7=AE=A1=E7=90=86=E5=90=8E=E5=8F=B0=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- blog-admin/src/main/resources/templates/config.ftl | 12 ++++++++++++ .../com/zyd/blog/business/enums/ConfigKeyEnum.java | 8 ++++++++ .../zyd/blog/framework/property/AppProperties.java | 10 ---------- .../com/zyd/blog/controller/RestApiController.java | 13 ++++++++++--- blog-web/src/main/resources/application-dev.yml | 4 ---- docs/docker/.env | 4 ---- 6 files changed, 30 insertions(+), 21 deletions(-) diff --git a/blog-admin/src/main/resources/templates/config.ftl b/blog-admin/src/main/resources/templates/config.ftl index a5cd877..e26ad90 100644 --- a/blog-admin/src/main/resources/templates/config.ftl +++ b/blog-admin/src/main/resources/templates/config.ftl @@ -715,6 +715,18 @@ +
+ +
+ +
+
+
+ +
+ +
+
diff --git a/blog-core/src/main/java/com/zyd/blog/business/enums/ConfigKeyEnum.java b/blog-core/src/main/java/com/zyd/blog/business/enums/ConfigKeyEnum.java index 11b10af..c494044 100644 --- a/blog-core/src/main/java/com/zyd/blog/business/enums/ConfigKeyEnum.java +++ b/blog-core/src/main/java/com/zyd/blog/business/enums/ConfigKeyEnum.java @@ -250,6 +250,14 @@ public enum ConfigKeyEnum { * 启用 Hitokoto(一言)。一言,随机显示一句话的插件,该插件部分时候加载较慢,如果不需要请自行关闭 */ ENABLE_HITOKOTO("enableHitokoto"), + /** + * 微信公众号appId + */ + WX_GZH_APP_ID("wxGzhAppId"), + /** + * 微信公众号AppSecret + */ + WX_GZH_APP_SECRET("wxGzhAppSecret"), ; private final String key; diff --git a/blog-core/src/main/java/com/zyd/blog/framework/property/AppProperties.java b/blog-core/src/main/java/com/zyd/blog/framework/property/AppProperties.java index 325f348..3ab36b4 100644 --- a/blog-core/src/main/java/com/zyd/blog/framework/property/AppProperties.java +++ b/blog-core/src/main/java/com/zyd/blog/framework/property/AppProperties.java @@ -38,14 +38,4 @@ public class AppProperties { */ private String version; - /** - * 公众号 secret - */ - private String appSecret; - - /** - * 公众号 app_id - */ - private String appId; - } diff --git a/blog-web/src/main/java/com/zyd/blog/controller/RestApiController.java b/blog-web/src/main/java/com/zyd/blog/controller/RestApiController.java index 5e4cdd6..1776eed 100644 --- a/blog-web/src/main/java/com/zyd/blog/controller/RestApiController.java +++ b/blog-web/src/main/java/com/zyd/blog/controller/RestApiController.java @@ -9,6 +9,7 @@ import com.zyd.blog.business.entity.BizAdBo; import com.zyd.blog.business.entity.Comment; import com.zyd.blog.business.entity.Link; import com.zyd.blog.business.enums.CommentStatusEnum; +import com.zyd.blog.business.enums.ConfigKeyEnum; import com.zyd.blog.business.enums.PlatformEnum; import com.zyd.blog.business.service.*; import com.zyd.blog.business.vo.CommentConditionVO; @@ -17,6 +18,7 @@ import com.zyd.blog.framework.exception.ZhydCommentException; import com.zyd.blog.framework.exception.ZhydLinkException; import com.zyd.blog.framework.object.ResponseVO; import com.zyd.blog.framework.property.AppProperties; +import com.zyd.blog.persistence.beans.SysConfig; import com.zyd.blog.util.GetAccessTokenComponent; import com.zyd.blog.util.JsApiTicketComponent; import com.zyd.blog.util.RestClientUtil; @@ -67,7 +69,7 @@ public class RestApiController { @Autowired private JsApiTicketComponent jsApiTicketComponent; @Autowired - private AppProperties appProperties; + private SysConfigService sysConfigService; @PostMapping("/autoLink") @BussinessLog(value = "自助申请友链", platform = PlatformEnum.WEB) @@ -215,7 +217,12 @@ public class RestApiController { e.printStackTrace(); } - Map tokenMap = getAccessTokenComponent.getAccessToken(appProperties.getAppId(), appProperties.getAppSecret()); + SysConfig configId = sysConfigService.getByKey(ConfigKeyEnum.WX_GZH_APP_ID.getKey()); + SysConfig configSecret = sysConfigService.getByKey(ConfigKeyEnum.WX_GZH_APP_SECRET.getKey()); + if (StringUtils.isEmpty(configId) || StringUtils.isEmpty(configSecret)) { + return ResultUtil.error("微信公众号appId、AppSecret未配置"); + } + Map tokenMap = getAccessTokenComponent.getAccessToken(configId.getConfigValue(), configSecret.getConfigValue()); String accessToken = tokenMap.get("accessToken"); if (StringUtils.isEmpty(accessToken)) { log.error("accessToken is null"); @@ -242,7 +249,7 @@ public class RestApiController { String signature = DigestUtils.sha1Hex(str); Map map = new HashMap<>(); - map.put("appid", appProperties.getAppId()); + map.put("appid", configId.getConfigValue()); map.put("timestamp", timestamp); map.put("noncestr", nonceStr); map.put("accessToken", accessToken); diff --git a/blog-web/src/main/resources/application-dev.yml b/blog-web/src/main/resources/application-dev.yml index f58c016..bd73bbb 100644 --- a/blog-web/src/main/resources/application-dev.yml +++ b/blog-web/src/main/resources/application-dev.yml @@ -28,8 +28,4 @@ app: # 启用后,项目在启动时会打印数据库(Mysql和Redis)链接信息(包含密码) # 代码请参考 enabledPrintConfig: ${ONEBLOG_APP_ENABLE_PRINT_CONFIG:false} - # 公众号 app_id - appId: ${APP_ID} - # 公众号 secret - appSecret: ${APP_SECRET} ####################################自定义配置########################################## diff --git a/docs/docker/.env b/docs/docker/.env index 726afd4..f7b6087 100644 --- a/docs/docker/.env +++ b/docs/docker/.env @@ -47,7 +47,3 @@ ONEBLOG_APP_ENABLE_PRINT_CONFIG=true # 优先级高于 {@link com.zyd.blog.business.annotation.RedisCache#enable()} 注解的配置 # 开发环境建议关闭,线上环境建议打开 ONEBLOG_ENABLE_REDIS_CACHE=true -# 公众号 app_id -APP_ID=xxx -# 公众号 secret -APP_SECRET=xxx -- Gitee