diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpExternalContactService.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpExternalContactService.java index dee5b3e317..7e692b3436 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpExternalContactService.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpExternalContactService.java @@ -8,6 +8,8 @@ import me.chanjar.weixin.cp.bean.external.contact.*; import me.chanjar.weixin.cp.bean.external.interceptrule.WxCpInterceptRule; import me.chanjar.weixin.cp.bean.external.interceptrule.WxCpInterceptRuleAddRequest; +import me.chanjar.weixin.cp.bean.external.interceptrule.WxCpInterceptRuleInfo; +import me.chanjar.weixin.cp.bean.external.interceptrule.WxCpInterceptRuleList; import java.io.File; import java.io.IOException; @@ -1134,6 +1136,31 @@ WxMediaUploadResult uploadAttachment(String mediaType, Integer attachmentType, F */ void delInterceptRule(String ruleId) throws WxErrorException; + /** + * 获取敏感词规则列表 + * + * 企业和第三方应用可以通过此接口获取所有设置的敏感词规则列表。 + * 请求方式:GET(HTTPS) + * 文档地址:获取敏感词规则列表 + * + * @return WxCpInterceptRuleList 敏感词规则列表 + * @throws WxErrorException 微信API异常 + */ + WxCpInterceptRuleList getInterceptRuleList() throws WxErrorException; + + /** + * 获取敏感词详情 + * + * 企业和第三方应用可以通过此接口获取单个敏感词规则的详细信息。 + * 请求方式:GET(HTTPS) + * 文档地址:获取敏感词详情 + * + * @param ruleId 敏感词规则ID + * @return WxCpInterceptRuleInfo 敏感词规则详情 + * @throws WxErrorException 微信API异常 + */ + WxCpInterceptRuleInfo getInterceptRuleDetail(String ruleId) throws WxErrorException; + /** *
* 创建商品图册 diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImpl.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImpl.java index 06847c2739..64a025e3c3 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImpl.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImpl.java @@ -21,6 +21,8 @@ import me.chanjar.weixin.cp.bean.external.contact.*; import me.chanjar.weixin.cp.bean.external.interceptrule.WxCpInterceptRule; import me.chanjar.weixin.cp.bean.external.interceptrule.WxCpInterceptRuleAddRequest; +import me.chanjar.weixin.cp.bean.external.interceptrule.WxCpInterceptRuleInfo; +import me.chanjar.weixin.cp.bean.external.interceptrule.WxCpInterceptRuleList; import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.StringUtils; @@ -740,6 +742,19 @@ public void delInterceptRule(String ruleId) throws WxErrorException { GsonHelper.buildJsonObject("rule_id", ruleId)); } + @Override + public WxCpInterceptRuleList getInterceptRuleList() throws WxErrorException { + String url = this.mainService.getWxCpConfigStorage().getApiUrl(GET_INTERCEPT_RULE_LIST); + return WxCpInterceptRuleList.fromJson(this.mainService.get(url,null)); + } + + @Override + public WxCpInterceptRuleInfo getInterceptRuleDetail(String ruleId) throws WxErrorException { + String url = this.mainService.getWxCpConfigStorage().getApiUrl(GET_INTERCEPT_RULE); + String json = this.mainService.post(url, GsonHelper.buildJsonObject("rule_id", ruleId)); + return WxCpInterceptRuleInfo.fromJson(json); + } + @Override public String addProductAlbum(WxCpProductAlbumInfo wxCpProductAlbumInfo) throws WxErrorException { String url = this.mainService.getWxCpConfigStorage().getApiUrl(ADD_PRODUCT_ALBUM); diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/interceptrule/WxCpInterceptRuleInfo.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/interceptrule/WxCpInterceptRuleInfo.java new file mode 100644 index 0000000000..0e6d75bf0c --- /dev/null +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/interceptrule/WxCpInterceptRuleInfo.java @@ -0,0 +1,58 @@ +package me.chanjar.weixin.cp.bean.external.interceptrule; + +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import me.chanjar.weixin.cp.bean.WxCpBaseResp; +import me.chanjar.weixin.cp.bean.external.acquisition.WxCpCustomerAcquisitionInfo; +import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder; + +import java.io.Serializable; +import java.util.List; + +/** + * @Date: 2024-03-07 17:02 + * @Author: shenliuming + * @return: + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class WxCpInterceptRuleInfo extends WxCpBaseResp implements Serializable { + + private static final long serialVersionUID = -425957862453041229L; + + @SerializedName("rule") + private Rule rule; + + @Data + @EqualsAndHashCode(callSuper = false) + public static class Rule implements Serializable { + @SerializedName("rule_id") + private String ruleId; + + @SerializedName("rule_name") + private String ruleName; + + @SerializedName("word_list") + private ListwordList; + + @SerializedName("semantics_list") + private List semanticsList; + + @SerializedName("intercept_type") + private Integer interceptType; + + @SerializedName("applicable_range") + private ApplicableRange applicableRange; + + @SerializedName("create_time") + private long createTime; + + } + + + public static WxCpInterceptRuleInfo fromJson(String json) { + return WxCpGsonBuilder.create().fromJson(json, WxCpInterceptRuleInfo.class); + } + +} diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/interceptrule/WxCpInterceptRuleList.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/interceptrule/WxCpInterceptRuleList.java new file mode 100644 index 0000000000..79cb9a6932 --- /dev/null +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/interceptrule/WxCpInterceptRuleList.java @@ -0,0 +1,61 @@ +package me.chanjar.weixin.cp.bean.external.interceptrule; + +import com.google.gson.annotations.SerializedName; +import lombok.*; +import me.chanjar.weixin.common.bean.ToJson; +import me.chanjar.weixin.cp.bean.WxCpBaseResp; +import me.chanjar.weixin.cp.bean.external.acquisition.WxCpCustomerAcquisitionInfo; +import me.chanjar.weixin.cp.bean.external.acquisition.WxCpCustomerAcquisitionList; +import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder; + +import java.io.Serializable; +import java.util.List; + +/** + * @Date: 2024-03-07 15:54 + * @Author: shenliuming + * @return: + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class WxCpInterceptRuleList extends WxCpBaseResp implements Serializable { + + private static final long serialVersionUID = -830298362453041229L; + /** + * link_id列表 + */ + @SerializedName("rule_list") + private List ruleList; + + public static WxCpInterceptRuleList fromJson(String json) { + return WxCpGsonBuilder.create().fromJson(json, WxCpInterceptRuleList.class); + } + + @Data + @EqualsAndHashCode(callSuper = false) + public static class Rule implements Serializable { + private static final long serialVersionUID = 4750537220968228300L; + + /** + * 规则id + */ + @SerializedName("rule_id") + private String ruleId; + + /** + * 规则名称,长度上限20个字符 + */ + @SerializedName("rule_name") + private String ruleName; + + /** + * 创建时间 + */ + @SerializedName("create_time") + private Long createTime; + + public static WxCpInterceptRuleList.Rule fromJson(String json) { + return WxCpGsonBuilder.create().fromJson(json, WxCpInterceptRuleList.Rule.class); + } + } +} diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpApiPathConsts.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpApiPathConsts.java index dd41d9b8b5..a7d7fa4015 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpApiPathConsts.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpApiPathConsts.java @@ -1344,6 +1344,14 @@ interface ExternalContact { * The constant DEL_INTERCEPT_RULE. */ String DEL_INTERCEPT_RULE = "/cgi-bin/externalcontact/del_intercept_rule"; + /** + * 获取敏感词规则列表 + */ + String GET_INTERCEPT_RULE_LIST = "/cgi-bin/externalcontact/get_intercept_rule_list"; + /** + * 获取敏感词规则详情 + */ + String GET_INTERCEPT_RULE = "/cgi-bin/externalcontact/get_intercept_rule"; /** * 获取当前仍然有效的获客链接 */