()
| 290 | } |
| 291 | |
| 292 | async function saveManualSessionToken() { |
| 293 | const accountId = Number(document.getElementById("account-select")?.value || 0); |
| 294 | if (!accountId) { |
| 295 | toast.warning("请先选择账号"); |
| 296 | return; |
| 297 | } |
| 298 | const sessionToken = String(document.getElementById("manual-session-token-input")?.value || "").trim(); |
| 299 | if (!sessionToken) { |
| 300 | toast.warning("请先粘贴 session_token"); |
| 301 | return; |
| 302 | } |
| 303 | |
| 304 | setButtonLoading("save-session-token-btn", "保存中...", true); |
| 305 | try { |
| 306 | const data = await api.post(`/payment/accounts/${accountId}/session-token`, { |
| 307 | session_token: sessionToken, |
| 308 | merge_cookie: true, |
| 309 | }); |
| 310 | if (data?.success) { |
| 311 | toast.success(`Session Token 已保存(len=${data?.session_token_len || 0})`); |
| 312 | await runSessionDiagnostic(); |
| 313 | return; |
| 314 | } |
| 315 | toast.warning(data?.message || "保存完成,但未返回 success"); |
| 316 | } catch (error) { |
| 317 | toast.error(`保存 Session Token 失败: ${formatErrorMessage(error)}`); |
| 318 | } finally { |
| 319 | setButtonLoading("save-session-token-btn", "保存中...", false); |
| 320 | } |
| 321 | } |
| 322 | |
| 323 | function getInputValue(id) { |
| 324 | return (document.getElementById(id)?.value || "").trim(); |
nothing calls this directly
no test coverage detected