Files
bilibili-API-collect/docs/electric/Bcoin.md
T
晨叶梦春 6c1f03e753 update
2025-02-25 23:51:36 +08:00

324 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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币充电
> 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:请求错误<br />-500:服务器错误 |
| 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返回0),data.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>