Skip to content

Commit d056cc8

Browse files
authored
🆕 #2752 【小程序】增加查询小程序版本信息的接口以及第三方userid_to_openuserid的接口
1 parent 1747190 commit d056cc8

File tree

7 files changed

+128
-0
lines changed

7 files changed

+128
-0
lines changed

Diff for: weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpUserService.java

+12
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@
33
import me.chanjar.weixin.common.error.WxErrorException;
44
import me.chanjar.weixin.cp.bean.WxCpInviteResult;
55
import me.chanjar.weixin.cp.bean.WxCpUser;
6+
import me.chanjar.weixin.cp.bean.WxCpUseridToOpenUseridResult;
67
import me.chanjar.weixin.cp.bean.external.contact.WxCpExternalContactInfo;
78

9+
import java.util.ArrayList;
810
import java.util.Date;
911
import java.util.List;
1012
import java.util.Map;
@@ -217,4 +219,14 @@ public interface WxCpUserService {
217219
* @throws WxErrorException .
218220
*/
219221
Integer getActiveStat(Date date) throws WxErrorException;
222+
223+
/**
224+
* userid转换为open_userid
225+
* 将自建应用或代开发应用获取的userid转换为第三方应用的userid
226+
* https://developer.work.weixin.qq.com/document/path/95603
227+
* @param useridList
228+
* @return the WxCpUseridToOpenUseridResult
229+
* @throws WxErrorException
230+
*/
231+
WxCpUseridToOpenUseridResult useridToOpenUserid(ArrayList<String> useridList) throws WxErrorException;
220232
}

Diff for: weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpUserServiceImpl.java

+17
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,14 @@
1212
import me.chanjar.weixin.cp.api.WxCpUserService;
1313
import me.chanjar.weixin.cp.bean.WxCpInviteResult;
1414
import me.chanjar.weixin.cp.bean.WxCpUser;
15+
import me.chanjar.weixin.cp.bean.WxCpUseridToOpenUseridResult;
1516
import me.chanjar.weixin.cp.bean.external.contact.WxCpExternalContactInfo;
17+
import me.chanjar.weixin.cp.constant.WxCpApiPathConsts;
1618
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
1719
import org.apache.commons.lang3.time.FastDateFormat;
1820

1921
import java.text.Format;
22+
import java.util.ArrayList;
2023
import java.util.Date;
2124
import java.util.List;
2225
import java.util.Map;
@@ -223,4 +226,18 @@ public Integer getActiveStat(Date date) throws WxErrorException {
223226
JsonObject tmpJson = GsonParser.parse(responseContent);
224227
return tmpJson.get("active_cnt").getAsInt();
225228
}
229+
230+
@Override
231+
public WxCpUseridToOpenUseridResult useridToOpenUserid(ArrayList<String> useridList) throws WxErrorException {
232+
JsonObject jsonObject = new JsonObject();
233+
JsonArray jsonArray = new JsonArray();
234+
for(String userid:useridList){
235+
jsonArray.add(userid);
236+
}
237+
jsonObject.add("userid_list", jsonArray);
238+
String url = this.mainService.getWxCpConfigStorage().getApiUrl(USERID_TO_OPEN_USERID);
239+
String responseContent = this.mainService.post(url, jsonObject.toString());
240+
return WxCpUseridToOpenUseridResult.fromJson(responseContent);
241+
}
242+
226243
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package me.chanjar.weixin.cp.bean;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
import lombok.Data;
5+
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
6+
7+
import java.io.Serializable;
8+
9+
/**
10+
* userid转换为open_userid
11+
* 将自建应用或代开发应用获取的userid转换为第三方应用的userid
12+
* 中间对象
13+
* Created by gxh0797 on 2022.07.26.
14+
*
15+
*/
16+
@Data
17+
public class WxCpUseridToOpenUserid implements Serializable {
18+
private static final long serialVersionUID = 1420065684270213578L;
19+
20+
@Override
21+
public String toString() {
22+
return WxCpGsonBuilder.create().toJson(this);
23+
}
24+
25+
public static WxCpUseridToOpenUserid fromJson(String json) {
26+
return WxCpGsonBuilder.create().fromJson(json, WxCpUseridToOpenUserid.class);
27+
}
28+
29+
@SerializedName("userid")
30+
private String userid;
31+
32+
@SerializedName("open_userid")
33+
private String openUserid;
34+
35+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package me.chanjar.weixin.cp.bean;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
import lombok.Data;
5+
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
6+
7+
import java.io.Serializable;
8+
import java.util.List;
9+
10+
/**
11+
* userid转换为open_userid
12+
* 将自建应用或代开发应用获取的userid转换为第三方应用的userid
13+
* Created by gxh0797 on 2022.07.26.
14+
*
15+
*/
16+
@Data
17+
public class WxCpUseridToOpenUseridResult implements Serializable {
18+
private static final long serialVersionUID = 1420065684270213578L;
19+
20+
@Override
21+
public String toString() {
22+
return WxCpGsonBuilder.create().toJson(this);
23+
}
24+
25+
public static WxCpUseridToOpenUseridResult fromJson(String json) {
26+
return WxCpGsonBuilder.create().fromJson(json, WxCpUseridToOpenUseridResult.class);
27+
}
28+
29+
@SerializedName("errcode")
30+
private Integer errCode;
31+
32+
@SerializedName("errmsg")
33+
private String errMsg;
34+
35+
@SerializedName("open_userid_list")
36+
private List<WxCpUseridToOpenUserid> openUseridList;
37+
38+
@SerializedName("invalid_userid_list")
39+
private List<String> invalidUseridList;
40+
41+
42+
}

Diff for: weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpApiPathConsts.java

+1
Original file line numberDiff line numberDiff line change
@@ -324,6 +324,7 @@ interface User {
324324
String GET_EXTERNAL_CONTACT = "/cgi-bin/crm/get_external_contact?external_userid=";
325325
String GET_JOIN_QR_CODE = "/cgi-bin/corp/get_join_qrcode?size_type=";
326326
String GET_ACTIVE_STAT = "/cgi-bin/user/get_active_stat";
327+
String USERID_TO_OPEN_USERID = "/cgi-bin/batch/userid_to_openuserid";
327328
}
328329

329330
interface ExternalContact {

Diff for: weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenMaService.java

+13
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,11 @@ public interface WxOpenMaService extends WxMaService {
251251
*/
252252
String API_WX_AMP_LINK_UN = "https://api.weixin.qq.com/cgi-bin/wxopen/wxampunlink";
253253

254+
/**
255+
* 小程序管理-查询小程序版本信息
256+
*/
257+
String API_GET_VERSION_INFO = "https://api.weixin.qq.com/wxa/getversioninfo";
258+
254259
/**
255260
* 获得小程序的域名配置信息
256261
*
@@ -702,4 +707,12 @@ WxOpenMaDomainResult modifyDomain(String action, List<String> requestDomains, Li
702707
*/
703708
WxOpenResult wxAmpUnLink(String appid) throws WxErrorException;
704709

710+
/**
711+
* 查询小程序版本信息
712+
*
713+
* @return the wx open result
714+
* @throws WxErrorException the wx error exception
715+
*/
716+
WxOpenResult getVersionInfo() throws WxErrorException;
717+
705718
}

Diff for: weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenMaServiceImpl.java

+8
Original file line numberDiff line numberDiff line change
@@ -439,4 +439,12 @@ private JsonArray toJsonArray(List<String> strList) {
439439
}
440440
return jsonArray;
441441
}
442+
443+
@Override
444+
public WxOpenResult getVersionInfo() throws WxErrorException {
445+
JsonObject params = new JsonObject();
446+
String response = post(API_GET_VERSION_INFO, GSON.toJson(params));
447+
WxOpenResult result = WxMaGsonBuilder.create().fromJson(response, WxOpenResult.class);
448+
return result;
449+
}
442450
}

0 commit comments

Comments
 (0)