Skip to content

Commit

Permalink
添加微信&支付宝方式充电api
Browse files Browse the repository at this point in the history
  • Loading branch information
SocialSisterYi committed Mar 25, 2020
1 parent 8521edf commit d534a1b
Show file tree
Hide file tree
Showing 15 changed files with 720 additions and 566 deletions.
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,3 @@ login/msg.md
live/info_flow.md
bangumi/info.md
bangumi/ststus_number.md
electric/WeChat&Alipay.md
18 changes: 9 additions & 9 deletions danmaku/history.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,12 @@ http://api.bilibili.com/x/v2/dm/history/index

**json回复:**

| 字段 | 类型 | 内容 | 备注 |
| ------- | --------------------------- | -------- | ------------------------------------------- |
| code | num | 返回值 | 0成功<br />-400请求错误<br />-101账号未登录 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | 作用尚不明确 |
| data | 有弹幕array<br />无弹幕null | 日期列表 | |
| 字段 | 类型 | 内容 | 备注 |
| ------- | ------------------------------- | -------- | ------------------------------------------------- |
| code | num | 返回值 | 0:成功<br />-400:请求错误<br />-101:账号未登录 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | 作用尚不明确 |
| data | 有弹幕:array<br />无弹幕:null | 日期列表 | |

`data`数组:

Expand All @@ -35,6 +35,8 @@ http://api.bilibili.com/x/v2/dm/history/index

示例:

查询了cid为144541892的视频位于2020年1月中有历史弹幕记录的日期

http://api.bilibili.com/x/v2/dm/history/index?type=1&oid=144541892&month=2020-01

```json
Expand All @@ -58,9 +60,7 @@ http://api.bilibili.com/x/v2/dm/history/index?type=1&oid=144541892&month=2020-01
}
```

返回结果的 `data` 项说明这些日期有弹幕发送。若查询的月份中视频无弹幕,则 `data` 项为 `null`

示例:
返回结果的 `data` 项说明这些日期有弹幕发送。若查询的月份中视频无弹幕,则 `data` 项为 `null`

http://api.bilibili.com/x/v2/dm/history/index?type=1&oid=144541892&month=2019-12

Expand Down
2 changes: 1 addition & 1 deletion electric/Bcoin.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ http://api.bilibili.com/x/ugcpay/trade/elec/pay/quick

| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
| code | num | 返回值 | 0成功(并不代表充电成功) <br />-400请求错误<br />-111csrf校验失败<br />-101账号未登录 |
| code | num | 返回值 | 0:成功(并不代表充电成功) <br />-400:请求错误<br />-111:csrf校验失败<br />-101:账号未登录 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | 作用尚不明确 |
| data | obj | 信息本体 | |
Expand Down
155 changes: 155 additions & 0 deletions electric/WeChat&Alipay.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
# 微信&支付宝方式充电

本页所有操作均需登录(SESSDATA)

操作流程:

1.申请充电二维码及扫码秘钥,秘钥临时保存备用

2.使用`qr_code_url`中的值生成二维码

3.用支付宝或微信扫描

4.以扫码秘钥作为参数轮询检查扫码支付结果

## 申请充电二维码及扫码秘钥

> http://api.bilibili.com/x/ugcpay/trade/elec/pay/qr_code/create
*方式:POST*

秘钥有效时间为10分钟

参数( application/x-www-form-urlencoded ):

| 参数名 | 内容 | 必要性 | 备注 |
| ------------------- | ------------------- | ------ | ------------------------------------------------------------ |
| up_mid | 充电对象用户UID | 必要 | |
| elec_num | 充电电池数量 | 必要 | 必须在20-99990之间<br />1-19区间视为充值B币 |
| is_bp_remains_prior | 是否优先扣除B币 | 必要 | true:是<br />false:否<br />在B币不足时剩余的部分利用支付平台支付 |
| otype | 充电来源 | 必要 | up:空间充电<br />archive:视频充电 |
| oid | 充电来源代码 | 必要 | 空间充电:充电对象用户UID<br />视频充电:视频avID |
| csrf | cookies中的bili_jct | 必要 | |

**json回复:**

| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
| code | num | 返回值 | 0:成功<br />-400:请求错误<br />-500:服务器错误<br />-111:csrf校验失败<br />-101:账号未登录 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | 作用尚不明确 |
| data | obj | 信息本体 | |

`data`对象:

| 字段 | 类型 | 内容 | 备注 |
| ----------- | ---- | ------------------ | -------- |
| qr_code_url | str | 支付二维码生成内容 | 存在转义 |
| qr_token | str | 扫码秘钥 | |
| exp | num | 获得经验数 | |

示例:

申请空间的方式向用户23215368充电10电池且不使用B币的支付二维码

curl -b "SESSDATA=xxx" -d "up_mid=23215368&elec_num=10&is_bp_remains_prior=false&otype=up&oid=23215368&csrf=xxx" "http://api.bilibili.com/x/ugcpay/trade/elec/pay/qr_code/create"

```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\u0026token=c1cb1d95d2194ba58df6bb0f24ae1aaa",
"qr_token": "c1cb1d95d2194ba58df6bb0f24ae1aaa",
"exp": 1
}
}
```



## 检查扫码支付结果

> http://api.bilibili.com/x/ugcpay/trade/elec/pay/order/status
*方式:GET*

参数:

| 参数名 | 内容 | 必要性 | 备注 |
| -------- | -------- | ------ | ---- |
| qr_token | 扫码秘钥 | 必要 | |

**json回复:**

| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ----------------------------- |
| code | num | 返回值 | 0:成功<br />-101:账号未登录 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | 作用尚不明确 |
| data | obj | 信息本体 | |

`data`对象:

| 字段 | 类型 | 内容 | 备注 |
| -------- | ---- | ----------- | ------------------------------------------------------------ |
| qr_token | str | 扫码秘钥 | |
| order_no | str | 交易编号 | 未成功则无此项<br />用于添加充电备注 |
| mid | num | 当前用户UID | |
| status | num | 状态值 | 若秘钥错误则无此项<br />1:已支付<br />2:未扫描<br />3:未确认 |

示例:

当申请到的支付二维码未被扫描时,`data`.`ststus`的值为`2`

http://api.bilibili.com/x/ugcpay/trade/elec/pay/order/status?qr_token=c7cbdc47fc424cd18f2146db653597b8

```json
{
"code":0,
"message":"0",
"ttl":1,
"data":{
"qr_token":"c7cbdc47fc424cd18f2146db653597b8",
"mid":293793435,
"status":2
}
}
```

当申请到的支付二维码已扫描但未确认时,`data`.`ststus`的值为`3`

http://api.bilibili.com/x/ugcpay/trade/elec/pay/order/status?qr_token=c7cbdc47fc424cd18f2146db653597b8

```json
{
"code":0,
"message":"0",
"ttl":1,
"data":{
"qr_token":"c7cbdc47fc424cd18f2146db653597b8",
"mid":293793435,
"status":3
}
}
```

成功支付后,`data`.`ststus`的值为`1`,且`data`.`order_no`存在交易编号

http://api.bilibili.com/x/ugcpay/trade/elec/pay/order/status?qr_token=bd649c836c524550bfe22a369334fc05

```json
{
"code":0,
"message":"0",
"ttl":1,
"data":{
"qr_token":"bd649c836c524550bfe22a369334fc05",
"order_no":"BPTD36U3KP82I31RSSLG",
"mid":293793435,
"status":1
}
}
```

2 changes: 1 addition & 1 deletion electric/charge_msg.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ http://api.bilibili.com/x/ugcpay/trade/elec/message

| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ------------------------------------------------------------ |
| code | num | 返回值 | 0成功 <br />-400请求错误<br />-111csrf校验失败<br />-101账号未登录<br />88203不能重复留言 |
| code | num | 返回值 | 0:成功 <br />-400:请求错误<br />-111:csrf校验失败<br />-101:账号未登录<br />88203:不能重复留言 |
| message | str | 错误信息 | 默认为0 |
| ttl | num | 1 | 作用尚不明确 |

Expand Down
42 changes: 21 additions & 21 deletions login/QR.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@

流程&逻辑:

1. 获取二维码内容url」以及「秘钥」,以「二维码内容url」作为内容生成二维码,等待手机端扫描
2.「秘钥」作为参数进行POST
1. 获取`二维码内容url`以及`秘钥`,以`二维码内容url`生成二维码,等待手机客户端扫描
2.`秘钥`作为参数进行POST
3. if "code"==true goto 6 else goto 4(是否已经确认)
4. if "data"==-4 goto 2 else goto 5(是否已经扫描)
5. if "data"==-5 goto 3 && 提示已扫描else goto 1&提示二维码超时或错误(秘钥是否有效)
6. 成功后会自动配置cookie 如需登录游戏分站则访问"data"."url"中的url
5. if "data"==-5 goto 3 && 提示`已扫描`else goto 1&提示`二维码超时或错误`(秘钥是否有效)
6. 成功后会自动配置cookie 如需登录游戏分站则访问`data`.`url`中的url

<img src="/imgs/2233login.png"/>

Expand All @@ -23,12 +23,12 @@

**json回复:**

| 字段 | 类型 | 内容 | 备注 |
| ------- | ----- | --------- | ------------------ |
| code | num | 返回值 | 0成功 |
| status | bool | true | 作用尚不明确 |
| ts | num | 请求时间 | 时间戳 |
| data | obj | 信息本体 | |
| 字段 | 类型 | 内容 | 备注 |
| ------ | ---- | -------- | ------------ |
| code | num | 返回值 | 0:成功 |
| status | bool | true | 作用尚不明确 |
| ts | num | 请求时间 | 时间戳 |
| data | obj | 信息本体 | |

`data`对象:

Expand All @@ -39,6 +39,8 @@

示例:

用申请到的`data`.`url`中的值生成二维码,等待手机客户端扫描,并将`data`.`oauthKey`保存等待使用

http://passport.bilibili.com/qrcode/getLoginUrl
```json
{
Expand All @@ -52,8 +54,6 @@ http://passport.bilibili.com/qrcode/getLoginUrl
}
```

`url`中的值生成二维码,等待手机客户端扫描,并将`oauthKey`保存等待使用



## 验证二维码登录
Expand All @@ -66,7 +66,7 @@ http://passport.bilibili.com/qrcode/getLoginUrl

验证正确时会进行设置以下cookie项:

sid」「DedeUserID」 「DedeUserID__ckMd5」 「SESSDATA」 「bili_jct
`sid` `DedeUserID` `DedeUserID__ckMd5` `SESSDATA` `bili_jct`

参数( application/x-www-form-urlencoded ):
| 参数名 | 内容 | 必要性 | 备注 |
Expand All @@ -76,13 +76,13 @@ http://passport.bilibili.com/qrcode/getLoginUrl

**json回复:**

| 字段 | 类型 | 内容 | 备注 |
| ------- | ------------------------ | ----------------------------------------- | ------------------------------------------------------------ |
| status | bool | 扫码是否成功 | |
| code | num | 返回值 | 0成功 |
| message | str | 错误信息 | 正确无 |
| ts | num | 扫码时间 | 错误无 |
| data | 正确时obj<br />错误时num | 正确时:游戏分站url<br />错误时:错误代码 | 错误时:<br />-1秘钥错误<br />-2秘钥超时<br />-4未扫描<br />-5未确认 |
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---------------------------- | ----------------------------------------- | ------------------------------------------------------------ |
| status | bool | 扫码是否成功 | true:成功<br />false:未成功 |
| code | num | 返回值 | 0:成功 |
| message | str | 错误信息 | 正确无 |
| ts | num | 扫码时间 | 错误无 |
| data | 正确时:obj<br />错误时:num | 正确时:游戏分站url<br />错误时:错误代码 | 错误时:<br />-1:秘钥错误<br />-2:秘钥超时<br />-4:未扫描<br />-5:未确认 |

data 对象:
| 字段 | 类型 | 内容 | 备注 |
Expand All @@ -93,7 +93,7 @@ data 对象:

curl -d "oauthKey=xxx" "http://passport.bilibili.com/qrcode/getLoginInfo"

当秘钥正确时但未扫描时`status`为false`data`为num值`-4`
当秘钥正确时但未扫描时`status``false``data`为num值`-4`

```json
{
Expand Down
Loading

0 comments on commit d534a1b

Please sign in to comment.