diff --git a/spring-boot-starters/wx-java-open-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/open/config/WxOpenStorageAutoConfiguration.java b/spring-boot-starters/wx-java-open-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/open/config/WxOpenStorageAutoConfiguration.java index c97f00451d..25daf0d4f9 100644 --- a/spring-boot-starters/wx-java-open-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/open/config/WxOpenStorageAutoConfiguration.java +++ b/spring-boot-starters/wx-java-open-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/open/config/WxOpenStorageAutoConfiguration.java @@ -133,6 +133,7 @@ private RedissonClient getRedissonClient() { Config config = new Config(); config.useSingleServer() .setAddress("redis://" + redis.getHost() + ":" + redis.getPort()) + .setDatabase(redis.getDatabase()) .setPassword(redis.getPassword()); config.setTransportMode(TransportMode.NIO); return Redisson.create(config); 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 1f435303cf..62d466b9aa 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 @@ -1,6 +1,8 @@ package me.chanjar.weixin.cp.constant; +import lombok.experimental.UtilityClass; + /** *
* 企业微信api地址常量类 @@ -9,6 +11,7 @@ * * @author Binary Wang */ +@UtilityClass public final class WxCpApiPathConsts { public static final String DEFAULT_CP_BASE_URL = "https://qyapi.weixin.qq.com"; @@ -26,6 +29,7 @@ public final class WxCpApiPathConsts { * 消息推送相关接口 * https://work.weixin.qq.com/api/doc/90000/90135/90235 */ + @UtilityClass public static class Message { /** * 发送应用消息 @@ -38,18 +42,21 @@ public static class Message { public static final String LINKEDCORP_MESSAGE_SEND = "/cgi-bin/linkedcorp/message/send"; } + @UtilityClass public static class Agent { public static final String AGENT_GET = "/cgi-bin/agent/get?agentid=%d"; public static final String AGENT_SET = "/cgi-bin/agent/set"; public static final String AGENT_LIST = "/cgi-bin/agent/list"; } + @UtilityClass public static class OAuth2 { public static final String GET_USER_INFO = "/cgi-bin/user/getuserinfo?code=%s&agentid=%d"; public static final String GET_USER_DETAIL = "/cgi-bin/user/getuserdetail"; public static final String URL_OAUTH2_AUTHORIZE = "https://open.weixin.qq.com/connect/oauth2/authorize"; } + @UtilityClass public static class Chat { public static final String APPCHAT_CREATE = "/cgi-bin/appchat/create"; public static final String APPCHAT_UPDATE = "/cgi-bin/appchat/update"; @@ -57,6 +64,7 @@ public static class Chat { public static final String APPCHAT_SEND = "/cgi-bin/appchat/send"; } + @UtilityClass public static class Department { public static final String DEPARTMENT_CREATE = "/cgi-bin/department/create"; public static final String DEPARTMENT_UPDATE = "/cgi-bin/department/update"; @@ -64,6 +72,7 @@ public static class Department { public static final String DEPARTMENT_LIST = "/cgi-bin/department/list"; } + @UtilityClass public static class Media { public static final String MEDIA_GET = "/cgi-bin/media/get"; public static final String MEDIA_UPLOAD = "/cgi-bin/media/upload?type="; @@ -71,12 +80,14 @@ public static class Media { public static final String JSSDK_MEDIA_GET = "/cgi-bin/media/get/jssdk"; } + @UtilityClass public static class Menu { public static final String MENU_CREATE = "/cgi-bin/menu/create?agentid=%d"; public static final String MENU_DELETE = "/cgi-bin/menu/delete?agentid=%d"; public static final String MENU_GET = "/cgi-bin/menu/get?agentid=%d"; } + @UtilityClass public static class Oa { public static final String GET_CHECKIN_DATA = "/cgi-bin/checkin/getcheckindata"; public static final String GET_CHECKIN_OPTION = "/cgi-bin/checkin/getcheckinoption"; @@ -87,6 +98,7 @@ public static class Oa { public static final String APPLY_EVENT = "/cgi-bin/oa/applyevent"; } + @UtilityClass public static class Tag { public static final String TAG_CREATE = "/cgi-bin/tag/create"; public static final String TAG_UPDATE = "/cgi-bin/tag/update"; @@ -97,10 +109,12 @@ public static class Tag { public static final String TAG_DEL_TAG_USERS = "/cgi-bin/tag/deltagusers"; } + @UtilityClass public static class TaskCard { public static final String UPDATE_TASK_CARD = "/cgi-bin/message/update_taskcard"; } + @UtilityClass public static class Tp { public static final String JSCODE_TO_SESSION = "/cgi-bin/service/miniprogram/jscode2session"; public static final String GET_CORP_TOKEN = "/cgi-bin/service/get_corp_token"; @@ -111,6 +125,7 @@ public static class Tp { public static final String GET_AUTH_INFO = "/cgi-bin/service/get_auth_info"; } + @UtilityClass public static class User { public static final String USER_AUTHENTICATE = "/cgi-bin/user/authsucc?userid="; public static final String USER_CREATE = "/cgi-bin/user/create"; @@ -127,6 +142,7 @@ public static class User { public static final String GET_EXTERNAL_CONTACT = "/cgi-bin/crm/get_external_contact?external_userid="; } + @UtilityClass public static class ExternalContact { @Deprecated public static final String GET_EXTERNAL_CONTACT = "/cgi-bin/crm/get_external_contact?external_userid="; 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 5e536efa90..98bfd90ba0 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 @@ -1,5 +1,7 @@ package me.chanjar.weixin.cp.constant; +import lombok.experimental.UtilityClass; + /** ** 企业微信常量 @@ -8,11 +10,13 @@ * * @author Binary Wang */ +@UtilityClass public class WxCpConsts { /** * 企业微信端推送过来的事件类型. * 参考文档:https://work.weixin.qq.com/api/doc#12974 */ + @UtilityClass public static class EventType { /** * 成员关注事件. @@ -105,6 +109,7 @@ public static class EventType { /** * 企业外部联系人变更事件的CHANGE_TYPE */ + @UtilityClass public static class ExternalContactChangeType { /** * 新增外部联系人 @@ -128,6 +133,7 @@ public static class ExternalContactChangeType { /** * 企业微信通讯录变更事件. */ + @UtilityClass public static class ContactChangeType { /** * 新增成员事件. @@ -169,6 +175,7 @@ public static class ContactChangeType { /** * 互联企业发送应用消息的消息类型. */ + @UtilityClass public static class LinkedCorpMsgType { /** * 文本消息. @@ -213,6 +220,7 @@ public static class LinkedCorpMsgType { /** * 群机器人的消息类型. */ + @UtilityClass public static class GroupRobotMsgType { /** * 文本消息. @@ -238,6 +246,7 @@ public static class GroupRobotMsgType { /** * 应用推送消息的消息类型. */ + @UtilityClass public static class AppChatMsgType { /** * 文本消息. diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaLiveGoodsService.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaLiveGoodsService.java index f52f9efde2..882627dd67 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaLiveGoodsService.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaLiveGoodsService.java @@ -1,7 +1,7 @@ package cn.binarywang.wx.miniapp.api; -import cn.binarywang.wx.miniapp.bean.WxMaLiveInfo; -import cn.binarywang.wx.miniapp.bean.WxMaLiveResult; +import cn.binarywang.wx.miniapp.bean.live.WxMaLiveGoodInfo; +import cn.binarywang.wx.miniapp.bean.live.WxMaLiveResult; import me.chanjar.weixin.common.error.WxErrorException; import java.util.List; @@ -37,7 +37,7 @@ public interface WxMaLiveGoodsService { * @return 返回auditId、goodsId * @throws WxErrorException . */ - WxMaLiveResult addGoods(WxMaLiveInfo.Goods goods) throws WxErrorException; + WxMaLiveResult addGoods(WxMaLiveGoodInfo goods) throws WxErrorException; /** * 撤回审核 @@ -91,7 +91,7 @@ public interface WxMaLiveGoodsService { * @return 更新商品是否成功 * @throws WxErrorException . */ - boolean updateGoods(WxMaLiveInfo.Goods goods) throws WxErrorException; + boolean updateGoods(WxMaLiveGoodInfo goods) throws WxErrorException; /** * 获取商品状态 diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaLiveService.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaLiveService.java index 185085478e..c013958ee4 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaLiveService.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaLiveService.java @@ -1,7 +1,7 @@ package cn.binarywang.wx.miniapp.api; -import cn.binarywang.wx.miniapp.bean.WxMaLiveInfo; -import cn.binarywang.wx.miniapp.bean.WxMaLiveResult; +import cn.binarywang.wx.miniapp.bean.live.WxMaLiveResult; +import cn.binarywang.wx.miniapp.bean.live.WxMaLiveRoomInfo; import me.chanjar.weixin.common.error.WxErrorException; import java.util.List; @@ -31,7 +31,7 @@ public interface WxMaLiveService { * @return . * @throws WxErrorException . */ - Integer createRoom(WxMaLiveInfo.RoomInfo roomInfo) throws WxErrorException; + Integer createRoom(WxMaLiveRoomInfo roomInfo) throws WxErrorException; /** * 获取直播房间列表.(分页) diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaLiveGoodsServiceImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaLiveGoodsServiceImpl.java index 3a36a3c75a..ba776a8f5d 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaLiveGoodsServiceImpl.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaLiveGoodsServiceImpl.java @@ -2,16 +2,14 @@ import cn.binarywang.wx.miniapp.api.WxMaLiveGoodsService; import cn.binarywang.wx.miniapp.api.WxMaService; -import cn.binarywang.wx.miniapp.bean.WxMaLiveInfo; -import cn.binarywang.wx.miniapp.bean.WxMaLiveResult; +import cn.binarywang.wx.miniapp.bean.live.WxMaLiveGoodInfo; +import cn.binarywang.wx.miniapp.bean.live.WxMaLiveResult; import cn.binarywang.wx.miniapp.util.json.WxMaGsonBuilder; import com.google.common.base.Joiner; import com.google.common.collect.ImmutableMap; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import lombok.AllArgsConstructor; -import me.chanjar.weixin.common.enums.WxType; -import me.chanjar.weixin.common.error.WxError; import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.common.util.json.GsonParser; @@ -32,15 +30,9 @@ public class WxMaLiveGoodsServiceImpl implements WxMaLiveGoodsService { private final WxMaService wxMaService; @Override - public WxMaLiveResult addGoods(WxMaLiveInfo.Goods goods) throws WxErrorException { - Mapmap = new HashMap<>(2); - map.put("goodsInfo", goods); - String responseContent = this.wxMaService.post(ADD_GOODS, WxMaGsonBuilder.create().toJson(map)); - JsonObject jsonObject = GsonParser.parse(responseContent); - if (jsonObject.get("errcode").getAsInt() != 0) { - throw new WxErrorException(WxError.fromJson(responseContent, WxType.MiniApp)); - } - return WxMaLiveResult.fromJson(jsonObject.toString()); + public WxMaLiveResult addGoods(WxMaLiveGoodInfo goods) throws WxErrorException { + return WxMaLiveResult.fromJson(this.wxMaService.post(ADD_GOODS, + WxMaGsonBuilder.create().toJson(ImmutableMap.of("goodsInfo", goods)))); } @Override @@ -48,11 +40,7 @@ public boolean resetAudit(Integer auditId, Integer goodsId) throws WxErrorExcept Map map = new HashMap<>(4); map.put("auditId", auditId); map.put("goodsId", goodsId); - String responseContent = this.wxMaService.post(RESET_AUDIT_GOODS, WxMaGsonBuilder.create().toJson(map)); - JsonObject jsonObject = GsonParser.parse(responseContent); - if (jsonObject.get("errcode").getAsInt() != 0) { - throw new WxErrorException(WxError.fromJson(responseContent, WxType.MiniApp)); - } + this.wxMaService.post(RESET_AUDIT_GOODS, WxMaGsonBuilder.create().toJson(map)); return true; } @@ -62,9 +50,6 @@ public String auditGoods(Integer goodsId) throws WxErrorException { map.put("goodsId", goodsId); String responseContent = this.wxMaService.post(AUDIT_GOODS, WxMaGsonBuilder.create().toJson(map)); JsonObject jsonObject = GsonParser.parse(responseContent); - if (jsonObject.get("errcode").getAsInt() != 0) { - throw new WxErrorException(WxError.fromJson(responseContent, WxType.MiniApp)); - } return jsonObject.get("auditId").getAsString(); } @@ -72,23 +57,15 @@ public String auditGoods(Integer goodsId) throws WxErrorException { public boolean deleteGoods(Integer goodsId) throws WxErrorException { Map map = new HashMap<>(2); map.put("goodsId", goodsId); - String responseContent = this.wxMaService.post(DELETE_GOODS, WxMaGsonBuilder.create().toJson(map)); - JsonObject jsonObject = GsonParser.parse(responseContent); - if (jsonObject.get("errcode").getAsInt() != 0) { - throw new WxErrorException(WxError.fromJson(responseContent, WxType.MiniApp)); - } + this.wxMaService.post(DELETE_GOODS, WxMaGsonBuilder.create().toJson(map)); return true; } @Override - public boolean updateGoods(WxMaLiveInfo.Goods goods) throws WxErrorException { + public boolean updateGoods(WxMaLiveGoodInfo goods) throws WxErrorException { Map map = new HashMap<>(2); map.put("goodsInfo", goods); - String responseContent = this.wxMaService.post(UPDATE_GOODS, WxMaGsonBuilder.create().toJson(map)); - JsonObject jsonObject = GsonParser.parse(responseContent); - if (jsonObject.get("errcode").getAsInt() != 0) { - throw new WxErrorException(WxError.fromJson(responseContent, WxType.MiniApp)); - } + this.wxMaService.post(UPDATE_GOODS, WxMaGsonBuilder.create().toJson(map)); return true; } @@ -97,11 +74,7 @@ public WxMaLiveResult getGoodsWareHouse(List goodsIds) throws WxErrorEx Map map = new HashMap<>(2); map.put("goods_ids", goodsIds); String responseContent = this.wxMaService.post(GET_GOODS_WARE_HOUSE, WxMaGsonBuilder.create().toJson(map)); - JsonObject jsonObject = GsonParser.parse(responseContent); - if (jsonObject.get("errcode").getAsInt() != 0) { - throw new WxErrorException(WxError.fromJson(responseContent, WxType.MiniApp)); - } - return WxMaLiveResult.fromJson(jsonObject.toString()); + return WxMaLiveResult.fromJson(responseContent); } @Override @@ -109,9 +82,6 @@ public WxMaLiveResult getApprovedGoods(Integer offset, Integer limit, Integer st ImmutableMap params = ImmutableMap.of("status", status, "offset", offset, "limit", limit); String responseContent = wxMaService.get(GET_APPROVED_GOODS, Joiner.on("&").withKeyValueSeparator("=").join(params)); JsonObject jsonObject = GsonParser.parse(responseContent); - if (jsonObject.get("errcode").getAsInt() != 0) { - throw new WxErrorException(WxError.fromJson(responseContent, WxType.MiniApp)); - } JsonArray goodsArr = jsonObject.getAsJsonArray("goods"); if (goodsArr.size() > 0) { for (int i = 0; i < goodsArr.size(); i++) { diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaLiveServiceImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaLiveServiceImpl.java index 3c5abc8781..c2bbc97e32 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaLiveServiceImpl.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaLiveServiceImpl.java @@ -2,8 +2,8 @@ import cn.binarywang.wx.miniapp.api.WxMaLiveService; import cn.binarywang.wx.miniapp.api.WxMaService; -import cn.binarywang.wx.miniapp.bean.WxMaLiveInfo; -import cn.binarywang.wx.miniapp.bean.WxMaLiveResult; +import cn.binarywang.wx.miniapp.bean.live.WxMaLiveResult; +import cn.binarywang.wx.miniapp.bean.live.WxMaLiveRoomInfo; import cn.binarywang.wx.miniapp.util.json.WxMaGsonBuilder; import com.google.gson.JsonObject; import lombok.AllArgsConstructor; @@ -31,7 +31,7 @@ public class WxMaLiveServiceImpl implements WxMaLiveService { private final WxMaService wxMaService; @Override - public Integer createRoom(WxMaLiveInfo.RoomInfo roomInfo) throws WxErrorException { + public Integer createRoom(WxMaLiveRoomInfo roomInfo) throws WxErrorException { String responseContent = this.wxMaService.post(CREATE_ROOM, WxMaGsonBuilder.create().toJson(roomInfo)); JsonObject jsonObject = GsonParser.parse(responseContent); if (jsonObject.get("errcode").getAsInt() != 0) { diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaLiveInfo.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaLiveInfo.java deleted file mode 100644 index 8a98b4a218..0000000000 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaLiveInfo.java +++ /dev/null @@ -1,60 +0,0 @@ -package cn.binarywang.wx.miniapp.bean; - -import lombok.Data; - -import java.io.Serializable; -import java.util.List; - -/** - * 直播接口入参 - * - * @author yjwang - * @date 2020/4/5 - */ -@Data -public class WxMaLiveInfo implements Serializable { - private static final long serialVersionUID = 7285263767524755887L; - - /** - * 直播列表 - */ - @Data - public static class RoomInfo implements Serializable { - private static final long serialVersionUID = 7745775280267417154L; - private String name; - private Integer roomid; - private String coverImg; - private String shareImg; - private Integer liveStatus; - private Long startTime; - private Long endTime; - private String anchorName; - private String anchorWechat; - private String anchorImg; - private Integer type; - private Integer screenType; - private Integer closeLike; - private Integer closeGoods; - private Integer closeComment; - private List goods; - } - - /** - * 商品列表 - */ - @Data - public static class Goods implements Serializable { - private static final long serialVersionUID = 5769245932149287574L; - private Integer goodsId; - private String coverImgUrl; - private String url; - private Integer priceType; - private String price; - private String price2; - private String name; - /** - * 1, 2:表示是为api添加商品,否则是在MP添加商品 - */ - private String thirdPartyTag; - } -} diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/live/WxMaLiveGoodInfo.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/live/WxMaLiveGoodInfo.java new file mode 100644 index 0000000000..6566491244 --- /dev/null +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/live/WxMaLiveGoodInfo.java @@ -0,0 +1,24 @@ +package cn.binarywang.wx.miniapp.bean.live; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 直播商品信息 + */ +@Data +public class WxMaLiveGoodInfo implements Serializable { + private static final long serialVersionUID = 5769245932149287574L; + private Integer goodsId; + private String coverImgUrl; + private String url; + private Integer priceType; + private String price; + private String price2; + private String name; + /** + * 1, 2:表示是为api添加商品,否则是在MP添加商品 + */ + private String thirdPartyTag; +} diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaLiveResult.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/live/WxMaLiveResult.java similarity index 97% rename from weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaLiveResult.java rename to weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/live/WxMaLiveResult.java index 2040b4a525..be89978728 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaLiveResult.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/live/WxMaLiveResult.java @@ -1,4 +1,4 @@ -package cn.binarywang.wx.miniapp.bean; +package cn.binarywang.wx.miniapp.bean.live; import cn.binarywang.wx.miniapp.util.json.WxMaGsonBuilder; import com.google.gson.annotations.SerializedName; @@ -18,8 +18,6 @@ @Data public class WxMaLiveResult implements Serializable { private static final long serialVersionUID = 1L; - private Integer errcode; - private String errmsg; private Integer total; private Integer auditId; private Integer goodsId; diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/live/WxMaLiveRoomInfo.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/live/WxMaLiveRoomInfo.java new file mode 100644 index 0000000000..c393d5dbd5 --- /dev/null +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/live/WxMaLiveRoomInfo.java @@ -0,0 +1,86 @@ +package cn.binarywang.wx.miniapp.bean.live; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 直播间信息 + */ +@Data +public class WxMaLiveRoomInfo implements Serializable { + private static final long serialVersionUID = 7745775280267417154L; + + /** + * 直播间名字,最短3个汉字,最长17个汉字,1个汉字相当于2个字符 + **/ + private String name; + /** + * 背景图,填入mediaID(mediaID获取后,三天内有效);图片mediaID的获取,请参考以下文档: https://developers.weixin.qq.com/doc/offiaccount/Asset_Management/New_temporary_materials.html;直播间背景图,图片规则:建议像素1080*1920,大小不超过2M + **/ + private String coverImg; + /** + * 直播计划开始时间(开播时间需要在当前时间的10分钟后 并且 开始时间不能在 6 个月后) + **/ + private Long startTime; + /** + * 直播计划结束时间(开播时间和结束时间间隔不得短于30分钟,不得超过24小时) + **/ + private Long endTime; + /** + * 主播昵称,最短2个汉字,最长15个汉字,1个汉字相当于2个字符 + **/ + private String anchorName; + /** + * 主播微信号,如果未实名认证,需要先前往“小程序直播”小程序进行实名验证, 小程序二维码链接:https://res.wx.qq.com/op_res/BbVNeczA1XudfjVqCVoKgfuWe7e3aUhokktRVOqf_F0IqS6kYR--atCpVNUUC3zr + **/ + private String anchorWechat; + /** + * 主播副号微信号,如果未实名认证,需要先前往“小程序直播”小程序进行实名验证, 小程序二维码链接:https://res.wx.qq.com/op_res/BbVNeczA1XudfjVqCVoKgfuWe7e3aUhokktRVOqf_F0IqS6kYR--atCpVNUUC3zr + **/ + private String subAnchorWechat; + /** + * 分享图,填入mediaID(mediaID获取后,三天内有效);图片mediaID的获取,请参考以下文档: https://developers.weixin.qq.com/doc/offiaccount/Asset_Management/New_temporary_materials.html;直播间分享图,图片规则:建议像素800*640,大小不超过1M; + **/ + private String shareImg; + /** + * 购物直播频道封面图,填入mediaID(mediaID获取后,三天内有效);图片mediaID的获取,请参考以下文档: https://developers.weixin.qq.com/doc/offiaccount/Asset_Management/New_temporary_materials.html; 购物直播频道封面图,图片规则:建议像素800*800,大小不超过100KB; + **/ + private String feedsImg; + /** + * 是否开启官方收录 【1: 开启,0:关闭】,默认开启收录 + **/ + private Integer isFeedsPublic; + /** + * 直播间类型 【1: 推流,0:手机直播】 + **/ + private Integer type; + /** + * 横屏、竖屏 【1:横屏,0:竖屏】(横屏:视频宽高比为16:9、4:3、1.85:1 ;竖屏:视频宽高比为9:16、2:3) + **/ + private Integer screenType; + /** + * 是否关闭点赞 【0:开启,1:关闭】(若关闭,直播开始后不允许开启) + **/ + private Integer closeLike; + /** + * 是否关闭货架 【0:开启,1:关闭】(若关闭,直播开始后不允许开启) + **/ + private Integer closeGoods; + /** + * 是否关闭评论 【0:开启,1:关闭】(若关闭,直播开始后不允许开启) + **/ + private Integer closeComment; + /** + * 是否关闭回放 【0:开启,1:关闭】默认关闭回放 + **/ + private Integer closeReplay; + /** + * 是否关闭分享 【0:开启,1:关闭】默认开启分享(直播开始后不允许修改) + **/ + private Integer loseShare; + /** + * closeKf Number 否 是否关闭客服 【0:开启,1:关闭】 默认关闭客服 + **/ + private Integer closeKf; +} diff --git a/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaLiveGoodsServiceImplTest.java b/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaLiveGoodsServiceImplTest.java index 769d82919e..af068777ee 100644 --- a/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaLiveGoodsServiceImplTest.java +++ b/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaLiveGoodsServiceImplTest.java @@ -1,8 +1,8 @@ package cn.binarywang.wx.miniapp.api.impl; import cn.binarywang.wx.miniapp.api.WxMaService; -import cn.binarywang.wx.miniapp.bean.WxMaLiveInfo; -import cn.binarywang.wx.miniapp.bean.WxMaLiveResult; +import cn.binarywang.wx.miniapp.bean.live.WxMaLiveGoodInfo; +import cn.binarywang.wx.miniapp.bean.live.WxMaLiveResult; import cn.binarywang.wx.miniapp.test.ApiTestModule; import com.google.inject.Inject; import me.chanjar.weixin.common.bean.result.WxMediaUploadResult; @@ -31,7 +31,7 @@ public void addGoods() throws Exception { //上传临时素材 WxMediaUploadResult mediaUpload = this.wxService.getMediaService().uploadMedia("image", new File("E:\\1.png")); - WxMaLiveInfo.Goods goods = new WxMaLiveInfo.Goods(); + WxMaLiveGoodInfo goods = new WxMaLiveGoodInfo(); goods.setCoverImgUrl(mediaUpload.getMediaId()); goods.setName("宫廷奢华真丝四件套"); goods.setPrice("1599"); @@ -64,7 +64,7 @@ public void deleteGoods() throws Exception { @Test public void updateGoods() throws Exception { - WxMaLiveInfo.Goods goods = new WxMaLiveInfo.Goods(); + WxMaLiveGoodInfo goods = new WxMaLiveGoodInfo(); goods.setGoodsId(8); goods.setName("宫廷奢华真丝四件套"); goods.setCoverImgUrl("http://mmbiz.qpic.cn/mmbiz_png/omYktZNGamuUQE0WPVfqdnLV61JDhluXOac7PiaoZeticFpcR7wvicC0aXUC2VXkl7r1gN0QSKosv2satn6oCFeiaQ/0"); diff --git a/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaLiveServiceImplTest.java b/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaLiveServiceImplTest.java index e92913366a..d93a540b2b 100644 --- a/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaLiveServiceImplTest.java +++ b/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaLiveServiceImplTest.java @@ -1,8 +1,8 @@ package cn.binarywang.wx.miniapp.api.impl; import cn.binarywang.wx.miniapp.api.WxMaService; -import cn.binarywang.wx.miniapp.bean.WxMaLiveInfo; -import cn.binarywang.wx.miniapp.bean.WxMaLiveResult; +import cn.binarywang.wx.miniapp.bean.live.WxMaLiveResult; +import cn.binarywang.wx.miniapp.bean.live.WxMaLiveRoomInfo; import cn.binarywang.wx.miniapp.test.ApiTestModule; import com.google.inject.Inject; import me.chanjar.weixin.common.bean.result.WxMediaUploadResult; @@ -33,7 +33,7 @@ public void createRoom() throws Exception { //上传临时素材 WxMediaUploadResult mediaUpload = this.wxService.getMediaService().uploadMedia("image", new File("E:\\1.png")); - WxMaLiveInfo.RoomInfo roomInfo = new WxMaLiveInfo.RoomInfo(); + WxMaLiveRoomInfo roomInfo = new WxMaLiveRoomInfo(); roomInfo.setName("订阅通知直播间"); roomInfo.setCoverImg(mediaUpload.getMediaId()); Calendar c = Calendar.getInstance(); diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/payscore/PayScoreNotifyData.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/payscore/PayScoreNotifyData.java index 81d5568bcd..82afdb4ce6 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/payscore/PayScoreNotifyData.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/payscore/PayScoreNotifyData.java @@ -18,38 +18,66 @@ public class PayScoreNotifyData implements Serializable { private static final long serialVersionUID = -8538014389773390989L; /** - * id : EV-2018022511223320873 - * create_time : 20180225112233 - * resource_type : encrypt-resource - * event_type : PAYSCORE.USER_CONFIRM - * resource : {"algorithm":"AEAD_AES_256_GCM","ciphertext":"...","nonce":"...","associated_data":""} + * 通知ID */ @SerializedName("id") private String id; + + /** + * 通知创建时间 + */ @SerializedName("create_time") private String createTime; + + /** + * 通知数据类型 + */ @SerializedName("resource_type") private String resourceType; + + /** + * 通知类型 + */ @SerializedName("event_type") private String eventType; + + /** + * 通知数据 + */ @SerializedName("resource") private Resource resource; + /** + * 回调摘要 + * summary + */ + @SerializedName("summary") + private String summary; + @Data public static class Resource implements Serializable { private static final long serialVersionUID = 8530711804335261449L; /** - * algorithm : AEAD_AES_256_GCM - * ciphertext : ... - * nonce : ... - * associated_data : + * 加密算法类型 */ @SerializedName("algorithm") private String algorithm; + + /** + * 数据密文 + */ @SerializedName("ciphertext") private String cipherText; + + /** + * 附加数据 + */ @SerializedName("nonce") private String nonce; + + /** + * 随机串 + */ @SerializedName("associated_data") private String associatedData; }