# 在线内容 API

本章内容适用于在线文学API合作

# 获取章节信息和内容

简要描述: 获取指定章节信息+内容,需要传入openid,接口会校验并返回购买状态,未购买的付费章节仅返回预览正文内容。 注意:此接口返回的正文内容不可缓存,必须实时调用获取。

请求方式:GET(HTTPS)

请求地址

https://cpapi-i.yuewen.com/api/v1/chapter/info

请求参数:查看通用请求参数

请求参数 是否必须 类型 说明
cbid string 书籍ID
ccid string 章节ID
openid string 用户ID

返回字段:(查看通用返回字段

字段名称 字段类型 说明 业务说明
ccid string 章号 作品章节的唯一标识
cbid string 书籍ID 书籍唯一ID
cvid string 卷号 所属分卷
chapterOrder int 序号 章节序号
chapterTitle string 章节名 作家定义的章节名
chapterType int 章节类型 章节类型: -1:免费 1:收费 2:感言 3:编辑推荐
originalWords int 计费字数 章节首次发布时的字数,
actualWords int 实际字数 章节实际字数
payFlag int 收费标识 收费标识: 1本章收费 -1本章免费
amount int 价格 以千字价格计算出的本章售价,单位分
updateTime string 更新时间 章节最近更新时间
publishTime string 发布时间 章节发布时间
prevCcid string 前一章节ID 前一章节ID
nextCcid string 后一章节ID 后一章节ID
isTaked int 是否已购买 是否已购买: 1已购买 0未购买
content string 章节内容 作品的正文

正文内容中会包含emoji表情,以unicode编码方式输出,例如’\ud83d\ude04’,请您自行转义字符,常见方法:

平台 方法描述
HTML 1. 使用 CSS:通过 CSS 定义 emoji 字体,确保在 HTML 中直接使用 emoji 字符时能够正确显示。
2. 使用第三方库:如 twemoji,这是 Twitter 开源的项目,可通过 script 标签引入 js 文件使用。twemoji.parse 函数可处理文本,将 emoji 代码转换为 img 标签。
3. 构建过程中处理:在 Webpack 构建中,通过配置 loader 或插件处理 HTML 文件中的 emoji。可编写自定义 loader 识别 HTML 文件中的 emoji 代码,并转换为 img 标签或 unicode 字符。
Android 1. 使用 Android 官方库支持 emoji 查看详情
2. 使用第三方库,如 Emoji 查看详情
iOS 1. 使用系统默认的 Emoji 字体。

请求示例:

https://cpapi-i.yuewen.com/api/v1/chapter/info?cbid=1&ccid=1&openid=xxx&appflag=xxx&timestamp=xxx&sign=XXX

返回示例:

{
  "code": 0,
  "message": "成功",
  "data": {
    "ccid": "95697033915265801",
    "cbid": "22281178000299202",
    "cvid": "95696930836099848",
    "chapterOrder": 81,
    "chapterTitle": "第四集  第二十章  龙晶之变",
    "originalWords": 4015,
    "chapterType": 1,
    "amount": 20,
    "actualWords": 4015,
    "updateTime": "2008-07-04 21:16:41",
    "publishTime": "2008-07-04 21:16:41",
    "prevCcid": "95697033915167497",
    "nextCcid": "95697033915364105",
    "isTaked": 0,
    "content": "第四集  第二十章  龙晶之变第四集  第二十章  龙晶之变第四集  第二十章  龙晶之变第四集  第二十章  龙晶之变第四集  第二十章  龙晶之变第四集  第二十章  龙晶之变第四集  第二十章  龙晶之变第四集  第二十章  龙晶之变第四集  第二十章  龙晶之变第四集  第二十章  龙晶之变第四集  第二十章 ",
    "payFlag": 1
  }
}

# 批量获取章节信息

简要描述:该API用于批量获取章节信息, 需要传入openid,接口会校验并返回购买状态。

请求方式:GET(HTTPS)

请求地址

https://cpapi-i.yuewen.com/api/v1/chapter/batch

请求参数:查看通用请求参数

请求参数 是否必须 类型 说明
cbid string 书籍ID
ccids string 章节ID, 多章用逗号分隔
openid string 章节ID, 多章用逗号分隔

返回字段:(查看通用返回字段

字段名称 字段类型 说明 业务说明
ccid string 章号 作品章节的唯一标识
cbid string 书籍ID 书籍唯一ID
cvid string 卷号 所属分卷
chapterOrder int 序号 章节序号
chapterTitle string 章节名 作家定义的章节名
chapterType int 章节类型 章节类型: -1:免费 1:收费 2:感言 3:编辑推荐
originalWords int 计费字数 章节首次发布时的字数,
actualWords int 实际字数 章节实际字数
payFlag int 收费标识 收费标识: 1本章收费 -1本章免费
amount int 价格 以千字价格计算出的本章售价,单位分
updateTime string 更新时间 章节最近更新时间
publishTime string 发布时间 章节发布时间
prevCcid string 前一章节ID 前一章节ID
nextCcid string 后一章节ID 后一章节ID
isTaked int 是否已购买 是否已购买: 1已购买 0未购买

请求示例:

https://cpapi-i.yuewen.com/api/v1/chapter/batch?cbid=1&ccid=1,2,3&openid=xxx&appflag=xxx&timestamp=xxx&sign=XXX

返回示例:

{
  "code": 0,
  "message": "成功",
  "data": [
    {
      "ccid": "95697094037353232",
      "cbid": "22281178000299202",
      "cvid": "95696930836099848",
      "chapterOrder": 200,
      "chapterTitle": "第八集  第四十一章  百重浪的威力",
      "originalWords": 4080,
      "chapterType": 1,
      "amount": 20,
      "actualWords": 4080,
      "updateTime": "2008-08-28 20:19:30",
      "publishTime": "2008-08-28 20:19:30",
      "prevCcid": "95697094037254928",
      "nextCcid": "95697094037467920",
      "isTaked": 1,
      "payFlag": 1
    }
  ]
}

# 获取 epub 书籍文件下载地址

简要描述: 该 API 用于 epub 格式的书籍获取书内容信息,属于非通用接口,使用前需要与阅文方沟通开启权限。参考 epub 规则 用户已购买的书籍会返回完整内容, 未购买的书籍会返回试读内容

请求方式:GET(HTTPS)

请求地址

https://cpapi-i.yuewen.com/api/v1/epub/url

请求参数:查看通用请求参数

请求参数 是否必须 类型 说明
cbid string 书籍唯一ID
openid string 用户ID

返回字段:(查看通用返回字段

字段名称 字段类型 说明 业务说明
epubUrl string 下载地址 epub文件下载地址
fileType int 文件类型 1:试读版 0:完整版

请求示例:

https://cpapi-i.yuewen.com/api/v1/epub/url?cbid=1&openid=xxx&appflag=xxx&timestamp=xxx&sign=XXX

返回示例:

{
  "code": 0,
  "message": "成功",
  "data": {
    "epubUrl": "https://epubservercos.yuewen.com/E073AC/3590431004458601/3590431004458601_epub.new?sign=1704959048-06bf958e24f64ddfa86ddc8d841db1dc-0-1819e89899021ab8cf13986f68ed30b0",
    "fileType": 1
  }
}

# 购买解锁书籍或章节

简要描述:用户购买书籍、章节后合作方需要调用此接口解锁后才能获取完整内容 注意:单用户多章购买时,请批量传入ccids(单批次不建议超过500条),不要并发请求多次。因为接口加锁在cbid+openid上,如果同一个用户、对一本书并发购买,可能导致某些请求失败。

请求方式:POST(HTTPS)

请求地址

https://cpapi-i.yuewen.com/api/v1/booktake/authen

请求参数:查看通用请求参数

请求参数 是否必须 类型 说明
cbid string 书籍id
type int 购买类型:1按章购买,2按本购买
ccids string 按章购买时必传,章节价格取自章节信息中的amount字段,格式为:章节id:章节价格(单位有价币,用户充值获取的虚拟币,1元:100有价币),多章以英文逗号分隔。例如:1111:5,222:5,3333:5
openid string 合作方用户id
paymoney int 消费有价币,多章时为所有章节价格总和(有价币)
paytime int 消费时间戳(秒)
orderid string 消费唯一订单号

返回字段:(查看通用返回字段) 无

请求示例:

  • 使用场景1,书籍信息字段 chargeType=1 按章购买: 用户user1按章批量购买了cbid=10000的两个章节,ccid为20000、20001,两章价格分别为10、15虚拟币(取自章节信息amount字段) ,则请求示例如下:
curl POST 'https://cpapi-i.yuewen.com/api/v1/report/bookconsume'
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'appflag=test' \
  --data-urlencode 'timestamp=1700000000' \
  --data-urlencode 'sign=XXXXX' \
  --data-urlencode 'cbid=10000' \
  --data-urlencode 'type=1' \
  --data-urlencode 'ccids=20000:10,20001:15' \
  --data-urlencode 'openid=user1' \
  --data-urlencode 'paymoney=25' \
  --data-urlencode 'paytime=1700000000' \
  --data-urlencode 'orderid=order1'
  • 使用场景2,书籍信息字段 chargeType=2 整本购买: 用户user1整本购买了书籍cbid=10000,整本价格1000虚拟币(取自书籍信息totalPrice字段),则请求示例如下:
curl POST 'https://cpapi-i.yuewen.com/api/v1/report/bookconsume'
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'appflag=test' \
  --data-urlencode 'timestamp=1700000000' \
  --data-urlencode 'sign=XXXXX' \
  --data-urlencode 'cbid=10000' \
  --data-urlencode 'type=2' \
  --data-urlencode 'openid=user1' \
  --data-urlencode 'paymoney=1000' \
  --data-urlencode 'paytime=1700000000' \
  --data-urlencode 'orderid=order1'

返回示例:

{
  "code": 0,
  "message": "Success"
}