# 在线内容 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×tamp=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×tamp=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×tamp=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"
}