🚀调整项目结构

This commit is contained in:
SocialSisterYi
2023-02-22 01:00:06 +08:00
parent b85e835ce7
commit 7d89ece2ac
201 changed files with 84964 additions and 0 deletions

331
docs/electric/Bcoin.md Normal file
View File

@@ -0,0 +1,331 @@
# B币方式充电
<img src="../../assets/img/battery-100.png" width="100" height="100"/>
**注以前充电是电池的概念1B币折合10电池一般地充电10电池可获得1经验**
**目前2020/12/02后则是贝壳的概念1B币折合1贝壳、1经验如果存在小数点则经验值向下取整即2.5B币获得2经验**
---
- [B币方式充电](#b币方式充电)
- [新版本B币充电](#新版本b币充电)
- [老版本B币充电](#老版本b币充电)
---
## 新版本B币充电
> https://api.bilibili.com/x/ugcpay/web/v2/trade/elec/pay/quick
*请求方式POST*
认证方式CookieSESSDATA
**正文参数( application/x-www-form-urlencoded **
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| -------- | ---- | ------------------------ | ------ | ------------------------------------------------- |
| bp_num | num | 贝壳数量 | 必要 | 必须在2-9999之间 |
| is_bp_remains_prior | bool | 是否优先扣除B币余额 | 必要 | [true,false]B币充电请选择true |
| up_mid | num | 充电对象用户mid | 必要 | |
| otype | str | 充电来源 | 必要 | up空间充电<br />archive视频充电 |
| oid | num | 充电来源代码 | 必要 | 空间充电充电对象用户mid<br />视频充电稿件avid |
| csrf | str | CSRF Token位于cookie | 必要 | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
| code | num | 返回值 | 0成功并不代表充电成功 <br />-101账号未登录<br />-111csrf校验失败<br />-400请求错误 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
| data | obj | 信息本体 | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| -------- | ---- | ----------- | ------------------------------------------------ |
| mid | num | 本用户mid | |
| up_mid | num | 目标用户mid | |
| order_no | str | 留言token | 用于添加充电留言 |
| bp_num | str | 充电贝壳数 | |
| exp | num | 获得经验数 | |
| status | num | 返回结果 | 4成功<br />-2低于20电池下限<br />-4B币不足 |
| msg | str | 错误信息 | 默认为空 |
**示例:**
以空间的方式向用户`mid=293793435`充了2贝壳得到2经验留言token为`BPRG5CEC3VUPOOANA540`
此时`data`.`status`=`4`
~~自己给自己冲QAQ~~
```shell
curl 'https://api.bilibili.com/x/ugcpay/web/v2/trade/elec/pay/quick' \
--data-urlencode 'bp_num=2' \
--data-urlencode 'is_bp_remains_prior=true' \
--data-urlencode 'up_mid=293793435' \
--data-urlencode 'otype=up' \
--data-urlencode 'oid=293793435' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code":0,
"message":"0",
"ttl":1,
"data":{
"mid":293793435,
"up_mid":293793435,
"order_no":"BPRG5CEC3VUPOOANA540",
"bp_num":2,
"exp":"2",
"status":4,
"msg":""
}
}
```
</details>
当所充电贝壳数小于2时充电不会成功
此时`data`.`status`=`-2`
```shell
curl 'https://api.bilibili.com/x/ugcpay/web/v2/trade/elec/pay/quick' \
--data-urlencode 'bp_num=1' \
--data-urlencode 'is_bp_remains_prior=true' \
--data-urlencode 'otype=up' \
--data-urlencode 'oid=293793435' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code":0,
"message":"0",
"ttl":1,
"data":{
"mid":0,
"up_mid":0,
"order_no":"",
"bp_num":"0",
"exp":0,
"status":-2,
"msg":"elec raw order create failed: 88201"
}
}
```
</details>
当所充贝壳数折合的B币数不足时充电也不会成功
此时`data`.`status`=`-4`
```shell
curl 'https://api.bilibili.com/x/ugcpay/web/v2/trade/elec/pay/quick' \
--data-urlencode 'bp_num=99' \
--data-urlencode 'is_bp_remains_prior=true' \
--data-urlencode 'up_mid=293793435' \
--data-urlencode 'otype=up' \
--data-urlencode 'oid=293793435' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code":0,
"message":"0",
"ttl":1,
"data":{
"mid":0,
"up_mid":0,
"order_no":"",
"bp_num":"0",
"exp":0,
"status":-4,
"msg":"bp.to.battery http failed, invalid args, errNo=800409904: B 币余额不足"
}
}
```
</details>
## 老版本B币充电
老版本目前已过期调用接口成功后code返回0data.status会返回0且B币不会消耗贝壳也不会增加。以下是历史信息
<details>
<summary>查看折叠内容</summary>
> https://api.bilibili.com/x/ugcpay/trade/elec/pay/quick
*请求方式POST*
认证方式CookieSESSDATA
**正文参数( application/x-www-form-urlencoded **
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| -------- | ---- | ------------------------ | ------ | ------------------------------------------------- |
| elec_num | num | 充电电池数量 | 必要 | 必须在2-9999之间 |
| up_mid | num | 充电对象用户mid | 必要 | |
| otype | str | 充电来源 | 必要 | up空间充电<br />archive视频充电 |
| oid | num | 充电来源代码 | 必要 | 空间充电充电对象用户mid<br />视频充电稿件avid |
| csrf | str | CSRF Token位于cookie | 必要 | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
| code | num | 返回值 | 0成功并不代表充电成功 <br />-101账号未登录<br />-111csrf校验失败<br />-400请求错误 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
| data | obj | 信息本体 | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| -------- | ---- | ----------- | ------------------------------------------------ |
| mid | num | 本用户mid | |
| up_mid | num | 目标用户mid | |
| order_no | str | 留言token | 用于添加充电留言 |
| elec_num | num | 充电电池数 | |
| exp | num | 获得经验数 | |
| status | num | 返回结果 | 4成功<br />-2低于20电池下限<br />-4B币不足 |
| msg | str | 错误信息 | 默认为空 |
**示例:**
以空间的方式向用户`mid=293793435`充了20电池得到2经验留言token为`BPRG5CEC3VUPOOANA540`
此时`data`.`status`=`4`
~~再次自己冲自己QAQ~~
```shell
curl 'https://api.bilibili.com/x/ugcpay/trade/elec/pay/quick' \
--data-urlencode 'elec_num=20' \
--data-urlencode 'up_mid=293793435' \
--data-urlencode 'otype=up' \
--data-urlencode 'oid=293793435' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code":0,
"message":"0",
"ttl":1,
"data":{
"mid":293793435,
"up_mid":293793435,
"order_no":"BPRG5CEC3VUPOOANA540",
"elec_num":20,
"exp":2,
"status":4,
"msg":""
}
}
```
</details>
当所充电池数小于2时充电不会成功
此时`data`.`status`=`-2`
```shell
curl 'https://api.bilibili.com/x/ugcpay/trade/elec/pay/quick' \
--data-urlencode 'elec_num=1' \
--data-urlencode 'up_mid=293793435' \
--data-urlencode 'otype=up' \
--data-urlencode 'oid=293793435' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code":0,
"message":"0",
"ttl":1,
"data":{
"mid":0,
"up_mid":0,
"order_no":"",
"elec_num":0,
"exp":0,
"status":-2,
"msg":"elec raw order create failed: 88201"
}
}
```
</details>
当所充电池数折合的B币数不足时充电也不会成功
此时`data`.`status`=`-4`
```shell
curl 'https://api.bilibili.com/x/ugcpay/trade/elec/pay/quick' \
--data-urlencode 'elec_num=999' \
--data-urlencode 'up_mid=293793435' \
--data-urlencode 'otype=up' \
--data-urlencode 'oid=293793435' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code":0,
"message":"0",
"ttl":1,
"data":{
"mid":0,
"up_mid":0,
"order_no":"",
"elec_num":0,
"exp":0,
"status":-4,
"msg":"bp.to.battery http failed, invalid args, errNo=800409904: B 币余额不足"
}
}
```
</details>
</details>

View File

@@ -0,0 +1,207 @@
# 微信&支付宝方式充电
<img src="../../assets/img/battery-100.png" width="100" height="100"/>
- [申请充电二维码及扫码秘钥](#申请充电二维码及扫码秘钥)
- [检查扫码支付结果](#检查扫码支付结果)
---
操作流程:
1.申请充电二维码及扫码秘钥,秘钥临时保存备用
2.使用`qr_code_url`中的值生成二维码
3.用支付宝或微信扫描
4.以扫码秘钥作为参数轮询检查扫码支付结果
## 申请充电二维码及扫码秘钥
> https://api.bilibili.com/x/ugcpay/web/v2/trade/elec/pay/qr_code/create
*请求方式POST*
认证方式CookieSESSDATA
秘钥有效时间为10分钟
**正文参数( application/x-www-form-urlencoded **
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------------------- | ---- | ------------------------ | ------ | ------------------------------------------------------------ |
| bp_num | num | 充电B币数量 | 必要 | 必须在2-9999之间 |
| up_mid | num | 充电对象用户mid | 必要 | |
| is_bp_remains_prior | bool | 是否优先扣除B币 | 必要 | true是<br />false否<br />在B币不足时剩余的部分利用支付平台支付 |
| otype | str | 充电来源 | 必要 | up空间充电<br />archive视频充电 |
| oid | num | 充电来源代码 | 必要 | 空间充电充电对象用户mid<br />视频充电稿件avid |
| csrf | str | CSRF Token位于cookie | 必要 | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
| code | num | 返回值 | 0成功<br />-101账号未登录<br />-111csrf校验失败<br />-400请求错误<br />-500服务器错误 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
| data | obj | 信息本体 | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| ----------- | ---- | ------------------ | -------- |
| qr_code_url | str | 支付二维码生成内容 | 存在转义 |
| qr_token | str | 扫码秘钥 | |
| exp | num | 获得经验数 | |
**示例:**
申请空间的方式向用户23215368充电10电池且不使用B币的支付二维码
```shell
curl 'https://api.bilibili.com/x/ugcpay/trade/elec/pay/qr_code/create' \
--data-urlencode 'elec_num=10' \
--data-urlencode 'up_mid=23215368' \
--data-urlencode 'is_bp_remains_prior=false' \
--data-urlencode 'otype=up' \
--data-urlencode 'oid=23215368' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"qr_code_url": "http://api.bilibili.com/x/ugcpay/trade/elec/pay/qr_code/gateway?mid=293793435&token=c1cb1d95d2194ba58df6bb0f24ae1aaa",
"qr_token": "c1cb1d95d2194ba58df6bb0f24ae1aaa",
"exp": 1
}
}
```
</details>
## 检查扫码支付结果
> https://api.bilibili.com/x/ugcpay/trade/elec/pay/order/status
*请求方式GET*
认证方式CookieSESSDATA
**url参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| -------- | ---- | -------- | ------ | ---- |
| qr_token | str | 扫码秘钥 | 必要 | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ----------------------------- |
| code | num | 返回值 | 0成功<br />-101账号未登录 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
| data | obj | 信息本体 | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| -------- | ---- | ----------- | ------------------------------------------------------------ |
| qr_token | str | 扫码秘钥 | |
| order_no | str | 留言token | 未成功则无此项<br />用于添加充电留言 |
| mid | num | 当前用户mid | |
| status | num | 状态值 | 若秘钥错误则无此项<br />1已支付<br />2未扫描<br />3未确认 |
**示例:**
当申请到的支付二维码未被扫描时,`data`.`ststus`的值为`2`
```shell
curl -G 'https://api.bilibili.com/x/ugcpay/trade/elec/pay/order/status' \
--data-urlencode 'qr_token=c7cbdc47fc424cd18f2146db653597b8' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code":0,
"message":"0",
"ttl":1,
"data":{
"qr_token":"c7cbdc47fc424cd18f2146db653597b8",
"mid":293793435,
"status":2
}
}
```
</details>
当申请到的支付二维码已扫描但未确认时,`data`.`ststus`的值为`3`
```shell
curl -G 'https://api.bilibili.com/x/ugcpay/trade/elec/pay/order/status' \
--data-urlencode 'qr_token=c7cbdc47fc424cd18f2146db653597b8' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code":0,
"message":"0",
"ttl":1,
"data":{
"qr_token":"c7cbdc47fc424cd18f2146db653597b8",
"mid":293793435,
"status":3
}
}
```
</details>
成功支付后,`data`.`ststus`的值为`1`,且`data`.`order_no`存在留言token
```shell
curl -G 'https://api.bilibili.com/x/ugcpay/trade/elec/pay/order/status' \
--data-urlencode 'qr_token=c7cbdc47fc424cd18f2146db653597b8' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code":0,
"message":"0",
"ttl":1,
"data":{
"qr_token":"bd649c836c524550bfe22a369334fc05",
"order_no":"BPTD36U3KP82I31RSSLG",
"mid":293793435,
"status":1
}
}
```
</details>

View File

@@ -0,0 +1,530 @@
# 充电列表
- [获取空间充电公示列表](#获取空间充电公示列表)
- [获取视频充电鸣谢名单](#获取视频充电鸣谢名单)
- [查询我收到的充电列表](#查询我收到的充电列表)
- [查询历史充电数据](#查询历史充电数据)
---
## 获取空间充电公示列表
> https://elec.bilibili.com/api/query.rank.do
*请求方式:GET*
**url参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ---- | ----------- | ------ | ---- |
| mid | num | 目标用户mid | 必要 | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | -------- | ----------------------------- |
| code | num | 返回值 | 0成功 <br />500011mid错误 |
| msg | str | 错误信息 | 正确时无此项 |
| data | obj | 数据本体 | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| ----------- | ------ | ---------------- | ------------ |
| display_num | num | 0 | 作用尚不明确 |
| count | num | 本月充电人数 | |
| total_count | num | 总计充电人数 | |
| list | array | 本月充电用户列表 | |
| user | null | | 作用尚不明确 |
`data`中的`list`数组:
| 项 | 类型 | 内容 | 备注 |
| ---- | ---- | ------------- | ---------------- |
| 0 | obj | 充电用户1 | |
| n | obj | 充电用户(n+1) | 按照充电排名排列 |
| …… | obj | …… | …… |
| 29 | obj | 充电用户30 | 最后一项 |
`data`中的`list`数组中的对象:
| 字段 | 类型 | 内容 | 备注 |
| ----------- | ---- | ---------------- | ---------------- |
| mid | num | 充电对象mid | |
| pay_mid | num | 充电用户mid | |
| rank | num | 充电用户排名 | 取决于充电的多少 |
| uname | str | 充电用户昵称 | |
| avatar | str | 充电用户头像url | |
| message | str | 充电留言 | 无为空 |
| msg_deleted | num | 0 | 作用尚不明确 |
| vip_info | obj | 充电用户会员信息 | |
| trend_type | num | 0 | 作用尚不明确 |
`data`中的`list`数组中的对象中的`vip_info`对象:
| 字段 | 类型 | 内容 | 备注 |
| ---------- | ---- | ---------- | ----------------------------------- |
| vipType | num | 大会员类型 | 0无<br />1月会员<br />2年会员 |
| vipDueMsec | num | 0 | 作用尚不明确 |
| vipStatus | num | 大会员状态 | 0无<br />1有 |
**示例:**
查询用户`mid=53456`的充电公示列表
```shell
curl -G 'https://elec.bilibili.com/api/query.rank.do' \
--data-urlencode 'mid=53456'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"data": {
"display_num": 0,
"count": 226,
"total_count": 11528,
"list": [
{
"mid": 53456,
"pay_mid": 346545025,
"rank": 1,
"uname": "还有什么名字没人用",
"avatar": "http://i1.hdslb.com/bfs/face/76d4b1ecd13e992a6c7303d77bf716dd922ab234.jpg",
"message": "早日康复,五月快乐",
"msg_deleted": 0,
"vip_info": {
"vipType": 2,
"vipDueMsec": 0,
"vipStatus": 1
},
"trend_type": 0
},
{
"mid": 53456,
"pay_mid": 8826056,
"rank": 2,
"uname": "煋痕",
"avatar": "http://i2.hdslb.com/bfs/face/35b7c752d0eb1bb7a924804f240b9bfd9199625f.jpg",
"message": "",
"msg_deleted": 0,
"vip_info": {
"vipType": 2,
"vipDueMsec": 0,
"vipStatus": 1
},
"trend_type": 0
},
{
"mid": 53456,
"pay_mid": 356668487,
"rank": 3,
"uname": "舞象祥",
"avatar": "http://i1.hdslb.com/bfs/face/574f6203ef5bd0d56b95ded6a2736676d9cc5307.jpg",
"message": "warma hayo",
"msg_deleted": 0,
"vip_info": {
"vipType": 1,
"vipDueMsec": 0,
"vipStatus": 1
},
"trend_type": 0
},
],
"user": null
}
}
```
</details>
## 获取视频充电鸣谢名单
> https://api.bilibili.com/x/web-interface/elec/show
*请求方式:GET*
**url参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ---- | ------------ | ------------ | ------------------ |
| mid | num | 目标用户mid | 必要 | |
| aid | num | 目标稿件avid | 必要(可选) | avid与bvid任选一个 |
| bvid | str | 目标稿件bvid | 必要(可选) | avid与bvid任选一个 |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
| code | num | 返回值 | 0成功<br />-400请求错误<br />-404无视频<br />62001不需要展示充电信息 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
| data | obj | 信息本体 | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| ----------- | ------ | ---------------- | ------------ |
| show_info | obj | 展示选项 | |
| av_count | num | 目标视频充电人数 | |
| count | num | 本月充电人数 | |
| total_count | num | 总计充电人数 | |
| special_day | num | 0 | 作用尚不明确 |
| display_num | num | 0 | 作用尚不明确 |
| list | array | 本月充电用户列表 | |
`data`中的`show_info`对象:
| 字段 | 类型 | 内容 | 备注 |
| ----- | ---- | ------------------------ | ----------------------------- |
| show | bool | 是否展示视频充电鸣谢名单 | false不展示<br />true展示 |
| state | num | 0 | |
`data`中的`list`数组:
| 项 | 类型 | 内容 | 备注 |
| ---- | ---- | ------------- | ---------------- |
| 0 | obj | 充电用户1 | |
| n | obj | 充电用户(n+1) | 按照充电排名排列 |
| …… | obj | …… | …… |
| 29 | obj | 充电用户30 | 最后一项 |
`data`中的`list`数组中的对象:
| 字段 | 类型 | 内容 | 备注 |
| ----------- | ---- | ---------------- | ---------------- |
| mid | num | 充电对象mid | |
| pay_mid | num | 充电用户mid | |
| rank | num | 充电用户排名 | 取决于充电的多少 |
| uname | str | 充电用户昵称 | |
| avatar | str | 充电用户头像url | |
| message | str | 充电留言 | 无为空 |
| msg_deleted | num | 0 | 作用尚不明确 |
| vip_info | obj | 充电用户会员信息 | |
| trend_type | num | 0 | 作用尚不明确 |
`data`中的`list`数组中的`vip_info`对象:
| 字段 | 类型 | 内容 | 备注 |
| ---------- | ---- | ---------- | ----------------------------------- |
| vipType | num | 大会员类型 | 0无<br />1月会员<br />2年会员 |
| vipDueMsec | num | 0 | 作用尚不明确 |
| vipStatus | num | 大会员状态 | 0无<br />1有 |
**示例:**
获取视频`av967773538`/` BV1up4y1y77i `,用户`mid=53456`的视频充电鸣谢名单
avid方式
```shell
curl -G 'https://api.bilibili.com/x/web-interface/elec/show' \
--data-urlencode 'mid=53456' \
--data-urlencode 'aid=967773538'
```
bvid方式
```shell
curl -G 'https://api.bilibili.com/x/web-interface/elec/show' \
--data-urlencode 'mid=53456' \
--data-urlencode 'bvid=BV1up4y1y77i '
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"show_info": {
"show": true,
"state": 0
},
"av_count": 0,
"count": 0,
"total_count": 19422,
"special_day": 0,
"display_num": 0,
"list": [
{
"mid": 53456,
"pay_mid": 1216085164,
"rank": 1,
"uname": "JZ72",
"avatar": "http://i1.hdslb.com/bfs/face/3d741682fafc286999b5e8089a844ae4f46651fe.jpg",
"message": "Warma YYDS ",
"msg_deleted": 0,
"vip_info": {
"vipType": 2,
"vipDueMsec": 0,
"vipStatus": 1
},
"trend_type": 0
},
{
"mid": 53456,
"pay_mid": 305858373,
"rank": 2,
"uname": "适应性神经系统",
"avatar": "http://i0.hdslb.com/bfs/face/2ad38dec879f66c32b5e5cb1750cb3f3e446bf91.jpg",
"message": "",
"msg_deleted": 0,
"vip_info": {
"vipType": 1,
"vipDueMsec": 0,
"vipStatus": 0
},
"trend_type": 0
},
......
]
}
}
```
</details>
## 查询我收到的充电列表
> https://pay.bilibili.com/bk/brokerage/listForCustomerRechargeRecord
*请求方式GET*
认证方式CookieSESSDATA
**url参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| -------- | ---- | -------- | ------ | -------------------------------- |
| currentPage | num | 页数 | 必要 | |
| pageSize | num | 分页大小 | 必要 | 取值范围[1,50] |
| customerId | num | (?) | 必要 | 目前为固定值10026 |
| beginTime | str | 开始日期 | | yyyy-MM-dd |
| endTime | str | 结束日期 | | yyyy-MM-dd |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | --------------------------- |
| code | num | 返回值 | 0成功<br />800501007user not login<br />800501008内部错误<br /> 800501011请求参数有误|
| errno | num | | |
| msg | str | | |
| showMsg | str | | |
| success | bool | | |
| data | obj | 信息本体 | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| -------- | ----- | ------ | ---- |
| page | obj | 分页信息 | |
| result | array | 充电信息本体 | |
| config | array | (?) | |
`page`对象:
| 字段 | 类型 | 内容 | 备注 |
| -------- | ----- | ------ | ---- |
| currentPage | num | 当前页数 | |
| pageSize | num | 当前分页大小 | |
| totalCount | num | 记录总数 | |
| totalPage | num | 总页数 | |
`config`数组中的对象:
| 字段 | 类型 | 内容 | 备注 |
| -------- | ----- | ------ | ---- |
| mid | num | | 总是为null |
| name | str | | 总是为null |
| avatar | str | | 总是为null |
| originalThirdCoin | num | | 总是为null |
| brokerage | num | | 总是为null |
| remark | str | | 总是为null |
| ctime | str | | 总是为null |
`result`数组中的对象:
| 字段 | 类型 | 内容 | 备注 |
| -------- | ----- | ------ | ---- |
| mid | num | 充电人mid | |
| name | str | 充电人昵称 | |
| avatar | str | 充电人头像 | |
| originalThirdCoin | num | 原始B币数 | |
| brokerage | num | 实际收到的贝壳数 | |
| remark | str | 充电渠道 | Web/安卓/iOS |
| ctime | str | 充电时间 | yyyy-MM-dd HH:mm:ss |
**示例:**
```shell
curl -L -X GET 'https://pay.bilibili.com/bk/brokerage/listForCustomerRechargeRecord?currentPage=1&pageSize=2&customerId=10026' \
-H 'Cookie: SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"errno": 0,
"msg": "SUCCESS",
"showMsg": "交易成功",
"data": {
"page": {
"currentPage": 1,
"pageSize": 2,
"totalCount": 311,
"totalPage": 156
},
"result": [
{
"mid": 2233,
"name": "2233",
"avatar": "http://i2.hdslb.com/bfs/face/f42b7f47c80648d2ee1231f2435b527c60302289.jpg",
"originalThirdCoin": 2,
"brokerage": 1.34,
"remark": "Web",
"ctime": "2022-04-12 17:34:47"
},
{
"mid": 2233,
"name": "2233",
"avatar": "http://i0.hdslb.com/bfs/face/member/noface.jpg",
"originalThirdCoin": 2,
"brokerage": 0.68,
"remark": "iOS",
"ctime": "2022-04-10 03:41:10"
}
],
"config": [
{
"mid": null,
"name": null,
"avatar": null,
"originalThirdCoin": null,
"brokerage": null,
"remark": null,
"ctime": null
}
]
},
"success": true
}
```
</details>
## 查询历史充电数据
> https://member.bilibili.com/x/h5/elec/rank/recent
*请求方式GET*
认证方式CookieSESSDATA
**url参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| -------- | ---- | -------- | ------ | -------------------------------- |
| pn | num | 页数 | 必要 | |
| ps | num | 分页大小 | 必要 | 取值范围[1,20] |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------- |
| code | num | 返回值 | 0成功 |
| message | str | 错误信息 | |
| ttl | num | 1 | |
| data | obj | 信息本体 | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| ----- | ----- | ------------ | ---- |
| list | array | 充电信息本体 | |
| pager | obj | 分页信息 | |
`list`数组中的对象:
| 字段 | 类型 | 内容 | 备注 |
| -------- | ---- | ---------- | ------------------- |
| aid | num | 0 | |
| bvid | str | 空 | |
| elec_num | num | 充电电池数 | |
| title | str | 空 | |
| uname | str | 空 | |
| avatar | str | 空 | |
| ctime | str | 充电时间 | yyyy-MM-dd HH:mm:ss |
`pager`对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | ------------ | ---- |
| current | num | 当前页数 | |
| size | num | 当前分页大小 | |
| total | num | 记录总数 | |
**示例:**
```shell
curl -L -X GET 'https://member.bilibili.com/x/h5/elec/rank/recent' \
-H 'Cookie: SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"list": [
{
"aid": 0,
"bvid": "",
"elec_num": 50,
"title": "",
"uname": "",
"avatar": "",
"ctime": "2020-04-02 03:12:22"
},
{
"aid": 0,
"bvid": "",
"elec_num": 20,
"title": "",
"uname": "",
"avatar": "",
"ctime": "2020-04-02 03:12:00"
}
],
"pager": {
"current": 1,
"size": 20,
"total": 38
}
}
}
```
</details>

303
docs/electric/charge_msg.md Normal file
View File

@@ -0,0 +1,303 @@
# 充电留言
- [发送充电留言](#发送充电留言)
- [查询我收到的充电留言](#查询我收到的充电留言)
- [查询充电留言详情](#查询充电留言详情)
- [回复充电留言](#回复充电留言)
---
## 发送充电留言
> https://api.bilibili.com/x/ugcpay/trade/elec/message
*请求方式POST*
认证方式CookieSESSDATA
**正文参数( application/x-www-form-urlencoded **
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| -------- | ---- | ------------------------ | ------ | ---- |
| order_id | str | 留言token | 必要 | |
| message | str | 留言内容 | 必要 | |
| csrf | str | CSRF Token位于cookie | 必要 | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
| code | num | 返回值 | 0成功 <br />-101账号未登录<br />-111csrf校验失败<br />-400请求错误<br />88203不能重复留言 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | |
**示例:**
为留言token为`BPRG5CEC3VUPOOANA540`的充电操作,添加了内容为`支持一下大佬`的留言
```shell
curl 'https://api.bilibili.com/x/ugcpay/trade/elec/message' \
--data-urlencode 'order_id=BPRG5CEC3VUPOOANA540' \
--data-urlencode 'message=支持一下大佬' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code":0,
"message":"0",
"ttl":1
}
```
</details>
## 查询我收到的充电留言
> https://member.bilibili.com/x/web/elec/remark/list
*请求方式:GET*
认证方式CookieSESSDATA
**url参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------ | ---- | ------------ | ------------ | ------------------ |
| begin | str | 起始日期 | | 默认2016-01-01 |
| end | str | 结束日期 | | 默认2050-01-01 |
| pn | str | 页数 | | |
| ps | str | 分页大小 | | 取值范围[1,12] |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | --------------------------- |
| code | num | 返回值 | 0成功<br />-101账号未登录|
| msg | str | 0 | |
| ttl | num | 1 | |
| data | obj | 信息本体 | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| -------- | ----- | ------ | ---- |
| page | obj | 分页信息 | |
| list | array | 信息本体 | |
`page`对象:
| 字段 | 类型 | 内容 | 备注 |
| -------- | ----- | ------ | ---- |
| current | num | 当前页数 | |
| size | num | 当前分页大小 | |
| total | num | 记录总数 | |
`list`数组中的对象:
| 字段 | 类型 | 内容 | 备注 |
| -------- | ----- | ------ | ---- |
| aid | num | | |
| bvid | str | | |
| id | num | 留言记录id | |
| mid | num | | |
| reply_mid | num | 0| |
| elec_num | num | 0 | |
| state | num | UP是否已经回复这条留言 | 0未回复<br />1已回复 |
| msg | str | 留言信息 | |
| aname | str | 空 | |
| uname | str |空 | |
| avator | str | 空 | |
| reply_name | str | 空 | |
| reply_avator | str | 空 | |
| reply_msg | str | 空 | |
| ctime | num | 留言时间 | 毫秒级时间戳 |
| reply_time | num | 0 | |
**示例:**
```shell
curl -L -X GET 'https://member.bilibili.com/x/web/elec/remark/list?begin=2016-01-01&end=2050-01-01&pn=1&ps=10' \
-H 'Cookie: SESSDATA=xxx;'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"list": [
{
"aid": 0,
"bvid": "",
"id": 6715018,
"mid": 0,
"reply_mid": 0,
"elec_num": 0,
"state": 0,
"msg": "加油",
"aname": "",
"uname": "",
"avator": "",
"reply_name": "",
"reply_avator": "",
"reply_msg": "",
"ctime": 1650665119000,
"reply_time": 0
}
],
"pager": {
"current": 1,
"size": 10,
"total": 448
}
}
}
```
</details>
## 查询充电留言详情
> https://member.bilibili.com/x/web/elec/remark/detail?id=6662619
认证方式CookieSESSDATA
**url参数**
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| -------- | ---- | -------- | ------ | -------------------------------- |
| id | num | 留言id | 必要 | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | --------------------------- |
| code | num | 返回值 | 0成功<br />-101账号未登录<br />-400请求错误|
| message | str | 0 | |
| ttl | num | 1 | |
| data | obj | 信息本体 | |
`data`对象:
| 字段 | 类型 | 内容 | 备注 |
| -------- | ----- | ------ | ---- |
| aid | num | | |
| bvid | str | | |
| id | num | 留言id | |
| mid | num | 留言者uid充电用户 | |
| reply_mid | num | UP主uid | |
| elec_num | num | 0 | |
| state | num | UP是否已经回复这条留言 | 0未回复<br />1已回复 |
| msg | str | 留言内容 | |
| aname | str | 空 | |
| uname | str | 留言者用户名 | |
| avator | str | 留言者头像 | |
| reply_name | str | UP主用户名 | |
| reply_avator | str | UP主头像 | |
| reply_msg | str | 回复内容 | |
| ctime | num | 留言时间 | 毫秒级时间戳 |
| reply_time | num | 回复时间 | 毫秒级时间戳 |
**示例:**
```shell
curl -L -X GET 'https://member.bilibili.com/x/web/elec/remark/detail?id=6507563' \
-H 'cookie: SESSDATA=xxx'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"aid": 0,
"bvid": "",
"id": 6507563,
"mid": 19978396,
"reply_mid": 2062760,
"elec_num": 0,
"state": 1,
"msg": "感谢搬运",
"aname": "",
"uname": "HANSOOOOOL",
"avator": "http://i1.hdslb.com/bfs/face/5c22af0261b8b3f9a54b6e0038e35430e9ed9cfd.jpg",
"reply_name": "一把近战都不给六花",
"reply_avator": "http://i2.hdslb.com/bfs/face/1804b716084908d4992bdd35827d0c2d7222fe97.jpg",
"reply_msg": "( ̄3 ̄)",
"ctime": 1646726966000,
"reply_time": 1646811946000
}
}
```
</details>
## 回复充电留言
> https://member.bilibili.com/x/web/elec/remark/reply
*请求方式POST*
认证方式CookieSESSDATA
**正文参数( application/x-www-form-urlencoded **
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ------------ | ------ | ------------------------ | -------------- | ------------------------------------------------------------ |
| csrf | str | csrf | 必要 | |
| id | num | 留言id | 必要 | |
| msg | str | 回复信息 | | |
**json回复**
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
| code | num | 返回值 | 0成功<br />-101账号未登录<br />-111csrf 校验失败<br />-400请求错误20004充电服务异常<br /> |
| message | str | 错误信息 | |
| ttl | num | 1 | |
**示例:**
```shell
curl -L -X POST 'https://member.bilibili.com/x/web/elec/remark/reply' \
-H 'cookie: SESSDATA=xxx' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'csrf=xxx' \
--data-urlencode 'id=6258929' \
--data-urlencode 'msg=( ̄3 ̄)'
```
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": 1
}
```
</details>