保利威文档中心

帮助中心

lotteryService

更新时间:2025-09-11 15:18:09

1、获取频道抽奖记录列表

描述

获取频道抽奖记录列表(通过直播端发起抽奖)
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/lottery/list-lottery

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

单元测试

    @Test
    public void testListLottery() throws Exception, NoSuchAlgorithmException {
        LiveListLotteryRequest liveListLotteryRequest = new LiveListLotteryRequest();
        LiveListLotteryResponse liveListLotteryResponse;
        try {
            liveListLotteryRequest.setChannelId(super.createChannel())
                    .setStartTime(super.getDate(1601481600000l))
                    .setEndTime(super.getDate(2021,1,21))
                    .setPageSize(1);
            liveListLotteryResponse = new LiveLotteryServiceImpl().listLottery(liveListLotteryRequest);
            Assert.assertNotNull(liveListLotteryResponse);
            if (liveListLotteryResponse != null) {
                //to do something ......
                log.debug("测试获取频道抽奖记录列表成功,{}", JSON.toJSONString(liveListLotteryResponse));
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回LiveListLotteryResponse对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名 必选 类型 说明
channelId true String 频道号
sessionId false String 要查询的直播场次ID
startTime true Date 查询的开始日期
endTime true Date 查询的结束日期
currentPage false Integer 页数,默认为1【对应api文档的page字段】
pageSize false Integer 每页显示的数据条数,默认每页显示20条数据【对应api文档的limit字段】
appId false String POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置)
appSecret false String POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置)

返回对象描述

参数名 类型 说明
contents Array 抽奖记录列表【详见LotteryListModel参数描述
pageSize Integer 每页显示的数据条数,默认每页显示20条数据
currentPage Integer 当前页【对应api文档的pageNumber字段】
totalItems Integer 记录总条数
totalPage Integer 总页数【对应api文档的totalPages字段】
LotteryListModel参数描述
参数名 类型 说明
lotteryId String 抽奖场次ID
channelId String 频道号
sessionId String 抽奖时的直播场次ID
lotteryRange String 抽奖范围,取值:所有观众:all;当场直播未中奖用户:notWinning;已签到用户:signed;头衔:actor;已填问卷用户:questionnaire
actor String 抽奖范围为按头衔抽奖时的头衔
prize String 奖品名称
amount Integer 预设中奖人数
preset Integer 预设中奖观众ID,多个ID 用英文逗号分开
createdTime Date 抽奖时间
winnerCount Integer 实际中奖人数
ext String 表示抽奖的额外拓展信息,例:{"collectInfo":[{"field":"姓名:","tips":"请输入您的真实姓名"}]},field表示要填写的字段名,tips表示要填写的字段提示






2、获取频道单场抽奖的中奖记录

描述

获取频道单场抽奖的中奖记录
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/lottery/get-winner-detail

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

单元测试

    @Test
    public void testGetLotteryWinnerDetail() throws Exception, NoSuchAlgorithmException {
        LiveLotteryWinnerDetailRequest liveLotteryWinnerDetailRequest = new LiveLotteryWinnerDetailRequest();
        LiveLotteryWinnerDetailResponse liveLotteryWinnerDetailResponse;
        try {
            liveLotteryWinnerDetailRequest.setChannelId(super.createChannel())
                    .setLotteryId("fv3hogjmh3");
            liveLotteryWinnerDetailResponse = new LiveLotteryServiceImpl().getLotteryWinnerDetail(
                    liveLotteryWinnerDetailRequest);
            Assert.assertNotNull(liveLotteryWinnerDetailResponse);
            if (liveLotteryWinnerDetailResponse != null) {
                //to do something ......
                log.debug("测试获取频道单场抽奖的中奖记录成功,{}", JSON.toJSONString(liveLotteryWinnerDetailResponse));
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回LiveLotteryWinnerDetailResponse对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名 必选 类型 说明
channelId true String 频道号
lotteryId true String 抽奖ID
currentPage false Integer 页数,默认为1【对应api文档的page字段】
pageSize false Integer 每页显示的数据条数,默认每页显示20条数据【对应api文档的limit字段】
appId false String POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置)
appSecret false String POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置)

返回对象描述

参数名 类型 说明
contents Array 中奖记录表【详见LotteryWinnerDetail参数描述
pageSize Integer 每页显示的数据条数,默认每页显示20条数据
currentPage Integer 当前页【对应api文档的pageNumber字段】
totalItems Integer 记录总条数
totalPage Integer 总页数【对应api文档的totalPages字段】
LotteryWinnerDetail参数描述
参数名 类型 说明
recordId String 中奖记录ID
channelId String 频道号
sessionId String 抽奖时的直播场次ID
lotteryId String 抽奖ID
viewerId String 中奖用户ID
viewerName String 中奖用户昵称
winnerCode String 中奖码
prize String 奖品名称
createdTime Date 中奖时间
ext String 表示抽奖的额外拓展信息,例:{"collectInfo":[{"field":"姓名:","value":"钻石王老五"}]},field表示要填写的字段名,value表示要填写的字段提示






3、设置抽奖中奖者信息

描述

用于提交中奖者填写的信息
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/chat/add-receive-info

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

2、只能成功保存一次观众中奖信息

3、中奖信息需在7天内提交保存,否则会失效

单元测试

    @Test
    public void testSetLotteryWinnerInfo() throws Exception, NoSuchAlgorithmException {
        LiveSetLotteryWinnerInfoRequest liveSetLotteryWinnerInfoRequest = new LiveSetLotteryWinnerInfoRequest();
        Boolean liveSetLotteryWinnerInfoResponse;
        try {
            liveSetLotteryWinnerInfoRequest.setChannelId(super.createChannel())
                    .setLotteryId("fv3mao43u6")
                    .setWinnerCode("wMpUjVSi")
                    .setViewerId("asdadsdas")
                    .setName("sadboy")
                    .setTelephone("18974718689")
                    .setReceiveInfo("[{\"field\":\"姓名\",\"value\":\"测试\"},{\"field\":\"手机\",\"value\":\"13412345678\"}]");
            liveSetLotteryWinnerInfoResponse = new LiveLotteryServiceImpl().setLotteryWinnerInfo(
                    liveSetLotteryWinnerInfoRequest);
            Assert.assertNotNull(liveSetLotteryWinnerInfoResponse);
            if (liveSetLotteryWinnerInfoResponse) {
                //to do something ......
                log.debug("测试设置抽奖中奖者信息成功");
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回Boolean对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名 必选 类型 说明
channelId true String 频道号
lotteryId true String 抽奖场次ID
winnerCode true String 中奖码
viewerId true String 中奖者ID
name false String 中奖者姓名,如果传姓名,必须传中奖者手机号码,receiveInfo字段不需要传(无效)
telephone false String 中奖者手机号码,如果传手机号,必须传中奖者姓名,receiveInfo字段不需要传(无效)
receiveInfo false String 自定义字段数据,数据类型为数组JSON[{"field":"姓名","value":"测试"},{"field":"手机","value":"13412345678"}] field:字段名称,value:字段值,如果传这个参数,name和telephone字段不需要传(无效)
appId false String POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置)
appSecret false String POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置)

返回对象描述

true为设置成功,false为设置失败




4、导出频道单场抽奖的中奖记录

描述

用于下载频道的单场抽奖的中奖记录
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/lottery/download-winner-detail

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

单元测试

    @Test
    public void testDownloadLotteryDetail() throws Exception, NoSuchAlgorithmException {
        LiveDownloadLotteryDetailRequest liveDownloadLotteryDetailRequest = new LiveDownloadLotteryDetailRequest();
        byte[] liveDownloadLotteryDetailResponse;
        try {
            //path设置为下载文件路径
            String path = Paths.get(getClass().getResource("/file/").toURI()).toString() + "downLoadLotteryWinner.xlsx";
            liveDownloadLotteryDetailRequest.setChannelId(createChannel())
                    .setLotteryId("fv3hogjmh3");
            liveDownloadLotteryDetailResponse = new LiveLotteryServiceImpl().downloadLotteryDetail(
                    liveDownloadLotteryDetailRequest);
            Assert.assertNotNull(liveDownloadLotteryDetailResponse);
            if (liveDownloadLotteryDetailResponse != null) {
                FileUtil.writeFile(liveDownloadLotteryDetailResponse, path);
                //to do something ......
                log.debug("测试导出频道单场抽奖的中奖记录成功, 文件长度 {}", liveDownloadLotteryDetailResponse.length);
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回byte[]对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名 必选 类型 说明
channelId true String 频道号
lotteryId true String 抽奖ID
appId false String POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置)
appSecret false String POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置)

返回对象描述

返回的byte[]可以按照单元测试示例进行保存,也可以自行处理。




5、发送点赞

描述

用于实现用户自开发观看页点赞效果,通过调用接口可以进行点赞,默认每次请求都是一次点赞
接口地址(仅做说明使用):https://api.polyv.net/live/v2/channels/%s/like

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

2、接口内部进行了判断,每个观众的点赞间隔1s的限制,根据提交的观众ID来区分

3、如果有需求支持同时点多个赞,可提交非必填参数times,times最大不能超过30。*如果提交次数为n,则需n-1秒才能继续点赞

4、viewerId由调用端去进行区分用户即可

单元测试

    @Test
    public void testSendChannelLike() throws Exception, NoSuchAlgorithmException {
        LiveSendChannelLikeRequest liveSendChannelLikeRequest = new LiveSendChannelLikeRequest();
        Integer liveSendChannelLikeResponse;
        try {
            liveSendChannelLikeRequest.setChannelId(createChannel())
                    .setViewerId(getRandomString(16))
                    .setTimes(13);
            liveSendChannelLikeResponse = new LiveLotteryServiceImpl().sendChannelLike(liveSendChannelLikeRequest);
            Assert.assertNotNull(liveSendChannelLikeResponse);
            if (liveSendChannelLikeResponse != null) {
                //to do something ......
                log.debug("测试发送点赞成功,{}", JSON.toJSONString(liveSendChannelLikeResponse));
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回Integer对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名 必选 类型 说明
channelId true String 频道号
viewerId true String 点赞观众的ID,由调用方自行创建、区分
times false Integer 点赞的数目,不能超过30,提交后在(times-1)秒后才能再点赞
appId false String POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置)
appSecret false String POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置)

返回对象描述

点赞数




6、发送打赏消息

描述

用于发送打赏消息,请求成功后,服务器会向聊天室的用户广播打赏消息
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/chat/send-reward-msg

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看 viewerId需要是在线的viewerId

单元测试

    @Test
    public void testSendChannelRewardMsg() throws Exception, NoSuchAlgorithmException {
        LiveSendChannelRewardMsgRequest liveSendChannelRewardMsgRequest = new LiveSendChannelRewardMsgRequest();
        Boolean liveSendChannelRewardMsgResponse;
        try {
            liveSendChannelRewardMsgRequest.setChannelId(createChannel())
                    .setNickname("sadboy")
                    .setAvatar("https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=3002379740,3965499425&fm=26&gp=0.jpg")
                    .setDonateType("cash")
                    .setContent("1")
                    .setGoodImage("https://s1.videocc.net/live-admin/img/icon-redpack-new.ae299535.png")
                    .setSessionId(null)
                    .setGoodNum("1")
                    .setNeedUserImage("N")
                    //通过外部授权等观看方式对接,由B端系统产生,通过白名单进入的,此处可使用会员码
                    .setViewerId(getRandomString(16));
            liveSendChannelRewardMsgResponse = new LiveLotteryServiceImpl().sendChannelRewardMsg(
                    liveSendChannelRewardMsgRequest);
            Assert.assertTrue(liveSendChannelRewardMsgResponse);
            if (liveSendChannelRewardMsgResponse) {
                //to do something ......
                log.debug("测试发送打赏消息成功");
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回Boolean对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名 必选 类型 说明
channelId true String 频道号
nickname true String 打赏者昵称
avatar true String 打赏者头像
viewerId true String 打赏者ID,通过外部授权等观看方式对接,由B端系统产生,通过百名单进入的,此处可使用会员码
donateType true String 打赏类型,(cash:现金打赏;good:道具打赏)
content true String 打赏内容:礼物打赏为礼物名称,现金打赏为金额
goodImage false String 礼物打赏时为礼物图片,现金打赏时为空
sessionId false String 直播场次ID
goodNum false String 打赏数量,不传默认为1
needUserImage false String 是否socket消息需要用户图片(是:Y,否:N。不传默认为N)
appId false String POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置)
appSecret false String POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置)

返回对象描述

true为发送成功,false为发送失败




7、查询频道中奖统计记录

描述

查询频道中奖统计记录
接口地址(仅做说明使用):https://api.polyv.net/live/v4/channel/lottery/list

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

2、不传lotteryId抽奖Id时,startTime、endTime必传

3、传入lotteryId抽奖Id时,startTime、endTime可不传,即使传了也不生效

4、startTime、endTime查询时间跨度最大为365天

单元测试

    @Test
    public void testGetLotteryList() throws IOException, NoSuchAlgorithmException {
        LiveGetLotteryListRequest liveGetLotteryListRequest = new LiveGetLotteryListRequest();
        LiveGetLotteryListResponse liveGetLotteryListResponse;
        try {
            String channelId = createChannel();
            liveGetLotteryListRequest.setChannelId(channelId)
                    .setStartTime(super.getXDay(new Date(), -60))
                    .setEndTime(super.getDate(System.currentTimeMillis()));
            liveGetLotteryListResponse = new LiveLotteryServiceImpl().getLotteryList(liveGetLotteryListRequest);
            Assert.assertNotNull(liveGetLotteryListResponse);
            if (liveGetLotteryListResponse != null) {
                //to do something ......
                log.debug("测试查询频道中奖统计记录成功 {}", JSON.toJSONString(liveGetLotteryListResponse));
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回LiveGetLotteryListResponse对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名 必选 类型 说明
channelId true String 频道号
lotteryId false String 抽奖ID
sessionId false String 场次ID
startTime false Date 开始时间,13位毫秒级时间戳
endTime false Date 结束时间,13位毫秒级时间戳
currentPage false Integer 页数,默认为1【对应api文档的pageNumber字段】
pageSize false Integer 每页显示的数据条数,默认每页显示20条数据
appId false String POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置)
appSecret false String POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置)

返回对象描述

参数名 类型 说明
contents Array 中奖记录列表【详见LotteryListContents参数描述
pageSize Integer 每页显示的数据条数,默认每页显示20条数据
currentPage Integer 当前页【对应api文档的pageNumber字段】
totalItems Integer 记录总条数
totalPage Integer 总页数【对应api文档的totalPages字段】
LotteryListContents参数描述
参数名 类型 说明
winnerCount Integer 实际中奖人数
totalUsers Integer 参与抽奖的人数
lotteryId String 抽奖场次ID
channelId String 频道号
userId String 账号userId
sessionId String 抽奖时的直播场次ID
lotteryRange String 抽奖候选人范围
actor String 按头衔抽奖时的头衔名称
prize String 奖品名称
amount Integer 中奖人数
preset String 预设中奖者,以英文逗号隔开
lotteryExt LotteryListExt 抽奖的额外拓展信息【详见LotteryListExt参数描述
createdTime Date 抽奖时间
LotteryListExt参数描述
参数名 类型 说明
collectInfo Array 中奖用户领奖收集信息列表【详见LotteryListExtCollectInfo参数描述
LotteryListExtCollectInfo参数描述
参数名 类型 说明
field String 字段名称
tips String 填写提示






8、查询多个频道抽奖记录

描述

获取一段时间内的多个直播频道发起抽奖记录列表
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/lottery/list-channels-lottery

调用约束

1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看

单元测试

    @Test
    public void testListChannelsLottery() throws IOException, NoSuchAlgorithmException {
        LiveListChannelsLotteryRequest liveListChannelsLotteryRequest = new LiveListChannelsLotteryRequest();
        LiveListChannelsLotteryResponse liveListChannelsLotteryResponse;
        try {
            String channelId = super.createChannel();
            liveListChannelsLotteryRequest.setChannelIds(channelId);
            liveListChannelsLotteryRequest.setStartTime(super.getDate(1601481600000L));
            liveListChannelsLotteryRequest.setEndTime(super.getDate(1615357743000L));
            liveListChannelsLotteryResponse = new LiveLotteryServiceImpl().listChannelsLottery(
                    liveListChannelsLotteryRequest);
            Assert.assertNotNull(liveListChannelsLotteryResponse);
            if (liveListChannelsLotteryResponse != null) {
                //to do something ......
                log.debug("测试查询多个频道抽奖记录成功 {}", JSON.toJSONString(liveListChannelsLotteryResponse));
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误,错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑,记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }

单元测试说明

1、请求正确,返回LiveListChannelsLotteryResponse对象,B端依据此对象处理业务逻辑;

2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]

3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]

请求入参描述

参数名 必选 类型 说明
channelIds true String 频道号,多个频道使用“,”进行分割
startTime true Date 查询的开始日期
endTime true Date 查询的结束日期
sessionId false String 要查询的直播场次ID,默认查询该频道中所有场次
currentPage false Integer 页数,默认为1【对应api文档的page字段】
pageSize false Integer 每页显示的数据条数,默认每页显示20条数据【对应api文档的limit字段】
appId false String POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置)
appSecret false String POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置)

返回对象描述

参数名 类型 说明
contents Array 抽奖记录列表 【详见LotteryListModel参数描述
pageSize Integer 每页显示的数据条数,默认每页显示20条数据
currentPage Integer 当前页【对应api文档的pageNumber字段】
totalItems Integer 记录总条数
totalPage Integer 总页数【对应api文档的totalPages字段】
LotteryListModel参数描述
参数名 类型 说明
lotteryId String 抽奖场次ID
channelId String 频道号
sessionId String 抽奖时的直播场次ID
userId String 账号userId
lotteryRange String 抽奖范围 all:所有观众 notWinning:当场直播未中奖用户 signed:已签到用户 actor:头衔 questionnaire:已填问卷用户
actor String 抽奖范围为按头衔抽奖时的头衔
prize String 奖品名称
amount Integer 预设中奖人数
preset String 预设中奖观众ID,多个ID 用英文逗号分开
createdTime Date 抽奖时间
lastModified Date 最后修改时间
winnerCount String 实际中奖人数
ext String json 格式的字符串,表示抽奖的额外拓展信息,对应模型类:LotteryListModelExt字段说明

联系客服,在线咨询