fix(MainSite): addcoin risk

This commit is contained in:
Lkeme 2025-11-18 14:32:28 +08:00
parent efe31f4c68
commit 89524db092
5 changed files with 40 additions and 9 deletions

View File

@ -229,6 +229,13 @@ $ docker run -itd --rm -e USER_NAME=你的B站登录账号 -e USER_PASSWORD=你
$ docker run -itd --rm -v /path/to/your/confFilePath:/app/profile/user lkeme/bilihelper-personal $ docker run -itd --rm -v /path/to/your/confFilePath:/app/profile/user lkeme/bilihelper-personal
``` ```
- 通过配置文件进行传入且使用验证码(示例命令)
```shell
$ docker run -itd -e MIRRORS=2 -e CAPTCHA=1 -e CAPTCHA_HOST=0.0.0.0 -e CAPTCHA_PORT=50001 -p 50001:50001 -v
/your/path/bh/profile/user:/app/profile/user lkeme/bilihelper-personal
```
- 版本兼容 - 版本兼容
```shell ```shell

View File

@ -175,7 +175,7 @@ class MainSite extends BasePlugin
*/ */
protected function reward(string $aid): void protected function reward(string $aid): void
{ {
$response = ApiCoin::coin($aid); $response = ApiCoin::appCoin($aid);
// //
switch ($response['code']) { switch ($response['code']) {
case -101: case -101:
@ -184,6 +184,7 @@ class MainSite extends BasePlugin
Log::notice("主站任务: $aid 投币成功"); Log::notice("主站任务: $aid 投币成功");
break; break;
default: default:
// Log::info(json_encode($response, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE));
Log::warning("主站任务: $aid 投币失败 {$response['code']} -> {$response['message']}"); Log::warning("主站任务: $aid 投币失败 {$response['code']} -> {$response['message']}");
} }
} }

View File

@ -26,6 +26,7 @@ trait PointInfo
*/ */
public function pointInfo(array $data, string $name): bool public function pointInfo(array $data, string $name): bool
{ {
// 0成功 、-101账号未登录 、-401非法访问 、-403访问权限不足 、-111csrf 校验失败 、-400请求错误 、69800网络繁忙 请稍后再试 、69801你已领取过该权益
$ts = date('Y-m-d H:i:s', $data['data']['current_ts']); $ts = date('Y-m-d H:i:s', $data['data']['current_ts']);
$point = $data['data']['point_info']['point']; $point = $data['data']['point_info']['point'];
Log::notice("大会员积分@$name: 截至 $ts 您当前拥有 $point 个积分"); Log::notice("大会员积分@$name: 截至 $ts 您当前拥有 $point 个积分");

View File

@ -3,8 +3,8 @@ device_version: 0.0.1
app: app:
bili_a: # Android bili_a: # Android
package: "tv.danmaku.bili" package: "tv.danmaku.bili"
version: "8.61.0" version: "8.70.0"
build: "8610300" build: "8700300"
channel: "bili" channel: "bili"
device: "phone" device: "phone"
mobi_app: "android" mobi_app: "android"
@ -15,7 +15,7 @@ app:
secret_key: "NTYwYzUyY2NkMjg4ZmVkMDQ1ODU5ZWQxOGJmZmQ5NzM" secret_key: "NTYwYzUyY2NkMjg4ZmVkMDQ1ODU5ZWQxOGJmZmQ5NzM"
app_key_n: "NzgzYmJiNzI2NDQ1MWQ4Mg==" app_key_n: "NzgzYmJiNzI2NDQ1MWQ4Mg=="
secret_key_n: "MjY1MzU4M2M4ODczZGVhMjY4YWI5Mzg2OTE4YjFkNjU=" secret_key_n: "MjY1MzU4M2M4ODczZGVhMjY4YWI5Mzg2OTE4YjFkNjU="
statistics: '{"appId":1,"platform":3,"version":"8.61.0","abtest":""}' statistics: '{"appId":1,"platform":3,"version":"8.70.0","abtest":""}'
bili_i: # IOS bili_i: # IOS
app_key: "MjdlYjUzZmM5MDU4ZjhjMw==" app_key: "MjdlYjUzZmM5MDU4ZjhjMw=="
secret_key: "YzJlZDUzYTc0ZWVlZmUzY2Y5OWZiZDAxZDhjOWMzNzU=" secret_key: "YzJlZDUzYTc0ZWVlZmUzY2Y5OWZiZDAxZDhjOWMzNzU="

View File

@ -18,20 +18,20 @@
namespace Bhp\Api\Video; namespace Bhp\Api\Video;
use Bhp\Request\Request; use Bhp\Request\Request;
use Bhp\Sign\Sign;
use Bhp\User\User; use Bhp\User\User;
class ApiCoin class ApiCoin
{ {
/** /**
* 投币 * 投币Web
* @param string $aid * @param string $aid
* @param int $multiply * @param int $multiply
* @param int $select_like * @param int $select_like
* @return array * @return array
*/ */
public static function coin(string $aid, int $multiply = 1, int $select_like = 0): array public static function webCoin(string $aid, int $multiply = 1, int $select_like = 0): array
{ {
//
$user = User::parseCookie(); $user = User::parseCookie();
// //
$url = 'https://api.bilibili.com/x/web-interface/coin/add'; $url = 'https://api.bilibili.com/x/web-interface/coin/add';
@ -51,9 +51,33 @@ class ApiCoin
// {"code":0,"message":"0","ttl":1,"data":{"like":false}} // {"code":0,"message":"0","ttl":1,"data":{"like":false}}
// CODE -> 137001 MSG -> 账号封禁中,无法完成操作 // CODE -> 137001 MSG -> 账号封禁中,无法完成操作
// CODE -> -650 MSG -> 用户等级太低 // CODE -> -650 MSG -> 用户等级太低
// {"code":-401,"message":"非法访问","ttl":1,"data":{"ga_data":{"decisions":["verify_captcha_level3"],"risk_level":1,"grisk_id":"********","decision_ctx":{"buvid":"********infoc","decision_type":"4","hrid":"53903","ip":"********","mid":"********","origin_scene":"video_coin","referer":"https://www.bilibili.com/video/********","scene":"video_coin","ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0","v_voucher":"voucher_e********b"}}}}
return Request::postJson(true, 'pc', $url, $payload, $headers); return Request::postJson(true, 'pc', $url, $payload, $headers);
} }
/**
* 投币App
* @param string $aid
* @param int $multiply
* @param int $select_like
* @return array
*/
public static function appCoin(string $aid, int $multiply = 1, int $select_like = 0): array
{
$url = 'https://app.bilibili.com/x/v2/view/coin/add';
//
$payload = [
'access_key' => getU('access_token'),
'aid' => $aid,
'multiply' => $multiply, // 投币*1
'select_like' => $select_like,// 默认不点赞
];
// {"code":0,"message":"0","ttl":1,"data":{"prompt":true,"like":false,"guide":{"type":"share","title":"喜欢就分享给朋友吧"}}} [] []
return Request::postJson(true, 'app', $url, Sign::common($payload));
}
/** /**
* 获取硬币 * 获取硬币
* @return array * @return array
@ -79,6 +103,4 @@ class ApiCoin
$payload = []; $payload = [];
return Request::getJson(true, 'pc', $url, $payload); return Request::getJson(true, 'pc', $url, $payload);
} }
} }