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 | 多平台連結,行動網頁端連結 |
| 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 | 否 | String | 影片ID |
| videoSource | 否 | 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 | 否 | String | 影片ID |
| videoSource | 否 | 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 | 否 | String | 影片ID |
| videoSource | 否 | 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 - Android 系統原生頁面連結 |
| iosLink | String | 多平台連結,行動 APP - iOS 系統原生頁面連結 |
| 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 | 是 | String | 頻道號 |
| productId | 是 | Integer | 商品 productId |
| appId | 否 | String | POLYV 使用者 APP_ID,多帳號呼叫時此參數必填(即呼叫了 initMultiAccount() 設定多帳號呼叫),透過註冊保利威官網取得,路徑:官網 -> 登入 -> 直播(開發設定) |
| appSecret | 否 | 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 | 是 | String | 頻道號 |
| productId | 是 | Integer | 商品ID |
| type | 是 | Integer | 商品上下移動操作,10:上移,20:下移 |
| sort | 否 | Integer | type為50時必填,移動到的指定位置(範圍:1~商品總數) |
| appId | 否 | String | POLYV用戶APP_ID,多帳號調用時此參數必填(即調用了initMultiAccount()設置多帳號調用),透過註冊保利威官網取得,路徑:官網->登入->直播(開發設定) |
| appSecret | 否 | 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 表示刪除失敗
