123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314 |
- package com.tzld.piaoquan.api.component;
- import com.alibaba.fastjson.JSONObject;
- import com.tzld.piaoquan.api.model.param.wecom.thirdpart.*;
- import lombok.extern.slf4j.Slf4j;
- import okhttp3.*;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.stereotype.Component;
- import java.io.IOException;
- @Slf4j
- @Component
- public class WeComThirdPartyApiClient {
- private static final MediaType JSON = MediaType.get("application/json; charset=utf-8");
- private final OkHttpClient client = new OkHttpClient();
- @Value("${wecom.thirdpart.baseUrl:http://47.96.102.58:8083}")
- private String baseUrl;
- /**
- * 初始化
- *
- * @param request 请求体
- * @return 响应结果
- */
- public String init(InitRequest request) {
- return postRequest("/wxwork/init", request);
- }
- /**
- * 设置回调地址
- *
- * @param request 请求体
- * @return 响应结果
- */
- public String setCallbackUrl(SetCallbackUrlRequest request) {
- return postRequest("/wxwork/SetCallbackUrl", request);
- }
- /**
- * 获取登录二维码
- *
- * @param request 请求体
- * @return 响应结果
- */
- public String getQrCode(UuidRequest request) {
- return postRequest("/wxwork/getQrCode", request);
- }
- /**
- * 设置验证码
- *
- * @param request 请求体
- * @return 响应结果
- */
- public String checkCode(CheckCodeRequest request) {
- return postRequest("/wxwork/CheckCode", request);
- }
- /**
- * 获取二次验证二维码接口
- *
- * @param request 请求体
- * @return 响应结果
- */
- public String secondaryValidation(UuidRequest request) {
- return postRequest("/wxwork/SecondaryValidation", request);
- }
- /**
- * 获取当前登录详情
- *
- * @param request 请求体
- * @return 响应结果
- */
- public String getRunClientByUuid(UuidRequest request) {
- return postRequest("/wxwork/GetRunClientByUuid", request);
- }
- /**
- * 获取内部联系人列表
- *
- * @param request 请求体
- * @return 响应结果
- */
- public String getInnerContacts(GetInnerContactsRequest request) {
- return postRequest("/wxwork/GetInnerContacts", request);
- }
- /**
- * 获取外部联系人列表
- *
- * @param request 请求体
- * @return 响应结果
- */
- public String getExternalContacts(GetExternalContactsRequest request) {
- return postRequest("/wxwork/GetExternalContacts", request);
- }
- /**
- * 自动登录
- *
- * @param request 请求体
- * @return 响应结果
- */
- public String automaticLogin(UuidRequest request) {
- return postRequest("/wxwork/automaticLogin", request);
- }
- /**
- * 创建群
- *
- * @param request 请求体
- * @return 响应结果
- */
- public String createRoomWx(CreateRoomWxRequest request) {
- return postRequest("/wxwork/CreateRoomWx", request);
- }
- /**
- * 添加群管理员
- *
- * @param request 请求体
- * @return 响应结果
- */
- public String addRoomAdmins(AddRoomAdminsRequest request) {
- return postRequest("/wxwork/AddRoomAdmins", request);
- }
- /**
- * 群邀请确认
- *
- * @param request 请求体
- * @return 响应结果
- */
- public String setChatroomInvite(SetChatroomInviteRequest request) {
- return postRequest("/wxwork/SetChatroomInvite", request);
- }
- /**
- * 修改群名
- *
- * @param request 请求体
- * @return 响应结果
- */
- public String updateRoomName(UpdateRoomNameRequest request) {
- return postRequest("/wxwork/UpdateRoomName", request);
- }
- /**
- * 禁止群内添加和禁止修改群名
- *
- * @param request 请求体
- * @return 响应结果
- */
- public String setRoomManagement(SetRoomManagementRequest request) {
- return postRequest("/wxwork/setRoomManagement", request);
- }
- /**
- * 禁止修改群名
- *
- * @param request 请求体
- * @return 响应结果
- */
- public String disableRenameChatroom(DisableRenameChatroomRequest request) {
- return postRequest("/wxwork/DisableRenameChatroom", request);
- }
- /**
- * 获取群防骚扰规则列表
- *
- * @param request 请求体
- * @return 响应结果
- */
- public String queryCRMAntiSpamRule(QueryCRMAntiSpamRuleRequest request) {
- return postRequest("/wxwork/queryCRMAntiSpamRule", request);
- }
- /**
- * 设置或者移除群防骚扰规则
- *
- * @param request 请求体
- * @return 响应结果
- */
- public String setRoomAnti(SetRoomAntiRequest request) {
- return postRequest("/wxwork/setRoomAnti", request);
- }
- /**
- * 直接邀请进群
- *
- * @param request 请求体
- * @return 响应结果
- */
- public String invitationToRoom(InvitationToRoomRequest request) {
- return postRequest("/wxwork/InvitationToRoom", request);
- }
- /**
- * 获取客户群列表
- * @param request
- * @return
- */
- public String getChatroomMembers(GetChatroomMembersRequest request) {
- return postRequest("/wxwork/GetChatroomMembers", request);
- }
- /**
- * 获取群成员列表
- * @param request
- * @return
- */
- public String getRoomUserList(GetRoomUserListRequest request) {
- return postRequest("/wxwork/GetRoomUserList", request);
- }
- /**
- * 转让群主
- *
- * @param request 请求体
- * @return 响应结果
- */
- public String transferChatroomOwner(TransferChatroomOwnerRequest request) {
- return postRequest("/wxwork/TransferChatroomOwner", request);
- }
- /**
- * 发送文本消息
- *
- * @param request 请求体
- * {
- * "uuid":"1753cdff-0501-42fe-bb5a-2a4b9629f7fb",
- * "kf_id":0, //用来客服消息回复,正常发送忽略这个字段。
- * "send_userid":7881302555913738,
- * "isRoom":false,
- * "content":"ddddddd"
- * }
- * @return 响应结果
- */
- public String sendTextMsg(SendTextMsgRequest request) {
- return postRequest("/wxwork/SendTextMsg", request);
- }
- /**
- * 发送小程序消息
- *
- * @param request 请求体
- * {
- * "uuid":"543ed7f3-6ec1-4b1a-9e47-db8339a140f7",
- * "send_userid":7881302555913738,
- * "desc":"内容",
- * "appName":"小程序名称头像右边的",
- * "title":"小程序标题头像下边的",
- * "weappIconUrl":"https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png",//小程序头像
- * "pagepath":"pages/train/index/index.html",//小程序跳转地址
- * "username":"gh_c4a2a98a7366@app", //账号原始id
- * "appid":"wx45dff5234240ad90",//小程序appid
- * "cdnkey":"30680201020461305f750bed0b3c7d089fa7d55720d6cf0201010201000400", //小程序封面图 cdn上传获取
- * "md5":"d9c8750bed0b3c7d089fa7d55720d6cf",//封面图md5
- * "aeskey":"34323235376238666264636630663166",//封面图 返回的aeskey
- * "fileSize":15444,//封面图大小
- * "isRoom":false
- * }
- * @return 响应结果
- */
- public String sendAppMsg(SendAppMsgRequest request) {
- return postRequest("/wxwork/SendAppMsg", request);
- }
- /**
- * CDN上传网络图片
- * @param request
- * @return
- */
- public String cdnUploadImgLink(CdnUploadImgLinkRequest request) {
- return postRequest("/wxwork/CdnUploadImgLink", request);
- }
- /**
- * 退出登录
- *
- * @param request 请求体
- * @return 响应结果
- */
- public String loginOut(UuidRequest request) {
- return postRequest("/wxwork/LoginOut", request);
- }
- private String postRequest(String path, Object requestBody) {
- String url = baseUrl + path;
- String json = JSONObject.toJSONString(requestBody);
- RequestBody body = RequestBody.create(JSON, json);
- Request request = new Request.Builder()
- .url(url)
- .post(body)
- .build();
- try (Response response = client.newCall(request).execute()) {
- if (response.isSuccessful() && response.body() != null) {
- String responseStr = response.body().string();
- log.info("企微三方平台 请求成功, url: {}, body: {}, response: {}", url, json, responseStr);
- return responseStr;
- } else {
- log.error("企微三方平台 请求失败, url: {}, body: {}, response: {}", url, json, response);
- throw new IOException("Unexpected code " + response);
- }
- } catch (IOException e) {
- log.error("请求失败", e);
- }
- return null;
- }
- }
|