From 0c6121a7f1e62582d8edf268db2f123172b008d4 Mon Sep 17 00:00:00 2001 From: Lo_ading Date: Wed, 10 Nov 2021 14:00:13 +0800 Subject: [PATCH 1/9] =?UTF-8?q?ExternalProfile=E5=8A=A0=E5=85=A5externalCo?= =?UTF-8?q?rpName=E5=92=8CwechatChannels=E5=AD=97=E6=AE=B5=EF=BC=9BgetCont?= =?UTF-8?q?actDetail=E6=96=B9=E6=B3=95=E5=8A=A0=E5=85=A5=E5=B8=A6cursor?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cp/api/WxCpExternalContactService.java | 4 +++- .../impl/WxCpExternalContactServiceImpl.java | 11 ++++++++++ .../external/contact/ExternalContact.java | 20 +++++++++++++++++++ 3 files changed, 34 insertions(+), 1 deletion(-) diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpExternalContactService.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpExternalContactService.java index 396bbe4a9c..9c32fcf4a7 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpExternalContactService.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpExternalContactService.java @@ -135,6 +135,8 @@ public interface WxCpExternalContactService { */ WxCpExternalContactInfo getContactDetail(String userId) throws WxErrorException; + WxCpExternalContactInfo getContactDetail(String userId, String cursor) throws WxErrorException; + /** * 企业和服务商可通过此接口,将微信外部联系人的userid转为微信openid,用于调用支付相关接口。暂不支持企业微信外部联系人(ExternalUserid为wo开头)的userid转openid。 * @@ -190,7 +192,7 @@ public interface WxCpExternalContactService { * @throws WxErrorException . */ String opengidToChatid(@NotNull String opengid) throws WxErrorException; - + /** * 批量获取客户详情. *
diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImpl.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImpl.java
index 19937e3827..15013c2ec7 100644
--- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImpl.java
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImpl.java
@@ -108,6 +108,17 @@ public WxCpExternalContactInfo getContactDetail(String userId) throws WxErrorExc
     return WxCpExternalContactInfo.fromJson(responseContent);
   }
 
+  @Override
+  public WxCpExternalContactInfo getContactDetail(String userId, String cursor) throws WxErrorException {
+    String params = userId;
+    if(StringUtils.isNotEmpty(cursor)){
+      params = params + "&cursor=" + cursor;
+    }
+    final String url = this.mainService.getWxCpConfigStorage().getApiUrl(GET_CONTACT_DETAIL + params);
+    String responseContent = this.mainService.get(url, null);
+    return WxCpExternalContactInfo.fromJson(responseContent);
+  }
+
   @Override
   public String convertToOpenid(@NotNull String externalUserId) throws WxErrorException {
     JsonObject json = new JsonObject();
diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/contact/ExternalContact.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/contact/ExternalContact.java
index 5b7f9e67b1..f19584ed90 100644
--- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/contact/ExternalContact.java
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/contact/ExternalContact.java
@@ -51,10 +51,30 @@ public class ExternalContact implements Serializable {
   public static class ExternalProfile implements Serializable {
     private static final long serialVersionUID = -2899906589789022765L;
 
+    @SerializedName("external_corp_name")
+    private String externalCorpName;
+
+    @SerializedName("wechat_channels")
+    private WechatChannel wechatChannels;
+
     @SerializedName("external_attr")
     private List externalAttrs;
   }
 
+  @Data
+  @Builder
+  @NoArgsConstructor
+  @AllArgsConstructor
+  public static class WechatChannel implements Serializable {
+
+    @SerializedName("nickname")
+    private String nickname;
+
+    @SerializedName("status")
+    private Integer status;
+
+  }
+
   @Data
   @Builder
   @NoArgsConstructor

From c19dbe4beec77a6c1afc3383d5eae454ec1daee7 Mon Sep 17 00:00:00 2001
From: Lo_ading 
Date: Wed, 10 Nov 2021 14:00:30 +0800
Subject: [PATCH 2/9] =?UTF-8?q?ExternalProfile=E5=8A=A0=E5=85=A5externalCo?=
 =?UTF-8?q?rpName=E5=92=8CwechatChannels=E5=AD=97=E6=AE=B5=EF=BC=9BgetCont?=
 =?UTF-8?q?actDetail=E6=96=B9=E6=B3=95=E5=8A=A0=E5=85=A5=E5=B8=A6cursor?=
 =?UTF-8?q?=E5=AE=9E=E7=8E=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../chanjar/weixin/cp/api/WxCpExternalContactService.java  | 3 +--
 .../weixin/cp/api/impl/WxCpExternalContactServiceImpl.java | 7 -------
 2 files changed, 1 insertion(+), 9 deletions(-)

diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpExternalContactService.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpExternalContactService.java
index 9c32fcf4a7..4e0433f9bd 100644
--- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpExternalContactService.java
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpExternalContactService.java
@@ -130,11 +130,10 @@ public interface WxCpExternalContactService {
    * 
* * @param userId 外部联系人的userid,注意不是企业成员的帐号 + * @param cursor 用于分页查询的游标,字符串类型,由上一次调用返回,首次调用可不填 * @return . contact detail * @throws WxErrorException . */ - WxCpExternalContactInfo getContactDetail(String userId) throws WxErrorException; - WxCpExternalContactInfo getContactDetail(String userId, String cursor) throws WxErrorException; /** diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImpl.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImpl.java index 15013c2ec7..b385b2b65b 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImpl.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImpl.java @@ -101,13 +101,6 @@ public WxCpExternalContactInfo getExternalContact(String userId) throws WxErrorE return WxCpExternalContactInfo.fromJson(responseContent); } - @Override - public WxCpExternalContactInfo getContactDetail(String userId) throws WxErrorException { - final String url = this.mainService.getWxCpConfigStorage().getApiUrl(GET_CONTACT_DETAIL + userId); - String responseContent = this.mainService.get(url, null); - return WxCpExternalContactInfo.fromJson(responseContent); - } - @Override public WxCpExternalContactInfo getContactDetail(String userId, String cursor) throws WxErrorException { String params = userId; From a62245e5c5ca6a8b27a4656be50c5781989ad153 Mon Sep 17 00:00:00 2001 From: Lo_ading Date: Wed, 10 Nov 2021 14:18:52 +0800 Subject: [PATCH 3/9] update GetContactDetail test --- .../weixin/cp/api/impl/WxCpExternalContactServiceImplTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImplTest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImplTest.java index 60fdeb9b2e..2b6ae6b98e 100644 --- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImplTest.java +++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImplTest.java @@ -111,7 +111,7 @@ public void testListExternalWithPermission() throws WxErrorException { @Test public void testGetContactDetail() throws WxErrorException { String externalUserId = this.configStorage.getExternalUserId(); - WxCpExternalContactInfo result = this.wxCpService.getExternalContactService().getContactDetail(externalUserId); + WxCpExternalContactInfo result = this.wxCpService.getExternalContactService().getContactDetail(externalUserId, null); System.out.println(result); assertNotNull(result); } From 68e6d4cf16bc957acfb73dfcf03dcd4808fc741b Mon Sep 17 00:00:00 2001 From: Lo_ading Date: Wed, 10 Nov 2021 17:28:57 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=95=86=E5=93=81?= =?UTF-8?q?=E5=9B=BE=E5=86=8C=E8=8E=B7=E5=8F=96=E6=8E=A5=E5=8F=A3=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cp/api/WxCpExternalContactService.java | 27 ++++++++++++ .../impl/WxCpExternalContactServiceImpl.java | 41 +++++++++++++++++ .../bean/external/WxCpProductAlbumInfo.java | 44 +++++++++++++++++++ .../external/WxCpProductAlbumListResult.java | 35 +++++++++++++++ .../bean/external/WxCpProductAlbumResult.java | 31 +++++++++++++ .../weixin/cp/constant/WxCpApiPathConsts.java | 3 ++ .../WxCpExternalContactServiceImplTest.java | 16 +++++++ 7 files changed, 197 insertions(+) create mode 100644 weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpProductAlbumInfo.java create mode 100644 weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpProductAlbumListResult.java create mode 100644 weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpProductAlbumResult.java diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpExternalContactService.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpExternalContactService.java index 4e0433f9bd..b4237025c5 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpExternalContactService.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpExternalContactService.java @@ -790,4 +790,31 @@ WxCpGetMomentComments getMomentComments(String momentId, String userId) * @throws WxErrorException the wx error exception */ WxCpBaseResp delGroupWelcomeTemplate(@NotNull String templateId, String agentId) throws WxErrorException; + + /** + *
+   * 获取商品图册
+   * https://work.weixin.qq.com/api/doc/90000/90135/95096#获取商品图册列表
+   * 
+ * + * @param limit 返回的最大记录数,整型,最大值100,默认值50,超过最大值时取默认值 + * @param cursor 用于分页查询的游标,字符串类型,由上一次调用返回,首次调用可不填 + * @return wx cp base resp + * @throws WxErrorException the wx error exception + */ + WxCpProductAlbumListResult getProductAlbumList(Integer limit, String cursor) throws WxErrorException; + + /** + *
+   * 获取商品图册
+   * https://work.weixin.qq.com/api/doc/90000/90135/95096#获取商品图册
+   * 
+ * + * @param productId 商品id + * @return wx cp base resp + * @throws WxErrorException the wx error exception + */ + WxCpProductAlbumResult getProductAlbum(String productId) throws WxErrorException; + + } diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImpl.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImpl.java index b385b2b65b..d9426a8340 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImpl.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImpl.java @@ -706,4 +706,45 @@ public WxCpBaseResp delGroupWelcomeTemplate(@NotNull String templateId, String a final String result = this.mainService.post(url, json.toString()); return WxCpBaseResp.fromJson(result); } + + /** + *
+   * 获取商品图册
+   * https://work.weixin.qq.com/api/doc/90000/90135/95096#获取商品图册列表
+   * 
+ * + * @param limit 返回的最大记录数,整型,最大值100,默认值50,超过最大值时取默认值 + * @param cursor 用于分页查询的游标,字符串类型,由上一次调用返回,首次调用可不填 + * @return wx cp base resp + * @throws WxErrorException the wx error exception + */ + @Override + public WxCpProductAlbumListResult getProductAlbumList(Integer limit, String cursor) throws WxErrorException { + JsonObject json = new JsonObject(); + json.addProperty("limit", limit); + json.addProperty("cursor", cursor); + final String url = this.mainService.getWxCpConfigStorage().getApiUrl(GET_PRODUCT_ALBUM_LIST); + final String result = this.mainService.post(url, json.toString()); + return WxCpProductAlbumListResult.fromJson(result); + } + + /** + *
+   * 获取商品图册
+   * https://work.weixin.qq.com/api/doc/90000/90135/95096#获取商品图册
+   * 
+ * + * @param productId 商品id + * @return wx cp base resp + * @throws WxErrorException the wx error exception + */ + @Override + public WxCpProductAlbumResult getProductAlbum(String productId) throws WxErrorException { + JsonObject json = new JsonObject(); + json.addProperty("product_id", productId); + final String url = this.mainService.getWxCpConfigStorage().getApiUrl(GET_PRODUCT_ALBUM); + final String result = this.mainService.post(url, json.toString()); + return WxCpProductAlbumResult.fromJson(result); + } + } diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpProductAlbumInfo.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpProductAlbumInfo.java new file mode 100644 index 0000000000..5e5b23ad83 --- /dev/null +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpProductAlbumInfo.java @@ -0,0 +1,44 @@ +package me.chanjar.weixin.cp.bean.external; + +import com.google.gson.annotations.SerializedName; +import java.io.Serializable; +import java.util.List; +import lombok.Getter; +import lombok.Setter; +import me.chanjar.weixin.cp.bean.external.msg.Attachment; +import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder; + +/** + *
+ * 获取商品图册
+ * 参考文档:https://work.weixin.qq.com/api/doc/90000/90135/95096#获取商品图册
+ * 
+ * + * @author Lo_ading + */ +@Getter +@Setter +public class WxCpProductAlbumInfo implements Serializable { + + private static final long serialVersionUID = 3464981991558716620L; + + @SerializedName("product_id") + private String productId; + + @SerializedName("product_sn") + private String productSn; + + @SerializedName("description") + private String description; + + @SerializedName("price") + private Integer price; + + @SerializedName("attachments") + private List attachments; + + public static WxCpProductAlbumInfo fromJson(String json) { + return WxCpGsonBuilder.create().fromJson(json, WxCpProductAlbumInfo.class); + } + +} diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpProductAlbumListResult.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpProductAlbumListResult.java new file mode 100644 index 0000000000..16e0589af0 --- /dev/null +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpProductAlbumListResult.java @@ -0,0 +1,35 @@ +package me.chanjar.weixin.cp.bean.external; + +import com.google.gson.annotations.SerializedName; +import java.io.Serializable; +import java.util.List; +import lombok.Getter; +import lombok.Setter; +import me.chanjar.weixin.cp.bean.WxCpBaseResp; +import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder; + +/** + *
+ * 获取商品图册列表执行结果
+ * 参考文档:https://work.weixin.qq.com/api/doc/90000/90135/95096#获取商品图册列表
+ * 
+ * + * @author Lo_ading + */ +@Getter +@Setter +public class WxCpProductAlbumListResult extends WxCpBaseResp implements Serializable { + + private static final long serialVersionUID = 3464981991558716620L; + + @SerializedName("product_list") + private List productList; + + @SerializedName("next_cursor") + private String nextCursor; + + public static WxCpProductAlbumListResult fromJson(String json) { + return WxCpGsonBuilder.create().fromJson(json, WxCpProductAlbumListResult.class); + } + +} diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpProductAlbumResult.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpProductAlbumResult.java new file mode 100644 index 0000000000..93745387d6 --- /dev/null +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpProductAlbumResult.java @@ -0,0 +1,31 @@ +package me.chanjar.weixin.cp.bean.external; + +import com.google.gson.annotations.SerializedName; +import java.io.Serializable; +import lombok.Getter; +import lombok.Setter; +import me.chanjar.weixin.cp.bean.WxCpBaseResp; +import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder; + +/** + *
+ * 获取商品图册执行结果
+ * 参考文档:https://work.weixin.qq.com/api/doc/90000/90135/95096#获取商品图册
+ * 
+ * + * @author Lo_ading + */ +@Getter +@Setter +public class WxCpProductAlbumResult extends WxCpBaseResp implements Serializable { + + private static final long serialVersionUID = 3464981991558716620L; + + @SerializedName("product") + private WxCpProductAlbumInfo product; + + public static WxCpProductAlbumResult fromJson(String json) { + return WxCpGsonBuilder.create().fromJson(json, WxCpProductAlbumResult.class); + } + +} diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpApiPathConsts.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpApiPathConsts.java index ddc56d133e..71eadb63aa 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpApiPathConsts.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpApiPathConsts.java @@ -219,6 +219,9 @@ interface ExternalContact { String GET_GROUP_MSG_TASK = "/cgi-bin/externalcontact/get_groupmsg_task"; String GET_GROUP_MSG_LIST_V2 = "/cgi-bin/externalcontact/get_groupmsg_list_v2"; + String GET_PRODUCT_ALBUM = "/cgi-bin/externalcontact/get_product_album"; + String GET_PRODUCT_ALBUM_LIST = "/cgi-bin/externalcontact/get_product_album_list"; + String GROUP_WELCOME_TEMPLATE_ADD = "/cgi-bin/externalcontact/group_welcome_template/add"; String GROUP_WELCOME_TEMPLATE_EDIT = "/cgi-bin/externalcontact/group_welcome_template/edit"; String GROUP_WELCOME_TEMPLATE_GET = "/cgi-bin/externalcontact/group_welcome_template/get"; diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImplTest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImplTest.java index 2b6ae6b98e..ab6ba7000e 100644 --- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImplTest.java +++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImplTest.java @@ -20,6 +20,7 @@ import java.util.Collections; import java.util.Date; import java.util.List; +import org.testng.collections.CollectionUtils; import static org.testng.Assert.assertNotNull; @@ -314,4 +315,19 @@ public void testUpdateRemark() throws WxErrorException { .remarkPicMediaId("aaa") .build()); } + + @Test + public void testGetProductListAlbum() throws WxErrorException { + WxCpProductAlbumListResult result = this.wxCpService.getExternalContactService() + .getProductAlbumList(100, null); + System.out.println(result); + assertNotNull(result); + + if(CollectionUtils.hasElements(result.getProductList())){ + WxCpProductAlbumResult result1 = this.wxCpService.getExternalContactService().getProductAlbum(result.getProductList().get(0).getProductId()); + System.out.println(result); + assertNotNull(result); + } + } + } From 9fd3ffb305e253119d4a940ed5eeaecb4b6a02c3 Mon Sep 17 00:00:00 2001 From: Lo_ading Date: Wed, 10 Nov 2021 17:34:01 +0800 Subject: [PATCH 5/9] update --- .../me/chanjar/weixin/cp/api/WxCpExternalContactService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpExternalContactService.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpExternalContactService.java index b4237025c5..40e7741a97 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpExternalContactService.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpExternalContactService.java @@ -109,7 +109,7 @@ public interface WxCpExternalContactService { * @param userId 外部联系人的userid * @return . external contact * @throws WxErrorException the wx error exception - * @deprecated 建议使用 {@link #getContactDetail(String)} + * @deprecated 建议使用 {@link #getContactDetail(String, String)} */ @Deprecated WxCpExternalContactInfo getExternalContact(String userId) throws WxErrorException; From 1184e91f93d41753168405cbef75439109502bcf Mon Sep 17 00:00:00 2001 From: Lo_ading Date: Wed, 10 Nov 2021 17:56:10 +0800 Subject: [PATCH 6/9] =?UTF-8?q?=E8=A1=A5=E5=85=85=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chanjar/weixin/cp/bean/external/WxCpProductAlbumInfo.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpProductAlbumInfo.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpProductAlbumInfo.java index 5e5b23ad83..4241983267 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpProductAlbumInfo.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpProductAlbumInfo.java @@ -34,6 +34,9 @@ public class WxCpProductAlbumInfo implements Serializable { @SerializedName("price") private Integer price; + @SerializedName("create_time") + private Long createTime; + @SerializedName("attachments") private List attachments; From ca5e5de933c6f33f77f3703fa09b6c0a57ab476a Mon Sep 17 00:00:00 2001 From: Lo_ading Date: Wed, 10 Nov 2021 19:40:44 +0800 Subject: [PATCH 7/9] update --- .../bean/external/WxCpProductAlbumInfo.java | 4 ++-- .../external/WxCpProductAlbumListResult.java | 2 +- .../bean/external/WxCpProductAlbumResult.java | 2 +- .../cp/bean/external/product/Attachment.java | 24 +++++++++++++++++++ .../cp/bean/external/product/Image.java | 20 ++++++++++++++++ .../weixin/cp/constant/WxCpConsts.java | 11 +++++++++ .../WxCpExternalContactServiceImplTest.java | 5 ++-- 7 files changed, 61 insertions(+), 7 deletions(-) create mode 100644 weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/product/Attachment.java create mode 100644 weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/product/Image.java diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpProductAlbumInfo.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpProductAlbumInfo.java index 4241983267..36765b6464 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpProductAlbumInfo.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpProductAlbumInfo.java @@ -5,7 +5,7 @@ import java.util.List; import lombok.Getter; import lombok.Setter; -import me.chanjar.weixin.cp.bean.external.msg.Attachment; +import me.chanjar.weixin.cp.bean.external.product.Attachment; import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder; /** @@ -20,7 +20,7 @@ @Setter public class WxCpProductAlbumInfo implements Serializable { - private static final long serialVersionUID = 3464981991558716620L; + private static final long serialVersionUID = -8338202601802366899L; @SerializedName("product_id") private String productId; diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpProductAlbumListResult.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpProductAlbumListResult.java index 16e0589af0..29b9d4c571 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpProductAlbumListResult.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpProductAlbumListResult.java @@ -20,7 +20,7 @@ @Setter public class WxCpProductAlbumListResult extends WxCpBaseResp implements Serializable { - private static final long serialVersionUID = 3464981991558716620L; + private static final long serialVersionUID = 121265727802015428L; @SerializedName("product_list") private List productList; diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpProductAlbumResult.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpProductAlbumResult.java index 93745387d6..74e5fc3be4 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpProductAlbumResult.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpProductAlbumResult.java @@ -19,7 +19,7 @@ @Setter public class WxCpProductAlbumResult extends WxCpBaseResp implements Serializable { - private static final long serialVersionUID = 3464981991558716620L; + private static final long serialVersionUID = 4076734101839851497L; @SerializedName("product") private WxCpProductAlbumInfo product; diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/product/Attachment.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/product/Attachment.java new file mode 100644 index 0000000000..ef4be10ead --- /dev/null +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/product/Attachment.java @@ -0,0 +1,24 @@ +package me.chanjar.weixin.cp.bean.external.product; + +import java.io.Serializable; +import lombok.Data; +import me.chanjar.weixin.cp.constant.WxCpConsts; + +/** + * 商品画册附件 + * + * @author Lo_ading + */ +@Data +public class Attachment implements Serializable { + + private static final long serialVersionUID = -4545283630169056262L; + + /** + * 附件类型,目前仅支持image + */ + private String type = WxCpConsts.ProductAttachmentType.IMAGE ; + + private Image image; + +} diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/product/Image.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/product/Image.java new file mode 100644 index 0000000000..d56f0b2705 --- /dev/null +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/product/Image.java @@ -0,0 +1,20 @@ +package me.chanjar.weixin.cp.bean.external.product; + +import com.google.gson.annotations.SerializedName; +import java.io.Serializable; +import lombok.Data; + +/** + * 商品画册图片 + * + * @author Lo_ading + */ +@Data +public class Image implements Serializable { + + private static final long serialVersionUID = -2737415903252627814L; + + @SerializedName("media_id") + private String mediaId; + +} diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpConsts.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpConsts.java index 601c7dbb30..f706c18991 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpConsts.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpConsts.java @@ -359,4 +359,15 @@ public static class WelcomeMsgType { */ public static final String FILE = "file"; } + + @UtilityClass + public static class ProductAttachmentType { + + /** + * 图片消息. + */ + public static final String IMAGE = "image"; + + } + } diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImplTest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImplTest.java index ab6ba7000e..f9f90192d8 100644 --- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImplTest.java +++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImplTest.java @@ -322,11 +322,10 @@ public void testGetProductListAlbum() throws WxErrorException { .getProductAlbumList(100, null); System.out.println(result); assertNotNull(result); - if(CollectionUtils.hasElements(result.getProductList())){ WxCpProductAlbumResult result1 = this.wxCpService.getExternalContactService().getProductAlbum(result.getProductList().get(0).getProductId()); - System.out.println(result); - assertNotNull(result); + System.out.println(result1); + assertNotNull(result1); } } From 38e9829345c83e173a8a811b89ae9547b7dffc0a Mon Sep 17 00:00:00 2001 From: Lo_ading Date: Wed, 10 Nov 2021 20:36:07 +0800 Subject: [PATCH 8/9] update common --- .../weixin/cp/bean/external/WxCpProductAlbumInfo.java | 6 ++++++ .../weixin/cp/bean/external/product/Attachment.java | 11 +++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpProductAlbumInfo.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpProductAlbumInfo.java index 36765b6464..d84b9f232c 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpProductAlbumInfo.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpProductAlbumInfo.java @@ -31,9 +31,15 @@ public class WxCpProductAlbumInfo implements Serializable { @SerializedName("description") private String description; + /** + * NOTE: 20211110 价钱返回全部为0 + */ @SerializedName("price") private Integer price; + /** + * NOTE: 20211110 商品列表接口不返回此字段, 商品详情接口返回 + */ @SerializedName("create_time") private Long createTime; diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/product/Attachment.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/product/Attachment.java index ef4be10ead..cfcb688c2d 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/product/Attachment.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/product/Attachment.java @@ -15,10 +15,17 @@ public class Attachment implements Serializable { private static final long serialVersionUID = -4545283630169056262L; /** - * 附件类型,目前仅支持image + * NOTE: 20211110 字段接口未返回 */ - private String type = WxCpConsts.ProductAttachmentType.IMAGE ; + private String type; + /** + * 附件类型,目前仅支持image + */ private Image image; + public void setImage(Image image) { + this.image = image; + this.type = WxCpConsts.ProductAttachmentType.IMAGE; + } } From e61114d8a804d73c70302e483ecb9c197255d0c1 Mon Sep 17 00:00:00 2001 From: Lo_ading Date: Mon, 15 Nov 2021 19:00:37 +0800 Subject: [PATCH 9/9] add getMomentList test; add userid field for CommentLikeItem; change image to image list --- .../weixin/cp/bean/external/WxCpGetMomentComments.java | 2 ++ .../weixin/cp/bean/external/moment/MomentInfo.java | 3 ++- .../cp/api/impl/WxCpExternalContactServiceImplTest.java | 8 ++++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpGetMomentComments.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpGetMomentComments.java index 6976702612..b397954dcc 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpGetMomentComments.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpGetMomentComments.java @@ -29,6 +29,8 @@ public class WxCpGetMomentComments extends WxCpBaseResp { public static class CommentLikeItem { @SerializedName("external_userid") private String externalUserId; + @SerializedName("userid") + private String userid; @SerializedName("create_time") private Long createTime; } diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/moment/MomentInfo.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/moment/MomentInfo.java index 2ed770e101..589a4a58c0 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/moment/MomentInfo.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/moment/MomentInfo.java @@ -1,6 +1,7 @@ package me.chanjar.weixin.cp.bean.external.moment; import com.google.gson.annotations.SerializedName; +import java.util.List; import lombok.Data; import me.chanjar.weixin.cp.bean.external.msg.Image; import me.chanjar.weixin.cp.bean.external.msg.Link; @@ -21,7 +22,7 @@ public class MomentInfo { @SerializedName("visible_type") private Integer visibleType; private Text text; - private Image image; + private List image; private Video video; private Link link; private Location location; diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImplTest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImplTest.java index f9f90192d8..3f7cc0b3b3 100644 --- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImplTest.java +++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImplTest.java @@ -329,4 +329,12 @@ public void testGetProductListAlbum() throws WxErrorException { } } + @Test + public void testGetMomentList() throws WxErrorException { + WxCpGetMomentList result = this.wxCpService.getExternalContactService() + .getMomentList(1636732800L, 1636991999L, null, null, null, null); + System.out.println(result); + assertNotNull(result); + } + }