# API 接口
# 获取全量书籍 ID 列表
简要描述: 获取合作方下所有书籍的 ID 列表,分页返回,每页 100 条,推荐定时请求每日 1 次。
请求方式:GET
请求地址:
https://cpapi-i.yuewen.com/book/idlist
请求参数:(查看通用请求参数)
请求参数 | 必须 | 类型 | 说明 |
---|---|---|---|
page | 是 | int | 页码,正整数 |
返回字段:(查看通用返回字段)
接口字段 | 类型 | 说明 |
---|---|---|
cbids | string[] | 书籍 id 列表 |
page | int | 当前页 |
maxPage | int | 总页数 |
请求示例:
https://cpapi-i.yuewen.com/book/idlist?appflag=test×tamp=1700000000&page=1&sign=XXXXX
返回示例:
{
"code": 0,
"data": {
"cbids": [
"22135456000445102",
"22149077000687902",
"22149707000917202",
"22109602000760102",
"22113582000042902",
"22120562000525102",
"22166135000833302",
"22105413000701402"
],
"page": 1,
"maxPage": 100
},
"msg": "成功"
}
# 获取书籍基本信息
简要描述: 获取书籍信息,可以缓存到合作方服务器上
请求方式:GET
请求地址:
https://cpapi-i.yuewen.com/book/info
请求参数:(查看通用请求参数)
请求参数 | 必须 | 类型 | 说明 |
---|---|---|---|
cbid | 是 | string | 书籍 id |
返回字段:(查看通用返回字段)
接口字段 | 类型 | 说明 |
---|---|---|
cbid | string | 书籍 id,书籍唯一标识 |
allWords | int | 全部正文章节的总字数 |
authorId | string | 作者 id,作者唯一标识 |
authorName | string | 作者笔名 |
freeType | int | 书籍一级分类 id:阅文分类 ID 和名称 (opens new window) |
categoryId | int | 书籍二级分类 id:阅文分类 ID 和名称 (opens new window) |
webpCoverUrl | string | 封面图片的 URL 地址(webp 格式,推荐使用) |
coverUrl | string | 封面图片的 URL 地址 |
status | int | 连载状态: 50 为已完结,其它为连载中 |
subCategoryId | int | 书籍三级分类 id:阅文分类 ID 和名称 (opens new window) |
title | string | 书籍名称 |
vipStatus | int | 一本作品是否已经开始收费的标识,可能存在是 VIP 作品但未添加 VIP 章节的情况 Vip 标志-1:公众 1:VIP |
vipTime | string | 被设置为收费作品的时间 |
intro | string | 书籍简介(不超过 2000 字) |
keyword | string | 关键词 |
auditStatus | int | 书籍审核状态:19 为审核通过,其它值为锁定/屏蔽 |
updateTime | string | 书籍更新时间,如章节更新、简介更新等,都会更新该时间 |
newChapterId | string | 最新章节 ID |
newChapterName | string | 最新章节标题 |
site | int | 书籍在阅文的首发站点,可以体现授权来源 5:起点男生 1:创世中文网 2:云起书院 3:起点女生 6:阅文集团 9:起点文学 21:小说阅读网 22:潇湘书院 23:红袖添香 24:言情小说吧如果返回的值不在上述枚举,可以联系阅文产品技术查询值定义 |
form | int | 原创、出版书标识:-1 原创,1 出版 |
checkLevel | int | 标明书籍上架等级:15:正常作品。 11:有轻微风险的作品,避免除排行榜以外的人工/自动运营推荐。用户可以通过搜索、购买记录、书架等找到该书,书可以正常阅读、购买。 10:有一定风险的作品,避免全部的人工/自动运营推荐。用户可以通过搜索、购买记录、书架等找到该书,书可以正常阅读、购买。 9:中风险作品,避免全部的人工/自动运营推荐,避免让用户通过搜索等简单方式获取到。用户可以通过购买记录、书架等找到该书,书可以正常阅读、购买。 9 以下作品不可上架展示。 |
ChargeType | int | 购买类型:1 按章,2 按本 |
totalPrice | int | 按本购买总金额(分) |
unitPrice | int | 每千字价格(分) |
Isbn | string | 国际标准书号 |
publisher | string | 出版商 |
publishTime | string | 出版时间 |
supportFormat | int | 格式类型:1 仅支持 txt,2 仅支持 epub,3 支持 txt 和 epub |
smartTagIds | int[] | 智能标签列表,需要调用 tagDetailInfoByTagId 接口获取标签具体信息。不是全部书都有智能标签。 |
tag | struct | 标签,可以体现一本书的特征或流派等信息(参考 tag 字段结构) |
discountInfo | struct | 单书限时折扣(参考 discountInfo 字段结构) |
batchBuyDiscountInfo | struct | 章节批量购买折扣[未配置该折扣时,不返回该字段] (batchBuyDiscountInfo 字段结构) |
vipDiscountInfo | struct | 会员折扣[未配置该折扣时,不返回该字段] (参考 vipDiscountInfo 字段结构) |
tag 字段结构
接口字段 | 类型 | 说明 |
---|---|---|
tagId | string | 标签 id |
tagName | string | 标签名字 |
discountInfo 字段结构
接口字段 | 类型 | 说明 |
---|---|---|
dist_type | int | 折扣类型:1 按固定价,2 按比例折扣 |
price | int | dist_type=1:整本书价格,单位分;dist_type=2:书或章的折扣比例,0 免费,65 即 6.5 折,80 即 8 折,100 即原价 |
start_time | int | 折扣开始时间戳(秒) |
end_time | int | 折扣结束时间戳(秒) |
batchBuyDiscountInfo 字段结构
接口字段 | 类型 | 说明 |
---|---|---|
startCount | int | 批量折扣区间开始章节数 |
endCount | int | 批量折扣区间结束章节数 |
price | int | 折扣比例,如:80 表示 8 折 |
startTime | int | 折扣开始时间戳(秒) |
vipDiscountInfo 字段结构
接口字段 | 类型 | 说明 |
---|---|---|
price | int | 折扣比例,如:80 表示 8 折 |
startTime | int | 折扣开始时间戳(秒) |
endTime | int | 折扣结束时间戳(秒) |
请求示例:
https://cpapi-i.yuewen.com/book/info?appflag=test×tamp=1700000000&cbid=10000&sign=XXXXX
返回示例:
{
"code": 0,
"data": {
"cbid": "8626591604595403",
"allWords": 392659,
"authorId": "3635894803959601",
"authorName": "雪妖精01",
"freeType": 2,
"categoryId": 30020,
"coverUrl": "//qidian.qpic.cn/qdbimg/349573/c_8626591604595403/180",
"status": 30,
"subCategoryId": 30021,
"title": "重生八零好时光",
"vipStatus": 1,
"vipTime": "2017-12-01 00:05:00",
"intro": "林彩虹重生在大姐出嫁的那天。\r\n 看着热闹的家园她只觉得满目讽刺。\r\n 上辈子欠我的,辱我的,定要一一讨还。\r\n 只是这个出现在她面前要把她抱走的男人是怎么回事?",
"keyword": "",
"tag": [
{
"tagId": "31027",
"tagName": "励志"
},
{
"tagId": "31205",
"tagName": "乡村爱情"
}
],
"auditStatus": 19,
"updateTime": "2018-01-23 20:04:05",
"newChapterId": "25948969462636627",
"newChapterName": "第194章:热情",
"site": 3,
"form": -1,
"checkLevel": 15,
"ChargeType": 1,
"totalPrice": 0,
"unitPrice": 5,
"Isbn": "1234567",
"publisher": "XX出版社",
"publishTime": "2000-01-01 00:00:00",
"smartTagIds":[
51002001,
51000030,
51000027,
51000018,
51000029,
51000016,
510001043,
53000032
],
"discountInfo": {
"dist_type": 1,
"price": 0,
"start_time": 1516611600,
"end_time": 1517216400
},
"batchBuyDiscountInfo": [
{
"startCount": 20,
"endCount": 39,
"price": 90,
"startTime": 1693467295,
"endTime": 1693467295
},
{
"startCount": 40,
"endCount": 59,
"price": 80,
"startTime": 1693467295,
"endTime": 1693467295
}
],
"vipDiscountInfo": {
"price": 90,
"startTime": 1690790462,
"endTime": 1753948862
}
},
"msg": "成功"
}
# 获取书籍的所有章节列表
简要描述: 获取书籍所有章节列表,含免费章节和付费章节,可以缓存到合作方服务器上
注意:本接口不返回章节是否已购买
请求方式:GET
请求地址:
https://cpapi-i.yuewen.com/book/chapterlist
请求参数:(查看通用请求参数)
请求参数 | 必须 | 类型 | 说明 |
---|---|---|---|
cbid | 是 | string | 书籍 id |
返回字段:(查看通用返回字段)
接口字段 | 类型 | 说明 |
---|---|---|
cbid | string | 书 id |
chapterList | struct | 章节列表信息 (参考 chapterList 字段结构) |
chapterList 字段结构
接口字段 | 类型 | 说明 |
---|---|---|
cvid | string | 卷 id |
vName | string | 卷名称 |
volumeSort | int | 卷序号 |
chapters | struct | 单章信息 (参考 chapters 字段结构) |
chapters 字段结构
接口字段 | 类型 | 说明 |
---|---|---|
ccid | string | 章 id |
chapterTitle | string | 章名称 |
chapterSort | int | 章序号 |
vipflag | int | 是否 VIP 章节,1 为 VIP 章节,0 为非 VIP 章节 |
freeStatus | int | vipStatus=1 且 freeStatus=1 是收费章节 vipStatus=1 且 freeStatus=0 是 VIP 中的免费章节 |
updateTime | int | 章节更新时间戳(秒) |
prevCcid | string | 上一章章节 ID |
nextCcid | string | 下一章章节 ID |
originalWords | int | 章节字数(即章节第一次发布时的字数,不随章节修改变化,阅文返回的章节价格根据此字段值计算。) |
请求示例:
https://cpapi-i.yuewen.com/book/chapterlist?appflag=test×tamp=1700000000&cbid=10000&sign=XXXXX
返回示例:
{
"code": 0,
"data": {
"cbid": "22281178000299202",
"chapterList": [
{
"cvid": "95696930835985160",
"volumeSort": 1,
"vName": "第一集 盘龙之戒",
"chapters": [
{
"ccid": "95697008140694285",
"chapterTitle": "第一章 小镇的早晨",
"chapterSort": 1000001024,
"vipflag": 0,
"freeStatus": 0,
"originalWords": 8929,
"updateTime": 1211335591,
"prevCcid": "0",
"nextCcid": "95697008140759820"
},
{
"ccid": "95697008140759820",
"chapterTitle": "第二章 龙血战士家族(上)",
"chapterSort": 1000002048,
"vipflag": 0,
"freeStatus": 0,
"originalWords": 3710,
"updateTime": 1211419784,
"prevCcid": "95697008140694285",
"nextCcid": "95697008140792588"
}]
}]
},
"msg": "成功"
}
# 获取章节内容(免费模式)
简要描述: 获取指定章节内容,接口不会校验是否购买,直接返回已购买
注意:此接口仅针对免费合作模式,此接口返回的正文内容不可缓存,必须实时调用获取
请求方式:GET
请求地址:
https://cpapi-i.yuewen.com/chapter/getchapterinfoforfree
请求参数:(查看通用请求参数)
请求参数 | 必须 | 类型 | 说明 |
---|---|---|---|
cbid | 是 | string | 书籍 id |
ccid | 是 | string | 章节 id |
openid | 否 | string | 用户 id |
withcontent | 是 | int | 是否返回章节内容(数据量较大,默认 0 不返回内容) |
返回字段:(查看通用返回字段)
接口字段 | 类型 | 说明 |
---|---|---|
cbid | string | 书籍 id |
ccid | string | 章节 id |
chargeType | int | 收费类型:1 按章,2 按本 |
content | string | 作品正文(不超过 20,000 字)withcontent=1 时返回内容 |
isTaked | int | 购买状态:1 已购买,0 未购买 |
chapterName | string | 章节标题 |
updateTime | int | 章节更新时间戳(秒) |
prevCcid | string | 上一章章节 ID |
nextCcid | string | 下一章章节 ID |
chapterOrder | int | 章节序号(当有章节被屏蔽、调序时,该序号可能会变化) |
wordsCount | int | 章节字数(即章节第一次发布时的字数,不随章节修改变化,阅文返回的章节价格根据此字段值计算。) |
freeStatus | int | vipStatus=1 且 freeStatus=1 是收费章节 vipStatus=1 且 freeStatus=0 是 VIP 中的免费章节 |
vipStatus | int | 是否 VIP 章节,1 为 VIP 章节,0 为非 VIP 章节 |
chapterPrice | int | 章节价格(虚拟币) |
bookPrice | int | 整本书价格(虚拟币),按本购买时有效 |
请求示例:
https://cpapi-i.yuewen.com/chapter/getchapterinfoforfree?appflag=test×tamp=1700000000&cbid=10000&ccid=20000&openid=user1&withcontent=1&sign=XXXXX
返回示例:
{
"code":0,
"data":{
"ccid":"107489188751328952",
"cbid":"22153207000285602",
"chapterName":"第八十三章 夜车",
"updateTime":1406822808,
"prevCcid":"107489188751296185",
"nextCcid":"107489188751345337",
"chapterOrder":1,
"chargeType":1,
"wordsCount":2951,
"freeStatus":1,
"vipStatus":1,
"isTaked":1,
"chapterPrice":14,
"bookPrice":0,
"content":"在学识方面,没有人能胜过苟寒食,能让他佩服的人也很少,今夜,陈长生做到了这一点。\r\n 他看着苟寒食说道:“不敢当。”\r\n “你当得起。”苟寒食看着这个先前没有引起自己任何重视的少年,有些感慨。\r\n 他想起惊才绝艳的大师兄,想到这场婚事,竟发现悄无声息间,自己对师兄的信心竟有些动摇。\r\n “刚才殿下最后那……”他..."
},
"userInfo":{
"openid":"1"
},
"msg":"成功"
}
# 获取章节内容(付费模式)
简要描述: 获取指定章节内容,如果是付费章节需要传入 openid,接口会校验并返回购买状态,未购买的付费章节仅返回预览正文内容
注意:此接口返回的正文内容不可缓存,必须实时调用获取
请求方式:GET
请求地址:
https://cpapi-i.yuewen.com/chapter/getchapterinfo
请求参数:(查看通用请求参数)
请求参数 | 必须 | 类型 | 说明 |
---|---|---|---|
cbid | 是 | string | 书籍 ID |
ccid | 是 | string | 章节 ID |
openid | 否 | string | 用户 ID |
withcontent | 是 | int | 是否返回章节内容(数据量较大,默认 0 不返回内容) |
返回字段:(查看通用返回字段)
接口字段 | 类型 | 说明 |
---|---|---|
cbid | string | 书籍 ID |
ccid | string | 章节 ID |
chargeType | int | 收费类型:1 按章,2 按本 |
content | string | 章节正文内容(<20,000 字),withcontent=1 时返回内容 |
isTaked | int | 购买状态:1 已购买,0 未购买 |
chapterName | string | 章节标题 |
updateTime | int | 章节更新时间戳(秒) |
prevCcid | string | 上一章章节 ID |
nextCcid | string | 下一章章节 ID |
chapterOrder | int | 章节序号(当有章节被屏蔽、调序时,该序号可能会变化) |
wordsCount | int | 章节字数(即章节第一次发布时的字数,不随章节修改变化,阅文返回的章节价格根据此字段值计算。) |
vipStatus | int | 是否 VIP 章节,1 为 VIP 章节,0 为非 VIP 章节 |
freeStatus | int | vipStatus=1 且 freeStatus=1 是收费章节 vipStatus=1 且 freeStatus=0 是 VIP 中的免费章节 |
chapterPrice | int | 章节价格(虚拟币) |
bookPrice | int | 整本书价格(虚拟币),按本购买时有效 |
rawChapterPrice | int | 章节原始价格 [未配置批量折扣或会员折扣时,不返回该字段] |
batchBuyDiscountInfo | struct | 章节批量购买折扣[未配置该折扣时,不返回该字段] (参考 batchBuyDiscountInfo 字段结构) |
vipDiscountInfo | struct | 会员折扣[未配置该折扣时,不返回该字段] (参考 vipDiscountInfo 字段结构) |
batchBuyDiscountInfo 字段结构
接口字段 | 类型 | 说明 |
---|---|---|
startCount | int | 批量折扣区间开始章节数 |
endCount | int | 批量折扣区间结束章节数 |
price | int | 折扣比例,如:80 表示 8 折 |
startTime | int | 折扣开始时间戳(秒) |
vipDiscountInfo 字段结构
接口字段 | 类型 | 说明 |
---|---|---|
price | int | 折扣比例,如:80 表示 8 折 |
startTime | int | 折扣开始时间戳(秒) |
endTime | int | 折扣结束时间戳(秒) |
如果在正文内容中包含以下字符,请您自行转义字符:
字符 | 转义符号 | 字符名称 |
---|---|---|
& | & | & 符号 |
< | < | 小于号 |
> | > | 大于号 |
" | " | 双引号 |
' | ' | 单引号 |
请求示例:
https://cpapi-i.yuewen.com/chapter/getchapterinfo?appflag=test×tamp=1700000000&cbid=10000&ccid=20000&openid=user1&withcontent=1&sign=XXXXX'
返回示例:
{
"code": 0,
"data": {
"ccid": "107489188751328952",
"cbid": "22153207000285602",
"chapterName": "第八十三章夜车",
"updateTime": 1406822808,
"prevCcid": "107489188751296185",
"nextCcid": "107489188751345337",
"chapterOrder": 1,
"chargeType": 1,
"wordsCount": 2951,
"freeStatus": 1,
"vipStatus": 1,
"isTaked": 0,
"chapterPrice": 14,
"bookPrice": 0,
"content": "在学识方面,没有人能胜过苟寒食,能让他佩服的人也很少,今夜,陈长生做到了这一点。\r\n 他看着苟寒食说道:“不敢当。”\r\n “你当得起。”苟寒食看着这个先前没有引起自己任何重视的少年,有些感慨。\r\n 他想起惊才绝艳的大师兄,想到这场婚事,竟发现悄无声息间,自己对师兄的信心竟有些动摇。\r\n “刚才殿下最后那……”他...",
"rawChapterPrice": 10,
"batchBuyDiscountInfo": [{
"startCount": 20,
"endCount": 39,
"price": 90,
"startTime": 1693467295,
"endTime": 1693467295
},
{
"startCount": 40,
"endCount": 59,
"price": 80,
"startTime": 1693467295,
"endTime": 1693467295
}
],
"vipDiscountInfo": {
"price": 90,
"startTime": 1690790462,
"endTime": 1753948862
}
},
"userInfo": {
"openid": "1"
},
"msg": "成功"
}
# 批量获取章节列表(付费模式)
简要描述: 批量获取章节信息,单次上限 200 章,含购买校验,不含正文内容
请求方式:POST
请求地址:
https://cpapi-i.yuewen.com/chapter/getchapterinfobatch
请求参数:(查看通用请求参数)
请求参数 | 必须 | 类型 | 说明 |
---|---|---|---|
cbid | 是 | long | 书籍 ID |
openid | 否 | string | 用户 ID (查询合作方用户是否购买章节,必须传递 openid。) |
ccids | 是 | string | 章节 ID,多个以|分隔 |
返回字段:(查看通用返回字段)
接口字段 | 类型 | 说明 |
---|---|---|
ccid | string | 章节唯一 ID |
cbid | string | 书籍唯一 ID |
chapterName | string | 章节标题 |
updateTime | int | 章节更新时间戳(秒) |
prevCcid | string | 上一章章节 ID |
nextCcid | string | 下一章章节 ID |
chapterOrder | int | 章节序号(当有章节被屏蔽、调序时,该序号可能会变化) |
chargeType | int | 收费类型:1 按章购买,2 按本购买 |
wordsCount | int | 章节字数(即章节第一次发布时的字数,不随章节修改变化,阅文返回的章节价格根据此字段值计算。) |
vipStatus | int | 是否 VIP 章节,1 为 VIP 章节,0 为非 VIP 章节 |
freeStatus | int | vipStatus=1 且 freeStatus=1 是收费章节 vipStatus=1 且 freeStatus=0 是 VIP 中的免费章节 |
isTaked | int | 购买状态:1 已购买,0 未购买 |
chapterPrice | int | 章节价格(虚拟币) |
bookPrice | int | 整本书价格(虚拟币),按本购买时有效 |
rawChapterPrice | int | 章节原始价格 [未配置批量折扣或会员折扣时,不返回该字段] |
batchBuyDiscountInfo | struct | 章节批量购买折扣[未配置该折扣时,不返回该字段] (参考 batchBuyDiscountInfo 字段结构) |
vipDiscountInfo | struct | 会员折扣[未配置该折扣时,不返回该字段] (参考 vipDiscountInfo 字段结构) |
batchBuyDiscountInfo 字段结构
接口字段 | 类型 | 说明 |
---|---|---|
startCount | int | 批量折扣区间开始章节数 |
endCount | int | 批量折扣区间结束章节数 |
price | int | 折扣比例,如:80 表示 8 折 |
startTime | int | 折扣开始时间戳(秒) |
vipDiscountInfo 字段结构
接口字段 | 类型 | 说明 |
---|---|---|
price | int | 折扣比例,如:80 表示 8 折 |
startTime | int | 折扣开始时间戳(秒) |
endTime | int | 折扣结束时间戳(秒) |
请求示例:
https://cpapi-i.yuewen.com/chapter/getchapterinfobatch
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 'ccids=20000|20001' \
--data-urlencode 'openid=user1' \
返回示例:
{
"code": 0,
"data": [{
"ccid": "295695656xxxxxx12",
"cbid": "10953601xxxxxx3",
"chapterName": "测恢1",
"updateTime": 1530196816,
"prevCcid": "2956955xxxxxxx98",
"nextCcid": "295695xxxxxx488",
"chapterOrder": 3000,
"chargeType": 1,
"wordsCount": 1896,
"freeStatus": 0,
"vipStatus": 0,
"isTaked": 1,
"chapterPrice": 0,
"bookPrice": 0,
"rawChapterPrice": 10,
"batchBuyDiscountInfo": [{
"startCount": 20,
"endCount": 39,
"price": 90,
"startTime": 1693467295823,
"endTime": 1693467295823
},
{
"startCount": 40,
"endCount": 59,
"price": 80,
"startTime": 1693467295,
"endTime": 1693467295
}
],
"vipDiscountInfo": {
"price": 90,
"startTime": 1690790462,
"endTime": 1753948862
}
},
{
"ccid": "2956954xxxxxxx071",
"cbid": "109536018xxxxxxx3",
"chapterName": "慧廉6",
"updateTime": 1530196738,
"prevCcid": "0",
"nextCcid": "295695516xxxxxxx6",
"chapterOrder": 0,
"chargeType": 1,
"wordsCount": 1856,
"freeStatus": 0,
"vipStatus": 0,
"isTaked": 1,
"chapterPrice": 0,
"bookPrice": 0,
"rawChapterPrice": 10,
"batchBuyDiscountInfo": [{
"startCount": 20,
"endCount": 39,
"price": 90,
"startTime": 1693467295823,
"endTime": 1693467295823
},
{
"startCount": 40,
"endCount": 59,
"price": 80,
"startTime": 1693467295,
"endTime": 1693467295
}
],
"vipDiscountInfo": {
"price": 90,
"startTime": 1690790462,
"endTime": 1753948862
}
],
},
"msg": "成功"
}
# 购买书籍或章节(付费模式)
简要描述: 用户购买书籍或章节,同时使用有价币和免费币,需要将订单回传给阅文。如果合作模式没有免费币(找商务确认),请传递 0。
注意:单用户多章购买时,请批量传入 ccids,不要并发请求多次。因为接口加锁在 cbid+openid 上,如果同一个用户、对一本书并发购买,可能导致某些请求失败。 批量单次请求失败,则批量章节都未购买成功。
请求方式:POST
请求地址:
https://cpapi-i.yuewen.com/booktake/authenfree
请求参数:(查看通用请求参数)
请求参数 | 必须 | 类型 | 说明 |
---|---|---|---|
cbid | 是 | string | 书籍 id |
type | 是 | int | 购买类型:1 按章购买,2 按本购买 |
ccids | 否 | string | 按章购买时,购买的章节 id 列表,格式为:章节 id:章节价格(虚拟币),多章以英文逗号分隔。例如:1111:5,222:5,3333:5 |
openid | 是 | string | 用户 id |
paymoney | 是 | int | 消费的有价币金额(有价币) |
paymoneyfree | 是 | int | 消费的免费币金额(免费币) |
paytime | 是 | int | 消费时间戳(秒) |
orderid | 是 | string | 消费唯一订单号 |
返回字段:(查看通用返回字段)
请求示例:
● 使用场景 1,书籍信息字段 chargetype=1 按章购买:
用户 user1 按章批量购买了 cbid=10000 的两个章节,ccid 为 20000、20001,两章价格分别为 10、15 虚拟币(取自章节信息 chapterPrice 字段),用户使用了 20 有价币+5 免费币,则请求示例如下:
https://cpapi-i.yuewen.com/booktake/authenfree
--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=20' \
--data-urlencode 'paymoneyfree=5' \
--data-urlencode 'paytime=1700000000' \
--data-urlencode 'orderid=order1'
● 使用场景 2,书籍信息字段 chargetype=2 整本购买:
用户 user1 整本购买了书籍 cbid=10000,整本价格 1000 虚拟币(取自书籍信息 totalPrice 字段),用户使用了 800 有价币+200 免费币,则请求示例如下:
https://cpapi-i.yuewen.com/booktake/authenfree
--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=800' \
--data-urlencode 'paymoneyfree=200' \
--data-urlencode 'paytime=1700000000' \
--data-urlencode 'orderid=order1'
返回示例:
{
"code":0,
"msg":"成功"
}
# 获取指定时间内下架书籍
简要描述: 获取指定时间段内下架书籍,推荐定期请求每 10 分钟 1 次,建议起止时间间隔不超过 2 小时,多次调用起止时间边界最好存在一定重合。(参考书籍更新/上架/下架规则)
请求方式:GET
请求地址:
https://cpapi-i.yuewen.com/book/getunshelfbooklist
请求参数:(查看通用请求参数)
请求参数 | 必须 | 类型 | 说明 |
---|---|---|---|
starttime | 是 | int | 起始时间(uninx 时间戳),单位秒 |
endtime | 否 | int | 截止时间(uninx 时间戳),单位秒,不传默认当前时间 |
返回字段:(查看通用返回字段)
接口字段 | 类型 | 说明 |
---|---|---|
cbids | string[] | 已下架的作品 ID 列表 |
totalCount | int | 下架总数 |
请求示例:
https://cpapi-i.yuewen.com/book/getunshelfbooklist?appflag=test×tamp=1700000000&starttime=170000000&endtime=1700003600&sign=XXXXX'
返回示例:
{
"code": 0,
"data": {
"cbids": [
"21945341000109102",
"22153207000285602"
],
"totalCount": 2
},
"msg": "成功"
}
# 获取指定时间内更新与上架的书籍
简要描述: 获取指定时间段内更新的书籍(新增授权、信息变更、章节变更的书籍),建议每 10 分钟 1 次请求、起止时间间隔不超过 2 小时,多次调用起止时间边界最好存在一定重合。(参考书籍更新/上架/下架规则)
请求方式:GET
请求地址:
https://cpapi-i.yuewen.com/book/getupdatebooklist
请求参数:(查看通用请求参数)
请求参数 | 必须 | 类型 | 说明 |
---|---|---|---|
starttime | 是 | int | 起始时间(uninx 时间戳),单位秒 |
endtime | 否 | int | 截止时间(uninx 时间戳),单位秒,不传默认当前时间 |
返回字段:(查看通用返回字段)
接口字段 | 类型 | 说明 |
---|---|---|
cbids | string[] | 已更新的作品 ID 列表 |
totalCount | int | 更新总数 |
请求示例:
https://cpapi-i.yuewen.com/book/getupdatebooklist?appflag=test×tamp=1700000000&starttime=170000000&endtime=1700003600&sign=XXXXX
返回示例:
{
"code": 0,
"data": {
"cbids": [
"21945341000109102",
"22153207000285602"
],
"totalCount": 2
},
"msg": "成功"
}
# 获取 epub 书籍文件下载地址
简要描述: 获取作品的 epub 下载地址,含购买校验,仅对支持 epub 格式的书籍有效。(参考 epub 书规则)
epub 书籍含付费内容,未购买时(fileType=1)提供试读,合作方用户购买后(fileType=0)提供完整版链接。
请求方式:GET 请求地址:
https://cpapi-i.yuewen.com/book/getepuburl
请求参数:(查看通用请求参数)
请求参数 | 必须 | 类型 | 说明 |
---|---|---|---|
cbid | 是 | long | 书籍 id |
openid | 否 | string | 合作方用户 ID (合作方用户阅读已购买付费内容,必须传递 openid) |
返回字段:(查看通用返回字段)
接口字段 | 类型 | 说明 |
---|---|---|
fileType | int | 文件类型:0 完整版;1 预览版 |
url | string | 下载地址 |
请求示例:
https://cpapi-i.yuewen.com/book/getepuburl?appflag=test×tamp=1700000000&cbid=10000&openid=user1&sign=XXXXX
返回示例:
{
"code":0,
"data":{
"fileType": 0,//文件类型:0 完整版(需要购买) ;1 预览版
"url": "xxxxxx"
},
"msg":"成功"
}
# 获取所有分类列表
简要描述: 获取所有分类列表,推荐定时请求每日 1 次
请求方式:GET
请求地址:
https://cpapi-i.yuewen.com/category/allcategory
请求参数:(查看通用请求参数)
返回字段:(查看通用返回字段)
接口字段 | 类型 | 说明 |
---|---|---|
freeType | int | 一级分类 id |
freeTypeName | string | 一级分类名称 |
subSort | struct | 二级分类信息 |
subSort 字段
接口字段 | 类型 | 说明 |
---|---|---|
categoryId | int | 二级分类 id |
categoryName | string | 二级分类名称 |
secSort | struct | 三级分类信息 |
secSort 字段
接口字段 | 类型 | 说明 |
---|---|---|
secCategoryId | int | 三级分类 id |
secCategoryName | string | 三级分类名称 |
请求示例:
https://cpapi-i.yuewen.com/category/allcategory?appflag=test×tamp=1700000000&sign=XXXXX
返回示例:
{
"code": 0,
"data": {
"1": {
"freeType": 1,
"freetypeName": "男生",
"subSort": {
"20001": {
"categoryId": 20001,
"categoryName": "玄幻",
"secSort": {
"20002": {
"secCategoryId": 20002,
"secCategoryName": "东方玄幻"
},
"20003": {
"secCategoryId": 20003,
"secCategoryName": "异世大陆"
}
}
}
}
}
},
"msg": "成功"
}
# 获取智能标签信息
简要描述: 获取智能标签信息
请求方式:GET
请求地址:
https://cpapi-i.yuewen.com/book/tagDetailInfoByTagId
请求参数:(查看通用请求参数)
请求参数 | 必须 | 类型 | 说明 |
---|---|---|---|
tagId | 是 | int | 标签 id |
返回字段:(查看通用返回字段)
接口字段 | 类型 | 说明 |
---|---|---|
tagId | int | 标签 id |
tagShortName | string | 标签名 |
tagName | string | 标签全名 |
tagDescription | string | 标签描述 |
gender | int | 性别:1 男,2 女 |
cate | string | 二级分类;流派、人物、风格、情节 |
请求示例:
https://cpapi-i.yuewen.com/book/tagDetailInfoByTagId?appflag=test×tamp=1700000000&tagId=51000030&sign=XXXXX
返回示例:
{
"code": 0,
"data": {
"tagId": 51000030,
"tagShortName": "网文经典",
"tagName": "网文经典",
"tagDescription": "指兼具类型特色与作品成绩的网文优秀代表作品。",
"gender": 1,
"cate": "流派"
},
"msg": "成功"
}