From 92bc58b25fc133f2e9ef1c8c6d652b1185cfd7d6 Mon Sep 17 00:00:00 2001 From: tryking <1437870930#qq.com> Date: Tue, 19 Aug 2025 10:41:34 +0800 Subject: [PATCH 1/5] =?UTF-8?q?2025-08-19=20tryking=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E4=BC=81=E5=BE=AE=E5=AE=A2=E6=9C=8D?= =?UTF-8?q?=E7=9B=B8=E5=85=B33=E4=B8=AA=E6=8E=A5=E5=8F=A3=20=E6=9F=A5/?= =?UTF-8?q?=E5=A2=9E/=E5=88=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/WxMaCustomserviceWorkService.java | 58 +++++++++++++++++++ .../wx/miniapp/api/WxMaService.java | 7 +++ .../miniapp/api/impl/BaseWxMaServiceImpl.java | 6 ++ .../WxMaCustomserviceWorkServiceImpl.java | 51 ++++++++++++++++ .../WxMaCustomserviceResult.java | 50 ++++++++++++++++ 5 files changed, 172 insertions(+) create mode 100644 weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaCustomserviceWorkService.java create mode 100644 weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaCustomserviceWorkServiceImpl.java create mode 100644 weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/customservice/WxMaCustomserviceResult.java diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaCustomserviceWorkService.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaCustomserviceWorkService.java new file mode 100644 index 0000000000..4959f2d4dc --- /dev/null +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaCustomserviceWorkService.java @@ -0,0 +1,58 @@ +package cn.binarywang.wx.miniapp.api; + +import cn.binarywang.wx.miniapp.bean.customservice.WxMaCustomserviceResult; +import me.chanjar.weixin.common.error.WxErrorException; + +import java.util.List; + +/** + *
+ * 小程序 - 微信客服 相关接口 + * 负责处理 https://api.weixin.qq.com/customservice/work/** + * 文档:https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/kf-work/getKfWorkBound.html + * 绑定的企业ID,需和小程序主体一致。 + * 目前仅支持绑定非个人小程序。 + * Created by tryking123 on 2025/8/18. + *+ * + * @author tryking123 + */ +public interface WxMaCustomserviceWorkService { + + /** + * 查询小程序的微信客服绑定情况 + */ + String GET_CUSTOMSERVICE_URL = "https://api.weixin.qq.com/customservice/work/get"; + /** + * 为小程序绑定微信客服 注:此接口绑定的企业ID需完成企业认证 + */ + String BIND_CUSTOMSERVICE_URL = "https://api.weixin.qq.com/customservice/work/bind"; + /** + * 为小程序解除绑定微信客服 + */ + String UNBIND_CUSTOMSERVICE_URL = "https://api.weixin.qq.com/customservice/work/unbind"; + + /** + * 查询小程序的微信客服绑定情况 + * + * @return 成功示例json { "errcode": 0,"entityName": "XXXXX有限公司","corpid": "wwee11111xxxxxxx","bindTime": 1694611289 } + * @throws WxErrorException + */ + WxMaCustomserviceResult getCustomservice() throws WxErrorException; + + /** + * 绑定微信客服 + * @param corpid 企业ID,获取方式参考:https://developer.work.weixin.qq.com/document/path/90665#corpid + * @return 成功示例json { "errcode": 0 } + * @throws WxErrorException + */ + WxMaCustomserviceResult bindCustomservice(String corpid) throws WxErrorException; + + /** + * 解除绑定微信客服 + * @param corpid 企业ID,获取方式参考:https://developer.work.weixin.qq.com/document/path/90665#corpid + * @return 成功示例json { "errcode": 0 } + * @throws WxErrorException + */ + WxMaCustomserviceResult unbindCustomservice(String corpid) throws WxErrorException; +} diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaService.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaService.java index 87405edd8b..ef3a46bad9 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaService.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaService.java @@ -278,6 +278,13 @@ WxMaApiResponse execute( */ WxMaCodeService getCodeService(); + /** + * 获取小程序 - 微信客服。 + * + * @return 微信客服服务对象WxMaCustomserviceWorkService + */ + WxMaCustomserviceWorkService getCustomserviceWorkService(); + /** * 获取jsapi操作相关服务对象。 * diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/BaseWxMaServiceImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/BaseWxMaServiceImpl.java index 4a5ca19274..ec33dede0c 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/BaseWxMaServiceImpl.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/BaseWxMaServiceImpl.java @@ -112,6 +112,7 @@ public abstract class BaseWxMaServiceImpl
+ * 小程序 - 微信客服 相关接口 + * 负责处理 https://api.weixin.qq.com/customservice/work/** + * 文档:https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/kf-work/getKfWorkBound.html + * 绑定的企业ID,需和小程序主体一致。 + * 目前仅支持绑定非个人小程序。 + * Created by tryking123 on 2025/8/18. + *+ * + * @author tryking123 + */ +@RequiredArgsConstructor +public class WxMaCustomserviceWorkServiceImpl implements WxMaCustomserviceWorkService { + private static final String CORPID = "corpid"; + + private final WxMaService service; + + @Override + public WxMaCustomserviceResult getCustomservice() throws WxErrorException { + String responseContent = this.service.get(GET_CUSTOMSERVICE_URL, null); + return WxMaCustomserviceResult.fromJson(responseContent); + } + + @Override + public WxMaCustomserviceResult bindCustomservice(String corpid) throws WxErrorException { + JsonObject paramJson = new JsonObject(); + paramJson.addProperty(CORPID, corpid); + String response = this.service.post(BIND_CUSTOMSERVICE_URL, paramJson); + return WxMaCustomserviceResult.fromJson(response); + } + + @Override + public WxMaCustomserviceResult unbindCustomservice(String corpid) throws WxErrorException { + JsonObject paramJson = new JsonObject(); + paramJson.addProperty(CORPID, corpid); + String response = this.service.post(UNBIND_CUSTOMSERVICE_URL, paramJson); + return WxMaCustomserviceResult.fromJson(response); + } +} diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/customservice/WxMaCustomserviceResult.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/customservice/WxMaCustomserviceResult.java new file mode 100644 index 0000000000..49febf7e2d --- /dev/null +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/customservice/WxMaCustomserviceResult.java @@ -0,0 +1,50 @@ +package cn.binarywang.wx.miniapp.bean.customservice; + +import cn.binarywang.wx.miniapp.bean.express.WxMaExpressAccount; +import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.gson.annotations.SerializedName; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; + +/** + * 小程序帐号的可选类目,其中 address / tag / title 是提交审核会用到的 + * + * @author tryking123 + * @since 2025/8/18 17:40 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class WxMaCustomserviceResult implements Serializable { + private static final long serialVersionUID = 8854979405505241314L; + + @SerializedName("errcode") + private Integer errCode; + + /** + * 该小程序的主体名称,未绑定时不返回 + */ + @SerializedName("entityName") + private String entityName; + + /** + * 企业ID,未绑定时不返回,未绑定时不返回 + */ + @SerializedName("corpid") + private String corpid; + + /** 接受绑定时间戳,ms */ + @JsonProperty("bindTime") + private Long bindTime; + + public static WxMaCustomserviceResult fromJson(String json) { + return WxMaGsonBuilder.create().fromJson(json, WxMaCustomserviceResult.class); + } +} From 9682ff4f7a87622c32e061a4422b227ac59df76b Mon Sep 17 00:00:00 2001 From: Binary Wang
From 2ccb000cf02097f3567d8f5f831c4aac5e3a0887 Mon Sep 17 00:00:00 2001 From: Binary WangDate: Sun, 31 Aug 2025 21:42:18 +0800 Subject: [PATCH 4/5] Update weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/customservice/WxMaCustomserviceResult.java Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../wx/miniapp/bean/customservice/WxMaCustomserviceResult.java | 1 - 1 file changed, 1 deletion(-) diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/customservice/WxMaCustomserviceResult.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/customservice/WxMaCustomserviceResult.java index 61d5fc7fb1..5d6f5e4089 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/customservice/WxMaCustomserviceResult.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/customservice/WxMaCustomserviceResult.java @@ -1,6 +1,5 @@ package cn.binarywang.wx.miniapp.bean.customservice; -import cn.binarywang.wx.miniapp.bean.express.WxMaExpressAccount; import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.gson.annotations.SerializedName; From 840d985d2d1ec151fc11e847265004936ec82409 Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Sun, 31 Aug 2025 21:42:56 +0800 Subject: [PATCH 5/5] Update weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/customservice/WxMaCustomserviceResult.java Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../bean/customservice/WxMaCustomserviceResult.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/customservice/WxMaCustomserviceResult.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/customservice/WxMaCustomserviceResult.java index 5d6f5e4089..e7a9a46de3 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/customservice/WxMaCustomserviceResult.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/customservice/WxMaCustomserviceResult.java @@ -12,8 +12,15 @@ import java.util.List; /** - * 小程序帐号的可选类目,其中 address / tag / title 是提交审核会用到的 - * + * 客服绑定结果信息,包括错误码、主体名称、企业ID和绑定时间戳。 + * + * 字段说明: + *
+ *
* @author tryking123 * @since 2025/8/18 17:40 */- errCode: 错误码
+ *- entityName: 小程序主体名称,未绑定时不返回
+ *- corpid: 企业ID,未绑定时不返回
+ *- bindTime: 接受绑定时间戳(毫秒)
+ *