优化斗鱼支付后自动刷新

This commit is contained in:
yml2213
2026-07-25 11:46:11 +08:00
parent 3350b56f5c
commit 6ca7898520
3 changed files with 255 additions and 39 deletions
+13 -2
View File
@@ -89,6 +89,14 @@ class DouyuActivityClient:
])
self._load_cookie(self.cookie)
def _set_cookie_value(self, key: str, value: str) -> None:
"""写入单个 Cookie 值,确保手动 Cookie 请求头与 Session 一致。"""
self.cookie = normalize_cookie_pairs([
*cookie_pairs(self.cookie),
(key, value),
])
self._load_cookie(self.cookie)
def _headers(self, referer: str = "https://www.douyu.com/") -> dict[str, str]:
return {
"User-Agent": PC_UA,
@@ -300,6 +308,9 @@ class DouyuActivityClient:
def create_elite_qr(self, *, ctn: str, act_alias: str, amount: int, room_id: str) -> dict[str, Any]:
"""生成精英宝典支付二维码。"""
# E 语言实现会在 peace/item 和 getQrCode 两次请求里显式拼上 acf_ccn=ctn。
# 这里也同步 Cookie,避免接口只看 Cookie 时误判未绑定游戏账号。
self._set_cookie_value("acf_ccn", ctn)
item_payload = self._request_json(
"post",
self.PEACE_ITEM_API,
@@ -324,7 +335,7 @@ class DouyuActivityClient:
qr = (payload.get("data") or {}).get("qr") or ""
if not qr:
raise DouyuActivityError(payload.get("msg") or "生成精英宝典支付码失败")
return {"pay_url": qr, "ctn": ctn, "item": item_payload, "raw": payload}
return {"pay_url": qr, "ctn": ctn, "act_alias": act_alias, "item": item_payload, "raw": payload}
def create_gold_qr(self, *, amount: int, pay_type: int = 1, product_id: str = "DYTV_Product_Gold_1") -> dict[str, Any]:
"""生成鱼翅充值支付二维码。"""
@@ -498,7 +509,7 @@ class DouyuActivityClient:
payload = self._request_json(
"get",
self.EXCHANGE_BALANCE_API,
"查询鱼刺余额",
"查询钱包兑换余额",
params={"appCode": "YJTX"},
headers={
"Origin": "",