B币方式充电

:以前充电是电池的概念,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

认证方式:Cookie(SESSDATA)

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

参数名类型内容必要性备注
bp_numnum贝壳数量必要必须在2-9999之间
is_bp_remains_priorbool是否优先扣除B币余额必要[true,false],B币充电请选择true
up_midnum充电对象用户mid必要
otypestr充电来源必要up:空间充电
archive:视频充电
oidnum充电来源代码必要空间充电:充电对象用户mid
视频充电:稿件avid
csrfstrCSRF Token(位于cookie)必要

json回复:

根对象:

字段类型内容备注
codenum返回值0:成功(并不代表充电成功)
-101:账号未登录
-111:csrf校验失败
-400:请求错误
messagestr错误信息默认为0
ttlnum1
dataobj信息本体

data对象:

字段类型内容备注
midnum本用户mid
up_midnum目标用户mid
order_nostr留言token用于添加充电留言
bp_numstr充电贝壳数
expnum获得经验数
statusnum返回结果4:成功
-2:低于20电池下限
-4:B币不足
msgstr错误信息默认为空

示例:

以空间的方式向用户mid=293793435充了2贝壳,得到2经验,留言token为BPRG5CEC3VUPOOANA540

此时data.status=4

自己给自己冲QAQ

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'
查看响应示例:
{
    "code":0,
    "message":"0",
    "ttl":1,
    "data":{
        "mid":293793435,
        "up_mid":293793435,
        "order_no":"BPRG5CEC3VUPOOANA540",
        "bp_num":2,
        "exp":"2",
        "status":4,
        "msg":""
    }
}

当所充电贝壳数小于2时,充电不会成功

此时data.status=-2

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'
查看响应示例:
{
    "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"
    }
}

当所充贝壳数折合的B币数不足时,充电也不会成功

此时data.status=-4

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'
查看响应示例:
{
    "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 币余额不足"
    }
}

老版本B币充电

老版本目前已过期,调用接口成功后(code返回0),data.status会返回0,且B币不会消耗,贝壳也不会增加。以下是历史信息:

查看折叠内容

https://api.bilibili.com/x/ugcpay/trade/elec/pay/quick

请求方式:POST

认证方式:Cookie(SESSDATA)

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

参数名类型内容必要性备注
elec_numnum充电电池数量必要必须在2-9999之间
up_midnum充电对象用户mid必要
otypestr充电来源必要up:空间充电
archive:视频充电
oidnum充电来源代码必要空间充电:充电对象用户mid
视频充电:稿件avid
csrfstrCSRF Token(位于cookie)必要

json回复:

根对象:

字段类型内容备注
codenum返回值0:成功(并不代表充电成功)
-101:账号未登录
-111:csrf校验失败
-400:请求错误
messagestr错误信息默认为0
ttlnum1
dataobj信息本体

data对象:

字段类型内容备注
midnum本用户mid
up_midnum目标用户mid
order_nostr留言token用于添加充电留言
elec_numnum充电电池数
expnum获得经验数
statusnum返回结果4:成功
-2:低于20电池下限
-4:B币不足
msgstr错误信息默认为空

示例:

以空间的方式向用户mid=293793435充了20电池,得到2经验,留言token为BPRG5CEC3VUPOOANA540

此时data.status=4

再次自己冲自己QAQ

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'
查看响应示例:
{
    "code":0,
    "message":"0",
    "ttl":1,
    "data":{
        "mid":293793435,
        "up_mid":293793435,
        "order_no":"BPRG5CEC3VUPOOANA540",
        "elec_num":20,
        "exp":2,
        "status":4,
        "msg":""
    }
}

当所充电池数小于2时,充电不会成功

此时data.status=-2

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'
查看响应示例:
{
    "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"
    }
}

当所充电池数折合的B币数不足时,充电也不会成功

此时data.status=-4

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'
查看响应示例:
{
    "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 币余额不足"
    }
}