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 9e192eb48..20445e4e0 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 @@ -18,7 +18,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.Broadcast.*; +import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.Broadcast.GET_LIVE_INFO; +import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.Broadcast.Room; /** *
@@ -36,13 +37,20 @@ public class WxMaLiveServiceImpl implements WxMaLiveService {
@Override
public WxMaCreateRoomResult createRoom(WxMaLiveRoomInfo roomInfo) throws WxErrorException {
- String responseContent = this.wxMaService.post(Room.CREATE_ROOM, WxMaGsonBuilder.create().toJson(roomInfo));
- JsonObject jsonObject = GsonParser.parse(responseContent);
- if (jsonObject.get(ERR_CODE).getAsInt() != 0) {
- throw new WxErrorException(WxError.fromJson(responseContent, WxType.MiniApp));
+ try {
+ String responseContent = this.wxMaService.post(Room.CREATE_ROOM, WxMaGsonBuilder.create().toJson(roomInfo));
+ JsonObject jsonObject = GsonParser.parse(responseContent);
+ if (jsonObject.get(ERR_CODE).getAsInt() != 0) {
+ throw new WxErrorException(WxError.fromJson(responseContent, WxType.MiniApp));
+ }
+ return WxMaGsonBuilder.create().fromJson(responseContent, WxMaCreateRoomResult.class);
+ } catch (WxErrorException e) {
+ if (e.getError().getErrorCode() == 300036) {
+ return WxMaGsonBuilder.create().fromJson(e.getError().getJson(), WxMaCreateRoomResult.class);
+ } else {
+ throw e;
+ }
}
-
- return WxMaGsonBuilder.create().fromJson(responseContent, WxMaCreateRoomResult.class);
}
@Override