channelProduct
1、添加频道商品
描述
添加频道商品库商品
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/product/add
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
2、当商品类型为普通商品时,商品名称、商品封面链接、商品实际价格、商品上下架状态、商品链接类型必传,并根据商品链接类型传入对应链接
3、当商品类型为金融商品时,商品名称、商品上下架状态、商品链接类型必传,并根据商品链接类型传入对应链接
单元测试
@Test
public void testAddChannelProduct() throws IOException, NoSuchAlgorithmException {
LiveAddProductRequest liveAddProductRequest = new LiveAddProductRequest();
LiveAddProductResponse liveAddProductResponse;
try {
LiveAddProductRequest.ExtObject ext = new LiveAddProductRequest.ExtObject();
ext.setCoverList(Arrays.asList("https://liveimages.videocc.net/assets/wimages/pc_images/logo.png",
"https://s1.videocc.net/live-admin-v3/assets/img/5c5f0d2242a07f21.svg"));
LiveAddProductRequest.Video video = new LiveAddProductRequest.Video();
video.setVideoId("b820ac35dc3bb6be0dcb0841fcb379db");
video.setVideoSource("MATERIAL_LIBRARY");
ext.setVideoList(Collections.singletonList(video));
ext.setJumpWay("POP_UP");
liveAddProductRequest.setChannelId(super.createChannel())
.setName("测试添加普通产品1")
.setProductType("normal")
.setStatus(1)
.setLinkType(11)
.setPcLink("http://polyv.net")
.setMobileLink("http://polyv.net")
.setMobileAppLink("http://polyv.net")
.setWxMiniProgramLink("pages/home/index.html")
.setCover("https://liveimages.videocc.net/assets/wimages/pc_images/logo.png")
.setWxMiniProgramOriginalId("xxxxxxx")
.setYield("88")
.setFeatures("[\"tab1\", \"tab2\", \"tab3\", \"tab4\"]")
.setBtnShow("立即了解")
.setProductDesc("测试描述")
.setRealPrice(100F)
.setParams("{\"code\":123,\"color\":\"red\"}")
.setProductDetail("你能够点击购买<br/>为我们购买助力<a href='https://polyv.com'></a>")
.setExtObject(ext)
.setTagIds("[100,102,103]")
.setOriginalPriceType("CUSTOM")
.setCustomOriginalPrice("199.00")
.setAppId(super.getLiveAppInfo().getAppId())
.setAppSecret(super.getLiveAppInfo().getAppSecret());
liveAddProductResponse = new LiveChannelProductServiceImpl().addChannelProduct(liveAddProductRequest);
Assert.assertNotNull(liveAddProductResponse);
if (liveAddProductResponse != null) {
log.debug("测试添加频道商品成功 {}", JSON.toJSONString(liveAddProductResponse));
}
} 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、请求正确,返回LiveAddProductResponse对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| channelId | true | String | 频道号 |
| name | true | String | 商品名称,长度范围:1-60 |
| status | true | Integer | 商品上下架状态:1:上架,2:下架 |
| linkType | true | Integer | 商品链接类型:10:通用链接,11:多平台链接 |
| link | false | String | 商品链接,链接地址长度为1-500:请求参数linkType=10时,该参数必填,当请求参数linkType=11时,该参数为非必填 |
| pcLink | false | String | 多平台链接,pc端跳转链接,链接地址长度为1-500:请求参数linkType=10时,该参数非必填,当请求参数linkType=11时,该参数必填 |
| mobileLink | false | String | 多平台链接,移动web端链接 |
| wxMiniProgramLink | false | String | 多平台链接,小程序内页面路径及参数(对于path属性,所声明的页面路径必须添加.html后缀,如pages/home/index.html)【对应api文档的wxMiniprogramLink字段】 |
| wxMiniProgramOriginalId | false | String | 多平台链接,小程序端原始Id【对应api文档的wxMiniprogramOriginalId字段】 |
| mobileAppLink | false | String | 多平台链接,移动App端链接 |
| androidLink | false | String | 多平台链接,移动APP-安卓系统原生页面链接 |
| iosLink | false | String | 多平台链接,移动APP-苹果系统原生页面链接 |
| params | false | String | 自定义参数,类型json对象,需要转为string |
| productDesc | false | String | 产品描述 |
| features | false | String | 产品特色,卖点标签,可以多个,json字段,如:["tab1", "tab2"] |
| cover | false | String | 普通商品参数,商品封面链接,商品类型为普通商品时必传,长度范围:1-500 |
| realPrice | false | Float | 普通商品参数,商品实际价格,商品类型为普通商品时必传,保留两位小数,如:0.01 |
| price | false | Float | 普通商品参数,商品原价,保留两位小数,如:0.01 |
| btnShow | false | String | 金融商品参数,按钮显示文案 |
| yield | false | String | 金融商品参数,产品收益率/价格 |
| productType | false | String | 商品类型,默认为普通商品:normal:普通商品,finance:金融商品 |
| originId | false | String | 平台商品id,(有值则平台商品库复制新建频道商品,此时其他字段只有status为必填) |
| strategy | false | String | originId非空时的复制平台商品的策略,可选值: copy-复制, ref-引用(推荐使用此值),默认值为copy (引用平台商品库的商品:平台商品库改动商品字段,会自动同步到频道商品库中。拷贝平台商品库的商品:平台商品库改动商品字段,不会自动同步到频道商品库中) |
| productDetail | false | String | 商品详情,普通商品显示 |
| priceType | false | String | 价格类型,默认不填为为金额 AMOUNT,自定义价格 CUSTOM |
| customPrice | false | String | 购买价格-自定义,当priceType=CUSTOM时候生效 |
| tagIds | false | String | 商品标签id列表:JSON数组字符串, 格式如: [100,102,103] |
| originalPriceType | false | String | 商品原始价格(划线价格)类型,可能的值有:AMOUNT: 金额、CUSTOM: 自定义 |
| customOriginalPrice | false | String | 商品原始价格(划线价格)-自定义备注:如果 price 和 customOriginalPrice 都为空,则表示不启用原始价格(划线价格) |
| extObject | false | ExtObject | 扩展信息对象【详见ExtObject参数描述】 |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
ExtObject参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| coverList | false | Array | 封面图地址数组,最多15个 |
| videoList | false | Array | 视频数组,最多1个,需要开通素材库才能使用【详见Video参数描述】 |
| jumpWay | false | Array | 购买方式为外链购买-通用链接的跳转方式: POP_UP 弹出框打开、NEW_WINDOW 新窗口打开、CURRENT_WINDOW 当前窗口打开 |
Video参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| videoId | false | String | 视频ID |
| videoSource | false | String | 视频来源: MATERIAL_LIBRARY-素材库 |
返回对象描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| productId | Integer | 商品productId |
| userId | String | POLYV用户ID,和保利威官网一致,获取路径:官网->登录->直播(开发设置) |
| channelId | String | 频道号 |
| name | String | 商品名称,长度范围:1-60 |
| price | Float | 普通商品参数,商品原价,保留两位小数,如:0.01 |
| cover | String | 商品封面链接 |
| link | String | 商品通用类型商品链接 |
| status | Integer | 商品上下架状态:1:上架,2:下架 |
| createdTime | Date | 创建商品时间 |
| lastModified | Date | 更新商品时间 |
| rank | Integer | 商品排序号 |
| realPrice | Float | 商品实际价格,保留两位小数,如:0.01 |
| type | String | 平台标志,默认live,其他无效 |
| linkType | Integer | 商品链接类型:10:通用链接,11:多平台链接 |
| pcLink | String | 多平台链接,pc端跳转链接 |
| mobileLink | String | 多平台链接,移动web端跳转链接 |
| wxMiniProgramLink | String | 多平台链接,小程序端跳转链接【对应api文档的wxMiniprogramLink字段】 |
| wxMiniProgramOriginalId | String | 多平台链接,小程序端原始Id【对应api文档的wxMiniprogramOriginalId字段】 |
| mobileAppLink | String | 多平台链接,移动App端跳转链接 |
| androidLink | String | 多平台链接,移动APP-安卓系统原生页面链接 |
| iosLink | String | 多平台链接,移动APP-苹果系统原生页面链接 |
| params | String | 自定义参数,类型json对象,需要转为string |
| productType | String | 商品类型,normal:普通商品,finance:金融商品 |
| btnShow | String | 按钮显示文案 |
| features | String | 产品特色,卖点标签,可以多个,json字段,如:["tab1", "tab2"] |
| productDesc | String | 产品描述 |
| yield | String | 金融商品参数,产品收益率/价格 |
| productDetail | String | 商品详情,返回的是个内容存放的地址:例如 https://liveimages.videocc.net/product-info/product-detail/4d57ea01de/704007d1fdfd4cb2a5b3d3a842418831.json url存放的就是商品详情内容 |
| priceType | String | 价格类型,默认不填为金额 AMOUNT,自定义价格 CUSTOM |
| customPrice | String | 购买价格-自定义,当priceType=CUSTOM时候生效 |
| tagIds | String | 商品标签id列表:JSON数组字符串, 格式如: [100,102,103] |
| originalPriceType | String | 商品原始价格(划线价格)类型,可能的值有:AMOUNT: 金额、CUSTOM: 自定义 |
| customOriginalPrice | String | 商品原始价格(划线价格)-自定义备注:如果 price 和 customOriginalPrice 都为空,则表示不启用原始价格(划线价格) |
| extObject | ExtObject | 扩展信息对象【详见ExtObject参数描述】 |
ExtObject参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| coverList | false | Array | 封面图地址数组,最多15个 |
| videoList | false | Array | 视频数组,最多1个,需要开通素材库才能使用【详见Video参数描述】 |
| jumpWay | false | Array | 购买方式为外链购买-通用链接的跳转方式: POP_UP 弹出框打开、NEW_WINDOW 新窗口打开、CURRENT_WINDOW 当前窗口打开 |
Video参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| videoId | false | String | 视频ID |
| videoSource | false | String | 视频来源: MATERIAL_LIBRARY-素材库 |
2、修改频道商品信息
描述
修改频道商品库商品信息
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/product/update
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
2、当商品类型为普通商品时,商品名称、商品封面链接、商品实际价格、商品上下架状态、商品链接类型必传,并根据商品链接类型传入对应链接
3、当商品类型为金融商品时,商品名称、商品上下架状态、商品链接类型必传,并根据商品链接类型传入对应链接
单元测试
@Test
public void testUpdateChannelProduct() throws IOException, NoSuchAlgorithmException {
LiveUpdateProductRequest liveUpdateProductRequest = new LiveUpdateProductRequest();
Boolean liveUpdateProductResponse;
try {
LiveUpdateProductRequest.ExtObject extObject = new LiveUpdateProductRequest.ExtObject()
.setCoverList(Arrays.asList("https://liveimages.videocc.net/assets/wimages/pc_images/logo.png",
"https://s1.videocc.net/live-admin-v3/assets/img/5c5f0d2242a07f21.svg"))
.setVideoList(Collections.singletonList(new LiveUpdateProductRequest.Video()
.setVideoId("b820ac35dc3bb6be0dcb0841fcb379db")
.setVideoSource("MATERIAL_LIBRARY")))
.setJumpWay("POP_UP");
String ext = JSON.toJSONString(extObject);
liveUpdateProductRequest.setChannelId(createChannel())
.setProductId(getChannelProductId(createChannel()))
.setCover("https://liveimages.videocc.net/uploadimage/20200827/chat_img_1779741_15985125681801.jpeg")
.setRealPrice(Float.MIN_VALUE)
.setName("测试修改普通产品")
.setStatus(1)
.setProductType("normal")
.setLinkType(11)
.setPcLink("http://polyv.net")
.setMobileLink("http://polyv.net")
.setMobileAppLink("http://polyv.net")
.setWxMiniProgramLink("pages/home/index.html")
.setWxMiniProgramOriginalId("xxxxxxx")
.setYield("88.88")
.setFeatures("[\"tab1\", \"tab2\", \"tab3\", \"tab4\"]")
.setBtnShow("立即了解")
.setProductDesc("测试描述")
.setParams("{\"code\":123,\"color\":\"red\"}")
.setProductDetail("你能够点击购买<br/>为我们购买助力<a href='https://polyv.com'></a>")
.setTagIds("[100,102,103]")
.setPriceType("CUSTOM")
.setCustomPrice("99.00")
.setOriginalPriceType("CUSTOM")
.setCustomOriginalPrice("199.00")
.setExtObject(extObject)
.setExt(ext)
.setExtObject(null)
.setAppId(super.getLiveAppInfo().getAppId())
.setAppSecret(super.getLiveAppInfo().getAppSecret());
liveUpdateProductResponse = new LiveChannelProductServiceImpl().updateChannelProduct(
liveUpdateProductRequest);
Assert.assertTrue(liveUpdateProductResponse);
if (liveUpdateProductResponse != null) {
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 | 频道号 |
| productId | true | Integer | 商品库商品productId |
| name | true | String | 商品名称,必填,长度范围:1-60 |
| status | true | Integer | 商品上下架状态:1:上架,2:下架 |
| linkType | true | Integer | 商品链接类型 10:通用链接 11:多平台链接 |
| realPrice | false | Float | 普通商品参数,商品类型为普通商品时必传,商品购买价格,保留两位小数,如:0.01 |
| cover | false | String | 商品封面链接,必填,长度范围:1-500 |
| price | false | Float | 商品价格,保留两位小数,如:0.01 |
| link | false | String | 通用链接,商品链接,长度1-500,当linkType=10时,该参数必填;当请求参数linkType=11时,该参数无效 |
| pcLink | false | String | 多平台链接,pc端跳转链接,长度1-500 当请求参数linkType=11时,该参数必填;当请求参数linkType=10时,该参数无效 |
| mobileLink | false | String | 多平台链接,移动web端链接 |
| wxMiniProgramLink | false | String | 多平台链接,小程序内页面路径及参数(对于path属性,所声明的页面路径必须添加.html后缀,如pages/home/index.html)【对应api文档的wxMiniprogramLink字段】 |
| wxMiniProgramOriginalId | false | String | 多平台链接,小程序端原始Id【对应api文档的wxMiniprogramOriginalId字段】 |
| mobileAppLink | false | String | 多平台链接,移动App端链接 |
| androidLink | false | String | 多平台链接,移动APP-安卓系统原生页面链接 |
| iosLink | false | String | 多平台链接,移动APP-苹果系统原生页面链接 |
| params | false | String | 自定义参数,类型json对象,需要转为string |
| productDesc | false | String | 产品描述 |
| productDetail | false | String | 产品详情 |
| features | false | String | 产品特色,卖点标签,可以多个,json字段,如:["tab1", "tab2"] |
| btnShow | false | String | 金融商品参数,按钮显示文案 |
| yield | false | String | 金融商品参数,产品收益率/价格 |
| productType | false | String | 商品类型,默认为普通商品:normal:普通商品,finance:金融商品 |
| tagIds | false | String | 商品标签ID, json对象 例如: [1,2,3] |
| priceType | false | String | 商品实际价格类型,可选值有:AMOUNT: 金额、CUSTOM: 自定义、不传时默认为 AMOUNT |
| customPrice | false | String | 商品实际价格-自定义,priceType=CUSTOM 时必传,最多20个字符 |
| originalPriceType | false | String | 商品原始价格(划线价格)类型,可选值有: AMOUNT: 金额、CUSTOM: 自定义、默认为 AMOUNT |
| customOriginalPrice | false | String | 商品原始价格(划线价格)-自定义,originalPriceType=CUSTOM 时生效,最多20个字符,备注:如果 price 和 customOriginalPrice 都为空,则表示不启用原始价格(划线价格) |
| extObject | false | ExtObject | 扩展信息对象【详见ExtObject参数描述】] |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
ExtObject参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| coverList | false | Array | 封面图地址数组,最多15个 |
| videoList | false | Array | 视频数组,最多1个,需要开通素材库才能使用【详见Video参数描述】 |
| jumpWay | false | Array | 购买方式为外链购买-通用链接的跳转方式: POP_UP 弹出框打开、NEW_WINDOW 新窗口打开、CURRENT_WINDOW 当前窗口打开 |
Video参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| videoId | false | String | 视频ID |
| videoSource | false | String | 视频来源: MATERIAL_LIBRARY-素材库 |
返回对象描述
null
3、查询频道商品库开关状态
描述
查询频道商品库开关状态
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/product/get-enabled
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testGetChannelProductEnabled() throws IOException, NoSuchAlgorithmException {
LiveGetProductEnabledRequest liveGetProductEnabledRequest = new LiveGetProductEnabledRequest();
LiveGetProductEnabledResponse liveGetProductEnabledResponse;
try {
liveGetProductEnabledRequest.setChannelId(createChannel());
liveGetProductEnabledResponse = new LiveChannelProductServiceImpl().getChannelProductEnabled(
liveGetProductEnabledRequest);
Assert.assertNotNull(liveGetProductEnabledResponse);
if (liveGetProductEnabledResponse != null) {
//to do something ......
log.debug("测试查询频道商品库开关状态成功{}", JSON.toJSONString(liveGetProductEnabledResponse));
}
} 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、请求正确,返回LiveGetProductEnabledResponse对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| channelId | true | String | 频道号 |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| enabled | String | 开关状态,Y:开启,N:关闭 |
4、查询频道商品列表
描述
获取频道商品库商品列表
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/product/list
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testGetChannelProductList() throws IOException, NoSuchAlgorithmException {
LiveGetProductListRequest liveGetProductListRequest = new LiveGetProductListRequest();
LiveGetProductListResponse liveGetProductListResponse;
try {
liveGetProductListRequest.setChannelId(createChannel()).setCurrentPage(1).setPageSize(2);
liveGetProductListResponse = new LiveChannelProductServiceImpl().getChannelProductList(
liveGetProductListRequest);
Assert.assertNotNull(liveGetProductListResponse);
if (liveGetProductListResponse != null) {
//to do something ......
log.debug("测试查询频道商品列表成功{}", JSON.toJSONString(liveGetProductListResponse));
}
} 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、请求正确,返回LiveGetProductListResponse对象,B端依据此对象处理业务逻辑;
2、请求参数校验不合格,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 输入参数 [xxx.chat.LivexxxRequest]对象校验失败,失败字段 [pic不能为空 / msg不能为空] ]
3、服务器处理异常,抛出PloyvSdkException,错误信息见PloyvSdkException.getMessage(),如 [ 保利威请求返回数据错误,请求流水号:66e7ad29fd04425a84c2b2b562d2025b,错误原因: invalid signature. ]
请求入参描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| channelId | true | String | 频道号 |
| currentPage | false | Integer | 页数,默认为1【对应api文档的page字段】 |
| pageSize | false | Integer | 每页显示的数据条数,默认每页显示20条数据 |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| contents | Array | 查询的商品列表【详见channelProductList参数描述】 |
| pageSize | Integer | 每页显示的数据条数,默认每页显示20条数据 |
| currentPage | Integer | 当前页【对应api文档的pageNumber字段】 |
| totalItems | Integer | 记录总条数 |
| totalPage | Integer | 总页数【对应api文档的totalPages字段】 |
channelProductList参数描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| productId | Integer | 商品productId |
| userId | String | POLYV用户ID,和保利威官网一致,获取路径:官网->登录->直播(开发设置) |
| channelId | String | 频道号 |
| name | String | 商品名称 |
| price | Float | 商品价格,保留两位小数,如:0.01 |
| cover | String | 商品封面链接 |
| link | String | 商品通用类型商品链接 |
| status | Integer | 商品上下架状态,1:上架状态,2:下架状态 |
| createdTime | Date | 创建商品时间,格式:yyyy-MM-dd HH:mm:ss |
| lastModified | Date | 更新商品时间,格式:yyyy-MM-dd HH:mm:ss |
| rank | Integer | 商品排序号 |
| realPrice | Float | 商品实际价格,保留两位小数,如:0.01 |
| type | String | 平台标志,默认live,其他无效 |
| linkType | Integer | 商品链接类型,10:通用链接,11:多平台链接 |
| pcLink | String | 多平台链接,pc端跳转链接 |
| mobileLink | String | 多平台链接,移动web端跳转链接 |
| wxMiniProgramLink | String | 多平台链接,小程序端跳转链接【对应api文档的wxMiniprogramLink字段】 |
| wxMiniProgramOriginalId | String | 多平台链接,小程序端原始Id【对应api文档的wxMiniprogramOriginalId字段】 |
| mobileAppLink | String | 多平台链接,移动App端跳转链接 |
| androidLink | String | 多平台链接,移动APP-安卓系统原生页面链接 |
| iosLink | String | 多平台链接,移动APP-苹果系统原生页面链接 |
| params | String | 自定义参数,类型json对象,需要转为string |
| productType | String | 商品类型,normal:普通商品,finance:金融商品 |
| btnShow | String | 按钮显示文案 |
| features | String | 产品特色,卖点标签,可以多个,json字段,如:["tab1", "tab2"] |
| productDesc | String | 产品描述 |
| yield | String | 金融商品参数,产品收益率/价格 |
| showId | Integer | 显示Id |
5、修改频道商品库开关状态
描述
修改频道商品库商品列表开关状态,开启后,观看页将展示商品列表
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/product/update-enabled
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testUpdateChannelProductEnabled() throws IOException, NoSuchAlgorithmException {
LiveUpdateProductEnabledRequest liveUpdateProductEnabledRequest = new LiveUpdateProductEnabledRequest();
Boolean liveUpdateProductEnabledResponse;
try {
liveUpdateProductEnabledRequest.setChannelId(createChannel()).setEnabled("Y");
liveUpdateProductEnabledResponse = new LiveChannelProductServiceImpl().updateChannelProductEnabled(
liveUpdateProductEnabledRequest);
Assert.assertTrue(liveUpdateProductEnabledResponse);
if (liveUpdateProductEnabledResponse) {
//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 | 频道号 |
| enabled | true | String | 开关状态,Y:开启,N:关闭 |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
true为修改成功,false为修改失败
6、修改频道商品库上下架状态
描述
修改频道商品库商品上下架状态
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/product/shelf
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testShelfChannelProduct() throws IOException, NoSuchAlgorithmException {
LiveShelfChannelProductRequest liveShelfChannelProductRequest = new LiveShelfChannelProductRequest();
Boolean liveShelfChannelProductResponse;
try {
liveShelfChannelProductRequest.setChannelId(createChannel())
.setProductId(super.getChannelProductId(createChannel()))
.setShelf(1);
liveShelfChannelProductResponse = new LiveChannelProductServiceImpl().shelfChannelProduct(
liveShelfChannelProductRequest);
Assert.assertTrue(liveShelfChannelProductResponse);
if (liveShelfChannelProductResponse) {
//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 | 频道号 |
| productId | true | Integer | 商品ID |
| shelf | true | Integer | 商品上下架状态,1:上架,2:下架 |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
true为修改成功,false为修改失败
7、推送频道商品库商品
描述
推送频道商品库商品
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/product/push-product
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
2、仅商品为上架状态才可进行推送
单元测试
@Test
public void testPushChannelProduct() throws IOException, NoSuchAlgorithmException {
LivePushProductRequest livePushProductRequest = new LivePushProductRequest();
Boolean livePushProductResponse;
try {
livePushProductRequest.setChannelId(createChannel())
.setProductId(super.getChannelProductId(createChannel()));
livePushProductResponse = new LiveChannelProductServiceImpl().pushChannelProduct(livePushProductRequest);
Assert.assertTrue(livePushProductResponse);
if (livePushProductResponse) {
//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 | 频道号 |
| productId | true | Integer | 商品productId |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
true为推送成功,false为推送失败
8、修改频道商品库列表顺序
描述
修改商品库商品列表顺序
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/product/sort
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
2、排序在第一位不能上移操作,最后一位不能下移
单元测试
@Test
public void testSortChannelProduct() throws IOException, NoSuchAlgorithmException {
LiveSortChannelProductRequest liveSortChannelProductRequest = new LiveSortChannelProductRequest();
Boolean liveSortChannelProductResponse;
try {
liveSortChannelProductRequest.setChannelId(createChannel())
.setProductId(super.getChannelProductId(createChannel()))
.setType(20);
liveSortChannelProductResponse = new LiveChannelProductServiceImpl().sortChannelProduct(
liveSortChannelProductRequest);
Assert.assertTrue(liveSortChannelProductResponse);
if (liveSortChannelProductResponse) {
//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 | 频道号 |
| productId | true | Integer | 商品ID |
| type | true | Integer | 商品上下移动操作,10:上移,20:下移 |
| sort | false | Integer | type为50时必传,移动到的指定位置(范围:1~商品总数) |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
true为修改成功,false为修改失败
9、删除频道商品
描述
删除频道商品库商品
接口地址(仅做说明使用):https://api.polyv.net/live/v3/channel/product/delete
调用约束
1、接口调用有频率限制,详细请查看,调用常见异常,详细请查看
单元测试
@Test
public void testDeleteChannelProduct() throws IOException, NoSuchAlgorithmException {
LiveDeleteChannelProductRequest liveDeleteChannelProductRequest = new LiveDeleteChannelProductRequest();
Boolean liveDeleteChannelProductResponse;
try {
//准备测试数据
Integer productId = super.getChannelProductId(createChannel());
liveDeleteChannelProductRequest.setChannelId(createChannel()).setProductId(productId);
liveDeleteChannelProductResponse = new LiveChannelProductServiceImpl().deleteChannelProduct(
liveDeleteChannelProductRequest);
Assert.assertTrue(liveDeleteChannelProductResponse);
if (liveDeleteChannelProductResponse) {
//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 | 频道号 |
| productId | true | Integer | 商品ID |
| appId | false | String | POLYV用户APP_ID,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
| appSecret | false | String | POLYV用户APP_SECRET,多账号调用时该参数必填(即调用了initMultiAccount()设置多账号调用),通过注册保利威官网获取,路径:官网->登录->直播(开发设置) |
返回对象描述
true为删除成功,false为删除失败
