- item;
+
+ @NoArgsConstructor
+ @Data
+ public static class Item {
+ private Integer idx;
+ private String article_url;
+ }
+ }
+}
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/enums/WxMpApiUrl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/enums/WxMpApiUrl.java
index 8f6cfeea4c..6ecf757549 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/enums/WxMpApiUrl.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/enums/WxMpApiUrl.java
@@ -5,7 +5,10 @@
import me.chanjar.weixin.mp.config.WxMpConfigStorage;
import me.chanjar.weixin.mp.config.WxMpHostConfig;
-import static me.chanjar.weixin.mp.config.WxMpHostConfig.*;
+import static me.chanjar.weixin.mp.config.WxMpHostConfig.API_DEFAULT_HOST_URL;
+import static me.chanjar.weixin.mp.config.WxMpHostConfig.MP_DEFAULT_HOST_URL;
+import static me.chanjar.weixin.mp.config.WxMpHostConfig.OPEN_DEFAULT_HOST_URL;
+import static me.chanjar.weixin.mp.config.WxMpHostConfig.buildUrl;
/**
*
@@ -1374,6 +1377,90 @@ enum Guide implements WxMpApiUrl {
;
+ private final String prefix;
+ private final String path;
+
+ }
+
+ /**
+ * 草稿箱 能力:
+ * 新建草稿
+ * 获取草稿
+ * 删除草稿
+ * 修改草稿
+ * 获取草稿总数
+ * 获取草稿列表
+ * MP端开关(仅内测期间使用)- 上线后废弃,没实现,可以自己去公众号后台开启草稿箱
+ */
+ @AllArgsConstructor
+ @Getter
+ enum Draft implements WxMpApiUrl {
+
+ /**
+ * 新建草稿
+ */
+ ADD_DRAFT(API_DEFAULT_HOST_URL, "/cgi-bin/draft/add"),
+ /**
+ * 修改草稿
+ */
+ UPDATE_DRAFT(API_DEFAULT_HOST_URL, "/cgi-bin/draft/update"),
+ /**
+ * 获取草稿
+ */
+ GET_DRAFT(API_DEFAULT_HOST_URL, "/cgi-bin/draft/get"),
+ /**
+ * 删除草稿
+ */
+ DEL_DRAFT(API_DEFAULT_HOST_URL, "/cgi-bin/draft/delete"),
+ /**
+ * 获取草稿列表
+ */
+ LIST_DRAFT(API_DEFAULT_HOST_URL, "/cgi-bin/draft/batchget"),
+ /**
+ * 获取草稿总数
+ */
+ COUNT_DRAFT(API_DEFAULT_HOST_URL, "/cgi-bin/draft/count");
+
+ private final String prefix;
+ private final String path;
+
+ }
+
+ /**
+ * 发布能力:
+ * 发布接口
+ * 发布状态轮询接口
+ * 事件推送发布结果 -- 是回调,没实现
+ * 删除发布
+ * 通过 article_id 获取已发布文章
+ * 获取成功发布列表
+ */
+ @AllArgsConstructor
+ @Getter
+ enum FreePublish implements WxMpApiUrl {
+
+ /**
+ * 发布接口
+ */
+ SUBMIT(API_DEFAULT_HOST_URL, "/cgi-bin/freepublish/submit"),
+ /**
+ * 通过 article_id 获取已发布文章
+ */
+ GET_ARTICLE(API_DEFAULT_HOST_URL, "/cgi-bin/freepublish/getarticle"),
+ /**
+ * 发布状态轮询接口
+ */
+ GET_PUSH_STATUS(API_DEFAULT_HOST_URL, "/cgi-bin/freepublish/get"),
+ /**
+ * 删除发布
+ */
+ DEL_PUSH(API_DEFAULT_HOST_URL, "/cgi-bin/freepublish/delete"),
+ /**
+ * 获取成功发布列表
+ */
+ BATCH_GET(API_DEFAULT_HOST_URL, "/cgi-bin/freepublish/batchget")
+ ;
+
private final String prefix;
private final String path;
diff --git a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpDraftServiceImplTest.java b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpDraftServiceImplTest.java
new file mode 100644
index 0000000000..193580a9f1
--- /dev/null
+++ b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpDraftServiceImplTest.java
@@ -0,0 +1,127 @@
+package me.chanjar.weixin.mp.api.impl;
+
+import com.google.inject.Inject;
+import me.chanjar.weixin.common.error.WxErrorException;
+import me.chanjar.weixin.mp.api.WxMpService;
+import me.chanjar.weixin.mp.api.test.ApiTestModule;
+import me.chanjar.weixin.mp.bean.draft.WxMpAddDraft;
+import me.chanjar.weixin.mp.bean.draft.WxMpDraftArticles;
+import me.chanjar.weixin.mp.bean.draft.WxMpDraftInfo;
+import me.chanjar.weixin.mp.bean.draft.WxMpDraftList;
+import me.chanjar.weixin.mp.bean.draft.WxMpUpdateDraft;
+import org.testng.annotations.Guice;
+import org.testng.annotations.Test;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+/**
+ * 草稿箱单元测试.
+ *
+ * @author dragon
+ * @date 2021-10-22
+ */
+@Guice(modules = ApiTestModule.class)
+public class WxMpDraftServiceImplTest {
+
+ /**
+ * 1.先上传一个永久图片素材:me.chanjar.weixin.mp.api.impl.WxMpMaterialServiceImplTest.testUploadMaterial
+ * 2.后续图文需要设置一个永久素材id
+ */
+ final String thumbMediaId = "zUUtT8ZYeXzZ4slFbtnAkh7Yd-f45DbFoF9ERzVC6s4";
+
+ /**
+ * 新增草稿后返回的id,后续查询、修改、删除,获取等需要使用
+ */
+ final String mediaId = "zUUtT8ZYeXzZ4slFbtnAkpgGKyqnTsjtUvMdVBRWJVk";
+
+ @Inject
+ protected WxMpService wxService;
+
+ @Test
+ public void testAddDraft() throws WxErrorException {
+ // {"mediaId":"zUUtT8ZYeXzZ4slFbtnAkh7Yd-f45DbFoF9ERzVC6s4","url":"http://mmbiz.qpic.cn/mmbiz_jpg/fLtyChQRfH84IyicNUbGt3l3IlHxJRibSFz7Tky0ibmzKykzVbo9tZGYhXQGJ2npFtDPbvPhKYxBz6JxkYIibTmUicQ/0?wx_fmt=jpeg"}
+ this.wxService.getDraftService().addDraft("标题", "图文消息的具体内容", thumbMediaId);
+ // 【响应数据】:{"media_id":"zUUtT8ZYeXzZ4slFbtnAks-nZeGiPQmwvhShTh72CqM","item":[]}
+ }
+
+ @Test
+ public void testAddGuide_another() throws WxErrorException {
+ List draftArticleList = new ArrayList<>();
+ WxMpDraftArticles draftArticle = WxMpDraftArticles.builder()
+ .title("新建草稿-对象形式")
+ .author("dragon")
+ .digest("图文消息的摘要,仅有单图文消息才有摘要,多图文此处为空")
+ .content("图文消息的具体内容,支持HTML标签,必须少于2万字符,小于1M,且此处会去除JS")
+ .contentSourceUrl("https://github.com/Wechat-Group/WxJava")
+ .thumbMediaId(thumbMediaId)
+ // 显示封面、打开评论、所有人可评论
+ .showCoverPic(1).needOpenComment(1).onlyFansCanComment(0)
+ .build();
+ draftArticleList.add(draftArticle);
+
+ WxMpAddDraft addDraft = WxMpAddDraft.builder().articles(draftArticleList).build();
+ String mediaId = this.wxService.getDraftService().addDraft(addDraft);
+ // 【响应数据】:{"media_id":"zUUtT8ZYeXzZ4slFbtnAkpgGKyqnTsjtUvMdVBRWJVk","item":[]}
+ assertThat(mediaId).isNotNull();
+ }
+
+ @Test
+ public void testGetDraft() throws WxErrorException {
+ final WxMpDraftInfo draftInfo = this.wxService.getDraftService().getDraft(mediaId);
+ assertThat(draftInfo).isNotNull();
+ // 【响应数据】:{"news_item":[{"title":"标题","author":"","digest":"图文消息的具体内容","content":"图文消息的具体内容","content_source_url":"","thumb_media_id":"zUUtT8ZYeXzZ4slFbtnAkh7Yd-f45DbFoF9ERzVC6s4","show_cover_pic":1,"url":"http:\/\/mp.weixin.qq.com\/s?__biz=Mzk0OTI5MzM1OQ==&mid=100000006&idx=1&sn=89903965ae5ebd6014903c7c5ca34daa&chksm=435bd946742c5050d18da32289904db5ede8bbd157d181438231a1762b85030419b3c0ed4c00#rd","thumb_url":"http:\/\/mmbiz.qpic.cn\/mmbiz_jpg\/fLtyChQRfH84IyicNUbGt3l3IlHxJRibSFz7Tky0ibmzKykzVbo9tZGYhXQGJ2npFtDPbvPhKYxBz6JxkYIibTmUicQ\/0?wx_fmt=jpeg","need_open_comment":0,"only_fans_can_comment":0}],"create_time":1634886802,"update_time":1634886802}
+ }
+
+ @Test
+ public void testUpdateDraft() throws WxErrorException {
+ WxMpDraftArticles draftArticles = WxMpDraftArticles.builder()
+ .title("新标题").content("新图文消息的具体内容").thumbMediaId(thumbMediaId).build();
+ WxMpUpdateDraft updateDraft = WxMpUpdateDraft.builder()
+ .mediaId(mediaId)
+ .index(0)
+ .articles(draftArticles)
+ .build();
+ Boolean updateDraftResult = this.wxService.getDraftService().updateDraft(updateDraft);
+ // assertThat(updateDraftResult).isTrue();
+ assertThat(updateDraftResult).isTrue();
+ }
+
+ @Test
+ public void testDelDraft() throws WxErrorException {
+ Boolean delDraftResult = this.wxService.getDraftService().delDraft(mediaId);
+ // 【响应数据】:{"errcode":0,"errmsg":"ok"}
+ assertThat(delDraftResult).isTrue();
+ }
+
+ @Test
+ public void testListDraft() throws WxErrorException {
+ WxMpDraftList draftList = this.wxService.getDraftService().listDraft(0, 10);
+ /*
+ 【响应数据】:{"item":[{"media_id":"zUUtT8ZYeXzZ4slFbtnAks-nZeGiPQmwvhShTh72CqM",
+ "content":{
+ "news_item":
+ [
+ {"title":"标题","author":"","digest":"图文消息的具体内容","content":"图文消息的具体内容",
+ "content_source_url":"","thumb_media_id":"zUUtT8ZYeXzZ4slFbtnAkh7Yd-f45DbFoF9ERzVC6s4",
+ "show_cover_pic":1,"url":"http:\/\/mp.weixin.qq.com\/s?__biz=Mzk0OTI5MzM1?wx_fmt=jpeg",
+ "need_open_comment":0,"only_fans_can_comment":0}],
+ "create_time":1634886802,"update_time":1634886802},"update_time":1634886802}
+ ]
+ ,"total_count":1,"item_count":1}
+
+ */
+ assertThat(draftList).isNotNull();
+ }
+
+ @Test
+ public void testCountDraft() throws WxErrorException {
+ Long countDraft = this.wxService.getDraftService().countDraft();
+ // 【响应数据】:{"total_count":1}
+ assertThat(countDraft).isNotNull();
+ }
+
+}
+
diff --git a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpFreePublishServiceImplTest.java b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpFreePublishServiceImplTest.java
new file mode 100644
index 0000000000..ff5cd0e5d3
--- /dev/null
+++ b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpFreePublishServiceImplTest.java
@@ -0,0 +1,109 @@
+package me.chanjar.weixin.mp.api.impl;
+
+import com.google.inject.Inject;
+import me.chanjar.weixin.common.error.WxErrorException;
+import me.chanjar.weixin.mp.api.WxMpService;
+import me.chanjar.weixin.mp.api.test.ApiTestModule;
+import me.chanjar.weixin.mp.bean.freepublish.WxMpFreePublishInfo;
+import me.chanjar.weixin.mp.bean.freepublish.WxMpFreePublishList;
+import me.chanjar.weixin.mp.bean.freepublish.WxMpFreePublishStatus;
+import org.testng.annotations.Guice;
+import org.testng.annotations.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+/**
+ * 发布能力-单元测试.
+ *
+ * @author dragon
+ * @date 2021-10-23
+ */
+@Guice(modules = ApiTestModule.class)
+public class WxMpFreePublishServiceImplTest {
+
+ /**
+ * 新增草稿后返回的id,发布需要使用
+ */
+ final String mediaId = "HKVdzjkDfooMqBqJtvSs2EEeRAJaM33gJgkii_JDOHg";
+
+ /**
+ * 发布后的id,后续查询等需要使用
+ */
+ final String publishId = "2650177669";
+
+ /**
+ * 图文的 article_id,后续查询图文详情、删除发布内容 需要使用
+ * 要根据 publishId 来获取 article_id
+ *
+ * @see this.testGetPushStatus
+ */
+ final String articleId = "zjMKVd1g66BkEkpetwml4ElbDdniE8JeI2Ec324Sjqg";
+
+ @Inject
+ protected WxMpService wxService;
+
+ @Test
+ public void testSubmit() throws WxErrorException {
+ String submit = this.wxService.getFreePublishService().submit(mediaId);
+ assertThat(submit).isNotBlank();
+ // 【响应数据】:{"errcode":0,"errmsg":"ok","publish_id":2650177668}
+ }
+
+ @Test
+ public void testGetPushStatus() throws WxErrorException {
+ WxMpFreePublishStatus pushStatus = this.wxService.getFreePublishService().getPushStatus(publishId);
+ assertThat(pushStatus).isNotNull();
+ // 【响应数据】:{"publish_id":2650177668,"publish_status":0,"article_id":"zjMKVd1g66BkEkpetwml4J-4gNf4I1nsh-B-r_inemw",
+ // "article_detail":{"count":1,"item":
+ // [{"idx":1,"article_url":
+ // "https://mp.weixin.qq.com/s?__biz=MzAwMTE2MzA1xxxxxxxxxx"
+ // }]},"fail_idx":[]}
+ // article_url -> 已发布内容可被自定义菜单、自动回复、话题引用,也可用于公开传播
+ }
+
+ @Test
+ public void testGetArticleFromId() throws WxErrorException {
+ WxMpFreePublishInfo articleFromId = this.wxService.getFreePublishService().getArticleFromId(articleId);
+ assertThat(articleFromId).isNotNull();
+ /* 【响应数据】:{"news_item":[{"title":"欢迎你加入啊~ 这是我的第一条文字消息草稿","author":"","digest":"","content":"欢迎你加入啊~ 这是我的第一条文字消息草稿",
+ "content_source_url":"","thumb_media_id":"","show_cover_pic":0,"url":"http:\/\/mp.weixin.qq
+ .com\/s?__biz=MzAwMTE2MzA1Mg==&mid=2650177668","thumb_url":"","need_open_comment":1,"only_fans_can_comment":1,"is_deleted":false}],
+ "create_time":1634961670,"update_time":1634961672}
+ */
+ }
+
+ @Test
+ public void testDelPush() throws WxErrorException {
+ Boolean deletePush = this.wxService.getFreePublishService().deletePush(articleId, 0);
+ // 【响应数据】:{"errcode":0,"errmsg":"ok"}
+ assertThat(deletePush).isTrue();
+ }
+
+ @Test
+ public void testDeletePushAllArticle() throws WxErrorException {
+ Boolean deletePush = this.wxService.getFreePublishService().deletePushAllArticle(articleId);
+ // 【响应数据】:{"errcode":0,"errmsg":"ok"}
+ assertThat(deletePush).isTrue();
+ }
+
+ @Test
+ public void testGetPublicationRecords() throws WxErrorException {
+ WxMpFreePublishList publicationRecords = this.wxService.getFreePublishService().getPublicationRecords(0, 10, 0);
+ /*
+ 【响应数据】:
+ {"item":[{"article_id":"zjMKVd1g66BkEkpetwml4BOSzatuEYNY3TFhCc0kSIE","content":{"news_item":[
+ {"title":"新建草稿-对象形式","author":"dragon","digest":"图文消息的摘要,仅有单图文消息才有摘要,多图文此处为空",
+ "content":"图文消息的具体内容,支持HTML标签,必须少于2万字符,小于1M,且此处会去除JS",
+ "content_source_url":"https:\/\/github.com\/Wechat-Group\/WxJava","thumb_media_id":"HKVdzjkDfooMqBqJtvSs2Ajz2v6L_vtGhyyr_mqKcPU",
+ "show_cover_pic":1,"url":"http:\/\/mp.weixin.qq.com\/s?__biz=MzAwMTE2MzA1Mg==&mid=26501776710e5adb91#rd",
+ "thumb_url":"http:\/\/mmbiz.qpic.cn\/mmbiz_jpg\/0QSAUfroWrUmxHthQ\/0?wx_fmt=jpeg",
+ "need_open_comment":1,"only_fans_can_comment":0,"is_deleted":false}],
+ "create_time":1634976306,"update_time":1634976318}}
+ ]
+ ,"total_count":1,"item_count":1}
+ */
+ assertThat(publicationRecords).isNotNull();
+ }
+
+}
+
From a2042dd7c285e28c8da8080b67d9d630e7f3754c Mon Sep 17 00:00:00 2001
From: tt <30398051+zhentang3@users.noreply.github.com>
Date: Sat, 23 Oct 2021 23:25:58 +0800
Subject: [PATCH 0017/1079] =?UTF-8?q?:art:=20#2354=20=E3=80=90=E5=B0=8F?=
=?UTF-8?q?=E7=A8=8B=E5=BA=8F=E3=80=91urlscheme=E5=A2=9E=E5=8A=A0=E8=A6=81?=
=?UTF-8?q?=E6=89=93=E5=BC=80=E7=9A=84=E5=B0=8F=E7=A8=8B=E5=BA=8F=E7=89=88?=
=?UTF-8?q?=E6=9C=AC=E5=AD=97=E6=AE=B5=EF=BC=8C=E9=BB=98=E8=AE=A4=E5=80=BC?=
=?UTF-8?q?=E6=AD=A3=E5=BC=8F=E7=89=88=E6=9C=AC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../wx/miniapp/bean/scheme/WxMaGenerateSchemeRequest.java | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/scheme/WxMaGenerateSchemeRequest.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/scheme/WxMaGenerateSchemeRequest.java
index 799a7390a6..80c5f90347 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/scheme/WxMaGenerateSchemeRequest.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/scheme/WxMaGenerateSchemeRequest.java
@@ -39,6 +39,12 @@ public class WxMaGenerateSchemeRequest {
@SerializedName("expire_time")
private Long expireTime;
+ /**
+ * 要打开的小程序版本。正式版为"release",体验版为"trial",开发版为"develop"默认值:release
+ */
+ @SerializedName("env_version")
+ private String envVersion = "release";
+
@Data
@Builder(builderMethodName = "newBuilder")
public static class JumpWxa {
From 44e4ee44160e1a85723c0c93e0ad107ff1286892 Mon Sep 17 00:00:00 2001
From: Kyle Scully
Date: Sat, 23 Oct 2021 08:26:45 -0700
Subject: [PATCH 0018/1079] :art: modifier order
---
.../weixin/common/util/http/WxDnsResolver.java | 2 +-
.../cp/config/impl/WxCpRedissonConfigImpl.java | 8 ++++----
.../config/impl/WxMaRedissonConfigImpl.java | 8 ++++----
.../wx/miniapp/util/WxMaConfigHolder.java | 2 +-
.../weixin/mp/util/WxMpConfigStorageHolder.java | 2 +-
.../impl/AbstractWxOpenInRedisConfigStorage.java | 14 +++++++-------
.../wxpay/bean/request/BaseWxPayRequest.java | 2 +-
.../qidian/util/WxQidianConfigStorageHolder.java | 2 +-
8 files changed, 20 insertions(+), 20 deletions(-)
diff --git a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/WxDnsResolver.java b/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/WxDnsResolver.java
index d0321af097..ff0977e8d8 100644
--- a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/WxDnsResolver.java
+++ b/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/WxDnsResolver.java
@@ -18,7 +18,7 @@
*/
public class WxDnsResolver implements DnsResolver {
- private final static String WECHAT_API_URL = "api.weixin.qq.com";
+ private static final String WECHAT_API_URL = "api.weixin.qq.com";
private static Map MAPPINGS = new HashMap<>();
protected final Logger log = LoggerFactory.getLogger(WxDnsResolver.class);
private String wxApiIp;
diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/impl/WxCpRedissonConfigImpl.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/impl/WxCpRedissonConfigImpl.java
index 61894b7599..a449348ad7 100644
--- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/impl/WxCpRedissonConfigImpl.java
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/config/impl/WxCpRedissonConfigImpl.java
@@ -20,19 +20,19 @@ public class WxCpRedissonConfigImpl extends WxCpDefaultConfigImpl {
/**
* The constant LOCK_KEY.
*/
- protected final static String LOCK_KEY = "wechat_cp_lock:";
+ protected static final String LOCK_KEY = "wechat_cp_lock:";
/**
* The constant CP_ACCESS_TOKEN_KEY.
*/
- protected final static String CP_ACCESS_TOKEN_KEY = "wechat_cp_access_token_key:";
+ protected static final String CP_ACCESS_TOKEN_KEY = "wechat_cp_access_token_key:";
/**
* The constant CP_JSAPI_TICKET_KEY.
*/
- protected final static String CP_JSAPI_TICKET_KEY = "wechat_cp_jsapi_ticket_key:";
+ protected static final String CP_JSAPI_TICKET_KEY = "wechat_cp_jsapi_ticket_key:";
/**
* The constant CP_AGENT_JSAPI_TICKET_KEY.
*/
- protected final static String CP_AGENT_JSAPI_TICKET_KEY = "wechat_cp_agent_jsapi_ticket_key:";
+ protected static final String CP_AGENT_JSAPI_TICKET_KEY = "wechat_cp_agent_jsapi_ticket_key:";
private final WxRedisOps redisOps;
/**
* redis 存储的 key 的前缀,可为空
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/config/impl/WxMaRedissonConfigImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/config/impl/WxMaRedissonConfigImpl.java
index c45ad50946..b2d115fd26 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/config/impl/WxMaRedissonConfigImpl.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/config/impl/WxMaRedissonConfigImpl.java
@@ -18,10 +18,10 @@
*/
public class WxMaRedissonConfigImpl extends WxMaDefaultConfigImpl {
- protected final static String LOCK_KEY = "wechat_ma_lock:";
- protected final static String MA_ACCESS_TOKEN_KEY = "wechat_ma_access_token_key:";
- protected final static String MA_JSAPI_TICKET_KEY = "wechat_ma_jsapi_ticket_key:";
- protected final static String MA_CARD_API_TICKET_KEY = "wechat_ma_card_api_ticket_key:";
+ protected static final String LOCK_KEY = "wechat_ma_lock:";
+ protected static final String MA_ACCESS_TOKEN_KEY = "wechat_ma_access_token_key:";
+ protected static final String MA_JSAPI_TICKET_KEY = "wechat_ma_jsapi_ticket_key:";
+ protected static final String MA_CARD_API_TICKET_KEY = "wechat_ma_card_api_ticket_key:";
/**
* redis 存储的 key 的前缀,可为空
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/util/WxMaConfigHolder.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/util/WxMaConfigHolder.java
index e73cb2282d..f99e9616d8 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/util/WxMaConfigHolder.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/util/WxMaConfigHolder.java
@@ -7,7 +7,7 @@
* @date 2020-08-16
*/
public class WxMaConfigHolder {
- private final static ThreadLocal THREAD_LOCAL = new ThreadLocal() {
+ private static final ThreadLocal THREAD_LOCAL = new ThreadLocal() {
@Override
protected String initialValue() {
return "default";
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/WxMpConfigStorageHolder.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/WxMpConfigStorageHolder.java
index e844c4866b..bb3d8eb43c 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/WxMpConfigStorageHolder.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/WxMpConfigStorageHolder.java
@@ -5,7 +5,7 @@
* @date 2019-03-20 22:06
*/
public class WxMpConfigStorageHolder {
- private final static ThreadLocal THREAD_LOCAL = new ThreadLocal() {
+ private static final ThreadLocal THREAD_LOCAL = new ThreadLocal() {
@Override
protected String initialValue() {
return "default";
diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/AbstractWxOpenInRedisConfigStorage.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/AbstractWxOpenInRedisConfigStorage.java
index 52799da57c..5f21a94af3 100644
--- a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/AbstractWxOpenInRedisConfigStorage.java
+++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/AbstractWxOpenInRedisConfigStorage.java
@@ -8,16 +8,16 @@
* @date 2020/01/09
**/
public abstract class AbstractWxOpenInRedisConfigStorage extends WxOpenInMemoryConfigStorage {
- protected final static String COMPONENT_VERIFY_TICKET_KEY = "wechat_component_verify_ticket:";
- protected final static String COMPONENT_ACCESS_TOKEN_KEY = "wechat_component_access_token:";
+ protected static final String COMPONENT_VERIFY_TICKET_KEY = "wechat_component_verify_ticket:";
+ protected static final String COMPONENT_ACCESS_TOKEN_KEY = "wechat_component_access_token:";
- protected final static String AUTHORIZER_REFRESH_TOKEN_KEY = "wechat_authorizer_refresh_token:";
- protected final static String AUTHORIZER_ACCESS_TOKEN_KEY = "wechat_authorizer_access_token:";
+ protected static final String AUTHORIZER_REFRESH_TOKEN_KEY = "wechat_authorizer_refresh_token:";
+ protected static final String AUTHORIZER_ACCESS_TOKEN_KEY = "wechat_authorizer_access_token:";
- protected final static String LOCK_KEY = "wechat_lock:";
+ protected static final String LOCK_KEY = "wechat_lock:";
- protected final static String JSAPI_TICKET_KEY = "wechat_jsapi_ticket:";
- protected final static String CARD_API_TICKET_KEY = "wechat_card_api_ticket:";
+ protected static final String JSAPI_TICKET_KEY = "wechat_jsapi_ticket:";
+ protected static final String CARD_API_TICKET_KEY = "wechat_card_api_ticket:";
/**
* redis 存储的 key 的前缀,可为空
diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/request/BaseWxPayRequest.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/request/BaseWxPayRequest.java
index 394bc8969b..fde7f7150f 100644
--- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/request/BaseWxPayRequest.java
+++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/request/BaseWxPayRequest.java
@@ -322,7 +322,7 @@ public Map getSignParams() {
*
* @param map 传入的属性Map
*/
- abstract protected void storeMap(Map map);
+ protected abstract void storeMap(Map map);
/**
*
diff --git a/weixin-java-qidian/src/main/java/me/chanjar/weixin/qidian/util/WxQidianConfigStorageHolder.java b/weixin-java-qidian/src/main/java/me/chanjar/weixin/qidian/util/WxQidianConfigStorageHolder.java
index 1177ce4ac6..9ce4366b99 100644
--- a/weixin-java-qidian/src/main/java/me/chanjar/weixin/qidian/util/WxQidianConfigStorageHolder.java
+++ b/weixin-java-qidian/src/main/java/me/chanjar/weixin/qidian/util/WxQidianConfigStorageHolder.java
@@ -5,7 +5,7 @@
* @date 2020年12月26日
*/
public class WxQidianConfigStorageHolder {
- private final static ThreadLocal THREAD_LOCAL = new ThreadLocal() {
+ private static final ThreadLocal THREAD_LOCAL = new ThreadLocal() {
@Override
protected String initialValue() {
return "default";
From 3039dd018e3faa11230a44f842b43db9b3fabbda Mon Sep 17 00:00:00 2001
From: Kyle Scully
Date: Sat, 23 Oct 2021 08:27:14 -0700
Subject: [PATCH 0019/1079] :art: Use explicit types on lambda arguments
---
.../common/util/http/apache/ApacheHttpDnsClientBuilder.java | 2 +-
.../chanjar/weixin/cp/api/impl/BaseWxCpServiceImplTest.java | 2 +-
.../test/java/me/chanjar/weixin/cp/demo/WxCpDemoServer.java | 6 +++---
.../binarywang/wx/miniapp/api/impl/WxMaServiceImplTest.java | 2 +-
.../chanjar/weixin/mp/api/impl/BaseWxMpServiceImplTest.java | 2 +-
5 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/apache/ApacheHttpDnsClientBuilder.java b/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/apache/ApacheHttpDnsClientBuilder.java
index af3a32ff71..698eb47bb9 100644
--- a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/apache/ApacheHttpDnsClientBuilder.java
+++ b/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/apache/ApacheHttpDnsClientBuilder.java
@@ -48,7 +48,7 @@ public class ApacheHttpDnsClientBuilder implements ApacheHttpClientBuilder {
private DnsResolver dnsResover;
- private HttpRequestRetryHandler httpRequestRetryHandler = (exception, executionCount, context) -> false;
+ private HttpRequestRetryHandler httpRequestRetryHandler = (IOException exception, int executionCount, HttpContext context) -> false;
private SSLConnectionSocketFactory sslConnectionSocketFactory = SSLConnectionSocketFactory.getSocketFactory();
private PlainConnectionSocketFactory plainConnectionSocketFactory = PlainConnectionSocketFactory.getSocketFactory();
private String httpProxyHost;
diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/BaseWxCpServiceImplTest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/BaseWxCpServiceImplTest.java
index 739470a2d7..2e91aacbf4 100644
--- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/BaseWxCpServiceImplTest.java
+++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/BaseWxCpServiceImplTest.java
@@ -92,7 +92,7 @@ public WxCpConfigStorage getWxCpConfigStorage() {
RequestExecutor