diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaEmployeeRelationService.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaEmployeeRelationService.java new file mode 100644 index 000000000..4c0a74b2c --- /dev/null +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaEmployeeRelationService.java @@ -0,0 +1,41 @@ +package cn.binarywang.wx.miniapp.api; + +import cn.binarywang.wx.miniapp.bean.employee.WxMaSendEmployeeMsgRequest; +import cn.binarywang.wx.miniapp.bean.employee.WxMaUnbindEmployeeRequest; +import me.chanjar.weixin.common.error.WxErrorException; + +/** + * 小程序用工关系相关操作接口 + *

+ * 文档地址:用工关系简介 + *

+ * + * @author Binary Wang + * created on 2025-12-19 + */ +public interface WxMaEmployeeRelationService { + + /** + * 解绑用工关系 + *

+ * 企业可以调用该接口解除和用户的B2C用工关系 + *

+ * 文档地址:解绑用工关系 + * + * @param request 解绑请求参数 + * @throws WxErrorException 调用微信接口失败时抛出 + */ + void unbindEmployee(WxMaUnbindEmployeeRequest request) throws WxErrorException; + + /** + * 推送用工消息 + *

+ * 企业可以调用该接口向用户推送用工相关消息 + *

+ * 文档地址:推送用工消息 + * + * @param request 推送消息请求参数 + * @throws WxErrorException 调用微信接口失败时抛出 + */ + void sendEmployeeMsg(WxMaSendEmployeeMsgRequest request) 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 26ced8bed..dc7425fa6 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 @@ -621,4 +621,13 @@ public interface WxMaService extends WxService { * @return 交易投诉服务对象WxMaComplaintService */ WxMaComplaintService getComplaintService(); + + /** + * 获取用工关系服务对象。 + *
+ * 文档:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/laboruse/intro.html + * + * @return 用工关系服务对象WxMaEmployeeRelationService + */ + WxMaEmployeeRelationService getEmployeeRelationService(); } 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 93bb2656e..c0e1ff4a4 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 @@ -167,6 +167,8 @@ public abstract class BaseWxMaServiceImpl implements WxMaService, RequestH private final WxMaPromotionService wxMaPromotionService = new WxMaPromotionServiceImpl(this); private final WxMaIntracityService intracityService = new WxMaIntracityServiceImpl(this); private final WxMaComplaintService complaintService = new WxMaComplaintServiceImpl(this); + private final WxMaEmployeeRelationService employeeRelationService = + new WxMaEmployeeRelationServiceImpl(this); private Map configMap = new HashMap<>(); private int retrySleepMillis = 1000; @@ -1048,4 +1050,9 @@ public abstract class BaseWxMaServiceImpl implements WxMaService, RequestH public WxMaComplaintService getComplaintService() { return this.complaintService; } + + @Override + public WxMaEmployeeRelationService getEmployeeRelationService() { + return this.employeeRelationService; + } } diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaEmployeeRelationServiceImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaEmployeeRelationServiceImpl.java new file mode 100644 index 000000000..8f240e915 --- /dev/null +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaEmployeeRelationServiceImpl.java @@ -0,0 +1,32 @@ +package cn.binarywang.wx.miniapp.api.impl; + +import cn.binarywang.wx.miniapp.api.WxMaEmployeeRelationService; +import cn.binarywang.wx.miniapp.api.WxMaService; +import cn.binarywang.wx.miniapp.bean.employee.WxMaSendEmployeeMsgRequest; +import cn.binarywang.wx.miniapp.bean.employee.WxMaUnbindEmployeeRequest; +import lombok.RequiredArgsConstructor; +import me.chanjar.weixin.common.error.WxErrorException; + +import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.Employee.SEND_EMPLOYEE_MSG_URL; +import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.Employee.UNBIND_EMPLOYEE_URL; + +/** + * 小程序用工关系相关操作接口实现 + * + * @author Binary Wang + * created on 2025-12-19 + */ +@RequiredArgsConstructor +public class WxMaEmployeeRelationServiceImpl implements WxMaEmployeeRelationService { + private final WxMaService service; + + @Override + public void unbindEmployee(WxMaUnbindEmployeeRequest request) throws WxErrorException { + this.service.post(UNBIND_EMPLOYEE_URL, request.toJson()); + } + + @Override + public void sendEmployeeMsg(WxMaSendEmployeeMsgRequest request) throws WxErrorException { + this.service.post(SEND_EMPLOYEE_MSG_URL, request.toJson()); + } +} diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/employee/WxMaSendEmployeeMsgRequest.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/employee/WxMaSendEmployeeMsgRequest.java new file mode 100644 index 000000000..2d5047981 --- /dev/null +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/employee/WxMaSendEmployeeMsgRequest.java @@ -0,0 +1,61 @@ +package cn.binarywang.wx.miniapp.bean.employee; + +import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder; +import com.google.gson.annotations.SerializedName; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * 小程序推送用工消息请求实体 + *

+ * 文档地址:推送用工消息 + *

+ * + * @author Binary Wang + * created on 2025-12-19 + */ +@Data +@Builder(builderMethodName = "newBuilder") +@NoArgsConstructor +@AllArgsConstructor +public class WxMaSendEmployeeMsgRequest implements Serializable { + private static final long serialVersionUID = 1L; + + /** + *
+   * 字段名:用户openid
+   * 是否必填:是
+   * 描述:需要接收消息的用户openid
+   * 
+ */ + @SerializedName("openid") + private String openid; + + /** + *
+   * 字段名:企业id
+   * 是否必填:是
+   * 描述:企业id,小程序管理员在微信开放平台配置
+   * 
+ */ + @SerializedName("corp_id") + private String corpId; + + /** + *
+   * 字段名:消息内容
+   * 是否必填:是
+   * 描述:推送的消息内容,文本格式,最长不超过200个字符
+   * 
+ */ + @SerializedName("msg") + private String msg; + + public String toJson() { + return WxMaGsonBuilder.create().toJson(this); + } +} diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/employee/WxMaUnbindEmployeeRequest.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/employee/WxMaUnbindEmployeeRequest.java new file mode 100644 index 000000000..e56d84670 --- /dev/null +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/employee/WxMaUnbindEmployeeRequest.java @@ -0,0 +1,51 @@ +package cn.binarywang.wx.miniapp.bean.employee; + +import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder; +import com.google.gson.annotations.SerializedName; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * 小程序解绑用工关系请求实体 + *

+ * 文档地址:解绑用工关系 + *

+ * + * @author Binary Wang + * created on 2025-12-19 + */ +@Data +@Builder(builderMethodName = "newBuilder") +@NoArgsConstructor +@AllArgsConstructor +public class WxMaUnbindEmployeeRequest implements Serializable { + private static final long serialVersionUID = 1L; + + /** + *
+   * 字段名:用户openid
+   * 是否必填:是
+   * 描述:需要解绑的用户openid
+   * 
+ */ + @SerializedName("openid") + private String openid; + + /** + *
+   * 字段名:企业id
+   * 是否必填:是
+   * 描述:企业id,小程序管理员在微信开放平台配置
+   * 
+ */ + @SerializedName("corp_id") + private String corpId; + + public String toJson() { + return WxMaGsonBuilder.create().toJson(this); + } +} diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/constant/WxMaApiUrlConstants.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/constant/WxMaApiUrlConstants.java index 45e121965..48d8ca0a2 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/constant/WxMaApiUrlConstants.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/constant/WxMaApiUrlConstants.java @@ -996,4 +996,12 @@ public class WxMaApiUrlConstants { /** 上传反馈图片 */ String UPLOAD_RESPONSE_IMAGE_URL = "https://api.weixin.qq.com/cgi-bin/miniapp/complaint/upload"; } + + /** 用工关系 */ + public interface Employee { + /** 解绑用工关系 */ + String UNBIND_EMPLOYEE_URL = "https://api.weixin.qq.com/wxa/unbinduserb2cauthinfo"; + /** 推送用工消息 */ + String SEND_EMPLOYEE_MSG_URL = "https://api.weixin.qq.com/wxa/sendemployeerelationmsg"; + } }