diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaCodeService.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaCodeService.java
index 7c13818b8..e560a1512 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaCodeService.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaCodeService.java
@@ -105,6 +105,14 @@ public interface WxMaCodeService {
*/
WxMaCodeVersionDistribution getSupportVersion() throws WxErrorException;
+ /**
+ * 查询小程序版本信息
+ *
+ * @return 小程序的体验版和线上版本信息
+ * @throws WxErrorException 失败时抛出,具体错误码请看此接口的注释文档
+ */
+ WxMaCodeVersionInfo getVersionInfo() throws WxErrorException;
+
/**
* 设置最低基础库版本(仅供第三方代小程序调用).
*
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaCodeServiceImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaCodeServiceImpl.java
index 37265cfe5..68271254a 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaCodeServiceImpl.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaCodeServiceImpl.java
@@ -138,6 +138,12 @@ public class WxMaCodeServiceImpl implements WxMaCodeService {
return WxMaCodeVersionDistribution.fromJson(responseContent);
}
+ @Override
+ public WxMaCodeVersionInfo getVersionInfo() throws WxErrorException {
+ String responseContent = this.service.post(GET_VERSION_INFO_URL, "{}");
+ return WxMaCodeVersionInfo.fromJson(responseContent);
+ }
+
@Override
public void setSupportVersion(String version) throws WxErrorException {
JsonObject param = new JsonObject();
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/code/WxMaCodeVersionInfo.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/code/WxMaCodeVersionInfo.java
new file mode 100644
index 000000000..32999382f
--- /dev/null
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/code/WxMaCodeVersionInfo.java
@@ -0,0 +1,91 @@
+package cn.binarywang.wx.miniapp.bean.code;
+
+import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder;
+import com.google.gson.annotations.SerializedName;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * 查询小程序版本信息
+ *
+ * @author LeonXi
+ * @since 2022-04-13 16:45
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class WxMaCodeVersionInfo implements Serializable {
+
+ private static final long serialVersionUID = 6929700728659511688L;
+
+ /**
+ * 体验版信息
+ */
+ @SerializedName("exp_info")
+ private ExpInfo expInfo;
+
+ /**
+ * 线上版信息
+ */
+ @SerializedName("release_info")
+ private ReleaseInfo releaseInfo;
+
+ public static WxMaCodeVersionInfo fromJson(String json) {
+ return WxMaGsonBuilder.create().fromJson(json, WxMaCodeVersionInfo.class);
+ }
+
+ @Data
+ @NoArgsConstructor
+ @AllArgsConstructor
+ public static class ExpInfo implements Serializable {
+
+ private static final long serialVersionUID = 6315578419554592943L;
+
+ /**
+ * 提交体验版的时间
+ */
+ @SerializedName("exp_time")
+ private Long expTime;
+
+ /**
+ * 体验版版本信息
+ */
+ @SerializedName("exp_version")
+ private String expVersion;
+
+ /**
+ * 体验版版本描述
+ */
+ @SerializedName("exp_desc")
+ private String expDesc;
+ }
+
+ @Data
+ @NoArgsConstructor
+ @AllArgsConstructor
+ public static class ReleaseInfo implements Serializable {
+
+ private static final long serialVersionUID = 2098307354673939939L;
+
+ /**
+ * 发布线上版的时间
+ */
+ @SerializedName("release_time")
+ private Long releaseTime;
+
+ /**
+ * 线上版版本信息
+ */
+ @SerializedName("release_version")
+ private String releaseVersion;
+
+ /**
+ * 线上版本描述
+ */
+ @SerializedName("release_desc")
+ private String releaseDesc;
+ }
+}
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 4377b148b..0124943b6 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
@@ -70,6 +70,7 @@ public class WxMaApiUrlConstants {
String GET_SUPPORT_VERSION_URL = "https://api.weixin.qq.com/cgi-bin/wxopen/getweappsupportversion";
String SET_SUPPORT_VERSION_URL = "https://api.weixin.qq.com/cgi-bin/wxopen/setweappsupportversion";
String UNDO_CODE_AUDIT_URL = "https://api.weixin.qq.com/wxa/undocodeaudit";
+ String GET_VERSION_INFO_URL = "https://api.weixin.qq.com/wxa/getversioninfo";
}
public interface Express {
diff --git a/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaCodeServiceImplTest.java b/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaCodeServiceImplTest.java
index 0a4aca45e..bac7bab5b 100644
--- a/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaCodeServiceImplTest.java
+++ b/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaCodeServiceImplTest.java
@@ -1,25 +1,21 @@
package cn.binarywang.wx.miniapp.api.impl;
+import cn.binarywang.wx.miniapp.api.WxMaCodeService;
+import cn.binarywang.wx.miniapp.api.WxMaService;
+import cn.binarywang.wx.miniapp.bean.code.*;
+import cn.binarywang.wx.miniapp.config.WxMaConfig;
+import cn.binarywang.wx.miniapp.test.ApiTestModule;
+import com.google.inject.Inject;
+import org.testng.annotations.Guice;
+import org.testng.annotations.Test;
+
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.testng.annotations.*;
-
-import cn.binarywang.wx.miniapp.api.WxMaCodeService;
-import cn.binarywang.wx.miniapp.api.WxMaService;
-import cn.binarywang.wx.miniapp.bean.code.WxMaCategory;
-import cn.binarywang.wx.miniapp.bean.code.WxMaCodeAuditStatus;
-import cn.binarywang.wx.miniapp.bean.code.WxMaCodeCommitRequest;
-import cn.binarywang.wx.miniapp.bean.code.WxMaCodeExtConfig;
-import cn.binarywang.wx.miniapp.bean.code.WxMaCodeSubmitAuditRequest;
-import cn.binarywang.wx.miniapp.bean.code.WxMaCodeVersionDistribution;
-import cn.binarywang.wx.miniapp.config.WxMaConfig;
-import cn.binarywang.wx.miniapp.test.ApiTestModule;
-import com.google.inject.Inject;
-
-import static org.testng.Assert.*;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertTrue;
/**
* @author Charming
@@ -143,6 +139,12 @@ public class WxMaCodeServiceImplTest {
System.out.println(distribution);
}
+ @Test
+ public void testGetVersionInfo() throws Exception {
+ WxMaCodeVersionInfo versionInfo = wxService.getCodeService().getVersionInfo();
+ System.out.println(versionInfo);
+ }
+
@Test
public void testSetSupportVersion() throws Exception {
wxService.getCodeService().setSupportVersion("1.2.0");