会员对外文档平台 会员对外文档平台
登录
接口
介绍
  • TOB直充接口

  • TOB激活码直充接口

  • OTT直充接口

  • OTT自动续费接口

  • OTT激活码直充接口

  • 通用接口

  • 内容点播接口

    • 解锁状态批量查询接口
    • 内容定价浮层查询接口
    • 内容购买下单接口
    • 单点内容关联查询接口
  • 卡券类接口

  • 用户信息接口

  • 会员福利接口

  • 合作方客户FV管理

# 内容定价浮层查询接口

# 简介

# 业务介绍

超前点播业务中,非会员无法购买解锁剧集,黄金会员可购买解锁剧集,星钻会员可直接观看剧集。 该接口支持查询当前用户有无解锁资格,以及解锁剧集的方式(可直接购买解锁剧集or购买会员后可解锁)及其相应价格

# 接口定义

# 接口域名

环境 域名
生产 openapi.vip.iqiyi.com
测试 test-openapi.vip.iqiyi.com

# URL

/partnerx/content/supernatant/data

# 请求方式

参数 说明
Method GET/POST
Content-Type application/x-www-form-urlencoded

# 请求参数

字段 参数名称 类型 必填 说明
partnerNo 合作方编码 String 是
aid 剧集ID String 是 专辑/节目的ID,兼容奇谱ID
openid 第三方用户唯一标识 String 否
partnerProductCode 合作方产品code String 否 根据合作方产品code 合作方是否享有优惠
sign 签名 String 是 md5签名,规则见MD5加密描述
timestamp 时间戳 Long 是
messageId 每次请求的唯一标识 String 否 32位 字符串

# 返回参数

字段名 类型 说明
code String 响应码
msg String 响应码说明
data Object
data.lockContent Object 解锁状态数据
lockContent Integer 是否为解锁内容 0 不是解锁内容;1 是解锁内容
vodUnLockable Integer 点播解锁状态:1不能解锁;2可解锁;3已解锁``(当内容为解锁内容时有意义;为1时说明用户不可购买单集解锁内容,需要开通会员或逐集解锁)
data.vipStructureResList List 购买项会员类型
supportVipType Integer 购买会员类型 (当内容为解锁内容时有意义;会员类型为5表示需要购买奇异果黄金会员,为54表示需要购买奇异果星钻会员,没有对接奇异果星钻会员的合作方无需关心54)
name String 会员类型名称
data.vodStructureRes Object 单点(点播)
name String 名称
price Long 购买价
vipPrice Long 会员价
costPrice Long 成本价(原价)
pid String 商品code(下单时通过直充接口传入)
period Integer 内容权益时长
periodUnit Integer 权益时长单位:1:天, 2:月, 3:小时
expire String 购买后权益有效期至:yyyy-MM-dd HH:mm
saleExpired Integer 是否已过售卖截止期:1未过期, 2已过期
episode Object 点播内容信息
episode.albumName String 专辑名称
episode.episodeOrder Integer 第几集
episode.episodeName String 单集名称
data.productPacketStructureRes Object 套餐(点播)
name String 名称
price Long 购买价
vipPrice Long 会员价
costPrice Long 成本价
pid String 商品code(下单时通过直充接口传入)
episode Object 点播内容信息
saleExpired Integer 是否已过售卖截止期:1未过期, 2已过期
episode.albumName String 专辑名称
episode.episodeOrder Integer 第几集
episode.episodeName String 单集名称
data.pointAdvancePackageRes List 加更礼套餐包
skuId String skuId
skuName String sku名称
price Long 加更礼套餐包售卖价格 单位:分
contentIdList List 加更礼套餐包包含的所有内容id
showName String 用户侧展示名称
startTime Long 开始时间时间戳:单位:ms
deadline Long 结束时间时间戳:单位:ms
extendDataList List 加更礼套餐详情
extendData.order Integer 序号
extendData.info String 套餐明细(如包含的内容)
extendData.moreInfo String 补充说明(如上线时间说明)

# 返回示例

{
  "code": "A00000",
  "msg": "处理成功",
  "data": {
    "lockContent": {
      "lockContent": 1,
      "vodUnLockable": "2"
    },
    "vipStructureResList": [
      {
        "supportVipType": 5,
        "name": "奇异果黄金VIP"
      }
    ],
    "vodStructureRes": {
      "name": "单点点播xxx",
      "price": 1000,
      "vipPrice": 1000,
      "costPrice": 1100,
      "pid": "pidxxxxxx",
" period ": 48,
      " periodUnit ": 3,
      "expire": "2020-04-07 15:08",
      "episode": {
        "albumName": "庆余年大结局",
        "episodeOrder": 45,
        "episodeName": "剧终"
      }
    },
      "productPacketStructureRes": {
        "name": "琅琊榜全集套餐",
        "price": 1000,
        "vipPrice": 1000,
        "costPrice": 1100,
        "pid": "pidxxxxxx",
        "episode": {
          "albumName": "琅琊榜全集",
          "episodeOrder": 45,
          "episodeName": "琅琊榜全集"
        }
      },
    "pointAdvancePackageRes":
    [
      {
        "skuId": "sku_1111", #套餐包skuId
        "skuName": "测试加更礼套餐包", #加更礼套餐包名称
        "showName": "加更礼包", #用户侧展示名称
        "extendData": "[{\"info\":\"测试的加更礼同步1125\",\"moreInfo\":\"测试的加更礼同步1125\",\"order\":1}]",
        "startTime": 1730908800000, #开始时间时间戳:单位:ms
        "deadline": 1740213754000,  #结束时间时间戳:单位:ms
        "price": 1800,   //加更礼套餐包售卖价格,单位:分
        "contentIdList": "111110000,2222220000,333330000"  #加更礼套餐包包含的所有内容id
      },
      {
        "skuId": "sku_2222",
        "skuName": "测试加更礼套餐包2",
        "showName": "加更礼包", #用户侧展示名称
        "extendData": "[{\"info\":\"测试的加更礼同步1125\",\"moreInfo\":\"测试的加更礼同步1125\",\"order\":1}]",
        "startTime": 1730908800000, #开始时间时间戳:单位:ms
        "deadline": 1740213754000,  #结束时间时间戳:单位:ms
        "price": 1800,
        "contentIdList": "111110000,2222220000,333330000"
      }
    ]
  }
}

# 返回码说明

响应码 说明
A00000 请求处理正常
Q00000 系统错误
Q00101 签名错误
Q00102 签名过期
Q00306 参数不能为空
Q00403 无权限,禁止访问
Q00301 业务参数错误,
Q00304 签名参数错误或非法用户(未检测到合法的用户信息)
Q00305 用户状态不可用
Q00311 账号临时封停
Q00312 账号永久封停

# 附录

# MD5加密描述

采用MD5计算签名,MD5密钥由爱奇艺提供,具体计算方法如下:
1、 假设共有三个参数 a=3、b=2、c=1;
2、 按参数名的字母正序排列,再用“&”连接后得到串A,即为“a=3&b=2&c=1”;
3、 将MD5密钥拼接到串A后面,假设MD5密钥为“qwer”,则拼接后为“a=3&b=2&c=1qwer”;
4、 计算拼接串的MD5即为最终签名值,注意使用UTF-8编码计算,MD5后的签名最后都转成小写。
举例:
参数:a=3、b=2、c=1;
MD5密钥:qwer
最终签名串:f80118ff523f25eda67cb799bdc9c52d

# JAVA版本示例代码如下:

public class Test{
/**
 * MD5签名测试类
 *
 */
    private static final char[] DIGITS = {'0', '1', '2', '3', '4', '5', '6',
        '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
    public static void main(String[] args) {
        TreeMap<String, Object> paramMap = new TreeMap<>();
        paramMap.put("a", "3");
        paramMap.put("b", "2");
        paramMap.put("c", "1");
        String md5key = "qwer";
        String targetParam = Joiner.on("&").withKeyValueSeparator("=")
        .useForNull("").join(paramMap);
        // MD5签名工具类,可以自己实现, MD5实现参照
        String targetSign = EncodeUtils.MD5(targetParam + md5key, "UTF-8");
        System.out.println("targetSign: " + targetSign);
    }
}

# 加密工具类

# MD5加密

import com.google.common.base.Joiner;
import org.apache.commons.lang.StringUtils;
import org.junit.Test;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class EncodeUtils{

    public static String MD5(String text, String charset) {

        MessageDigest msgDigest = null;
        try {
            msgDigest = MessageDigest.getInstance("MD5");
        } catch (NoSuchAlgorithmException e) {
            throw new IllegalStateException("System doesn't support MD5 algorithm.");
        }
        try {
            msgDigest.update(text.getBytes(charset));    //注意改接口是按照指定编码形式签名
        } catch (UnsupportedEncodingException e) {
            throw new IllegalStateException("System doesn't support your  EncodingException.");
        }
        byte[] bytes = msgDigest.digest();
        String md5Str = new String(encodeHex(bytes));
        return md5Str;
    }

    public static char[] encodeHex(byte[] data) {

        int l = data.length;
        char[] out = new char[l << 1];
        // two characters form the hex value.
        for (int i = 0, j = 0; i < l; i++) {
            out[j++] = DIGITS[(0xF0 & data[i]) >>> 4];
            out[j++] = DIGITS[0x0F & data[i]];
        }
        return out;
    }
}

# 在线测试

参数 值 备注
partnerNo toB_common_test

所需密钥:

参数 值
MD5密钥 b0ee3c7f62760330
点击此处进行接口调试
在线调试

← 解锁状态批量查询接口 内容购买下单接口 →