diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaInternetService.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaInternetService.java new file mode 100644 index 000000000..8e6a3e2d8 --- /dev/null +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaInternetService.java @@ -0,0 +1,27 @@ +package cn.binarywang.wx.miniapp.api; + +import cn.binarywang.wx.miniapp.bean.internet.WxMaInternetResponse; +import me.chanjar.weixin.common.error.WxErrorException; + +/** + *
+ * 【小程序-服务端-网络】网络相关接口. + * 文档地址:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/internet/internet.getUserEncryptKey.html + *+ * @author chutian0124 + */ +public interface WxMaInternetService { + /** + * + * + *
+ * 获取用户encryptKey。 会获取用户最近3次的key,每个key的存活时间为3600s。 + * 文档地址:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/internet/internet.getUserEncryptKey.html + * 接口地址:POST https://api.weixin.qq.com/wxa/business/getuserencryptkey?access_token=ACCESS_TOKEN&openid=OPENID&signature=SIGNATURE&sig_method=hmac_sha256 + *+ * + * @return {@link WxMaInternetResponse} + * @throws WxErrorException + */ + WxMaInternetResponse getUserEncryptKey() 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 a182c245c..1ebf7d7eb 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 @@ -342,6 +342,13 @@ public interface WxMaService extends WxService { */ WxMaCloudService getCloudService(); + /** + * 获取服务端网络接口服务对象 + * + * @return 。internet service + */ + WxMaInternetService getInternetService(); + /** * 获取直播接口服务对象 * 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 096eedd5b..ecbce2ee0 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 @@ -49,6 +49,7 @@ public abstract class BaseWxMaServiceImpl
+ * 获取用户encryptKey。 用户最近三次的加密key,每个key的存活时间为3600s。
+ * 【小程序-服务端-网络】网络相关接口.
+ * 文档地址:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/internet/internet.getUserEncryptKey.html
+ * 微信返回报文:
+ * {
+ * "errcode":0,
+ * "errmsg":"ok",
+ * "key_info_list":
+ * [
+ * {
+ * "encrypt_key":"VI6BpyrK9XH4i4AIGe86tg==",
+ * "version":10,
+ * "expire_in":3597,
+ * "iv":"6003f73ec441c386",
+ * "create_time":1616572301
+ * },
+ * {
+ * "encrypt_key":"aoUGAHltcliiL9f23oTKHA==",
+ * "version":9,
+ * "expire_in":0,
+ * "iv":"7996656384218dbb",
+ * "create_time":1616504886
+ * },
+ * {
+ * "encrypt_key":"MlZNQNnRQz3zXHHcr6A3mA==",
+ * "version":8,
+ * "expire_in":0,
+ * "iv":"58a1814f88883024",
+ * "create_time":1616488061
+ * }
+ * ]
+ * }
+ *
+ *
+ * @author chutian0124
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class WxMaInternetResponse extends WxMaBaseResponse implements Serializable {
+
+ private static final long serialVersionUID = 6254922047193011785L;
+ /**
+ * 用户最近三次的加密key列表
+ */
+ @SerializedName("key_info_list")
+ List
+ * 【小程序-服务端-网络】网络相关接口.
+ * 文档地址:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/internet/internet.getUserEncryptKey.html
+ * 微信返回报文:
+ * {
+ * "encrypt_key":"VI6BpyrK9XH4i4AIGe86tg==",
+ * "version":10,
+ * "expire_in":3597,
+ * "iv":"6003f73ec441c386",
+ * "create_time":1616572301
+ * }
+ *
+ *
+ * @author chutian0124
+ */
+@Data
+public class WxMaInternetUserKeyInfo implements Serializable {
+ private static final long serialVersionUID = 117922490907396705L;
+ /**
+ * 加密key
+ */
+ @SerializedName("encrypt_key")
+ private String encryptKey;
+
+ /**
+ * key的版本号
+ */
+ private Integer version;
+
+ /**
+ * 剩余有效时间
+ */
+ @SerializedName("expire_in")
+ private Long expireIn;
+
+ /**
+ * 加密iv
+ */
+ private String iv;
+
+ /**
+ * 创建key的时间戳
+ */
+ @SerializedName("create_time")
+ private Long createTime;
+}
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 f65fceaaa..37c8db131 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
@@ -388,4 +388,8 @@ public class WxMaApiUrlConstants {
*/
String UPDATE_STATUS_BATCH = "https://api.weixin.qq.com/card/invoice/reimburse/updatestatusbatch";
}
+
+ public interface Internet{
+ String GET_USER_ENCRYPT_KEY = "https://api.weixin.qq.com/wxa/business/getuserencryptkey";
+ }
}
diff --git a/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaInternetServiceImplTest.java b/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaInternetServiceImplTest.java
new file mode 100644
index 000000000..ccc2f9c93
--- /dev/null
+++ b/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaInternetServiceImplTest.java
@@ -0,0 +1,29 @@
+package cn.binarywang.wx.miniapp.api.impl;
+
+import cn.binarywang.wx.miniapp.api.WxMaService;
+import cn.binarywang.wx.miniapp.bean.internet.WxMaInternetResponse;
+import cn.binarywang.wx.miniapp.test.ApiTestModule;
+import com.google.inject.Inject;
+import me.chanjar.weixin.common.error.WxErrorException;
+import org.testng.annotations.Guice;
+import org.testng.annotations.Test;
+
+/**
+ *
+ * 服务端网络相关接口测试
+ *
+ * @author chutian0124
+ * @date 2021-09-06
+ */
+@Test
+@Guice(modules = ApiTestModule.class)
+public class WxMaInternetServiceImplTest {
+ @Inject
+ private WxMaService wxService;
+
+ @Test
+ public void testGetUserEncryptKey() throws WxErrorException {
+ WxMaInternetResponse response = this.wxService.getInternetService().getUserEncryptKey();
+ System.out.println(response);
+ }
+}