Abner
|
dd4b76eae2
|
perf(sentry): 降低性能追踪采样率至10%节省配额
|
2025-12-13 23:47:28 +08:00 |
|
Abner
|
75763a57db
|
feat(sentry): 增强性能监控配置,启用完整请求追踪
- 启用 traceFetch 和 traceXHR 追踪 HTTP 请求
- 配置 tracePropagationTargets 指定追踪的 API 域名
- 启用 enableLongTask 追踪长任务
- 提高 tracesSampleRate 到 20%
|
2025-12-13 23:39:23 +08:00 |
|
Abner
|
65068df5dd
|
fix(sentry): 修复 CSP 内联脚本问题并增强敏感数据脱敏
- 新增 sentry-config.js 外链脚本替代 HTML 内联配置
- 修改 HTML 文件引用外链脚本以符合 CSP 策略
- 重写 inject-sentry-config.js 仅处理配置文件
- 添加 sentry-sdk-loaded 事件触发,修复 SDK 超时覆盖问题
- 增强 beforeSend 脱敏逻辑,覆盖 query_string 和更多敏感参数
|
2025-12-13 23:36:44 +08:00 |
|
Abner
|
a82603acdf
|
fix(csp): 在 Netlify HTTP 头添加 Sentry 域名白名单
- script-src 添加 browser.sentry-cdn.com 允许加载 SDK
- connect-src 添加 *.sentry.io 允许错误上报
修复 HTTP 响应头 CSP 覆盖 meta 标签导致 Sentry 上报被阻止的问题
|
2025-12-13 23:06:13 +08:00 |
|
Abner
|
f330b42b04
|
fix(csp): 修复 Sentry 上报被 CSP 阻止的问题
- 将 CSP connect-src 中的 `*.ingest.sentry.io` 改为 `*.sentry.io`
- 原因:Sentry 使用 `o493416.ingest.us.sentry.io` 多级子域名
- 通配符 `*.ingest.sentry.io` 不匹配多级子域名
|
2025-12-13 22:56:20 +08:00 |
|
Abner
|
1deb91f802
|
fix(sentry): 本地托管 Sentry SDK bundle 解决国内 CDN 访问问题
- 下载 Sentry v8.40.0 bundle 到 src/assets/vendor/
- 修改 sentry-loader.js 使用本地托管的 bundle
- 移除 crossOrigin 属性(本地资源不需要)
原因:browser.sentry-cdn.com 被墙,jsDelivr 上无 v8.x bundle 文件
|
2025-12-13 22:47:59 +08:00 |
|
Abner
|
4896665d7a
|
fix(sentry): 改用 jsDelivr CDN 加载 Sentry SDK
browser.sentry-cdn.com 在国内访问受限,改用 jsDelivr 镜像:
https://cdn.jsdelivr.net/npm/@sentry/browser@8.40.0/build/bundles/bundle.tracing.min.js
jsDelivr 在国内有节点,加载速度更快更稳定
|
2025-12-13 22:31:56 +08:00 |
|
Abner
|
f5a4fc4db8
|
fix(sentry): 将初始化逻辑合并到 sentry-loader.js
问题:sentry-init.js 是 ES 模块,但没有被任何地方导入执行
解决方案:
- 将所有初始化逻辑合并到 sentry-loader.js (IIFE 自执行)
- SDK 加载成功后立即调用 initSentry()
- testSentry() 直接暴露到 window,无需额外导入
现在只需要在 HTML 中加载 sentry-loader.js 即可完成一切
|
2025-12-13 22:20:48 +08:00 |
|
Abner
|
d8b06136dc
|
fix(sentry): 修复 Sentry SDK 加载问题,改用 CDN 方式
由于项目使用原生 ES 模块而非 webpack 打包,npm 导入方式无法工作。
改用 CDN 动态加载方案:
- 新增 src/js/sentry-loader.js:从 CDN 动态加载 Sentry SDK
- 重写 src/js/modules/sentry-init.js:使用 window.Sentry 而非 npm 导入
- 新增 scripts/inject-sentry-config.js:构建时注入环境变量配置
- 更新 build-static.js:集成 Sentry 配置注入步骤
- 更新 HTML 文件:添加 Sentry 配置脚本块和 CSP 策略
测试方法:部署后在控制台执行 testSentry() 或 window.testSentry()
|
2025-12-13 22:16:51 +08:00 |
|
Abner
|
0d99f1f600
|
feat: 集成 Sentry 错误监控系统
前端监控 (src/js/modules/sentry-init.js):
- 使用 @sentry/browser SDK v10+ 和 browserTracingIntegration()
- 智能环境检测,开发环境自动禁用
- 敏感数据过滤 (authKey, token, password, cookie)
- 性能追踪采样率 10%
后端监控 (netlify/functions/_shared/sentry.js):
- 使用 @sentry/node 用于 Netlify Functions
- 仅上报 5xx 服务端错误,节省配额
- Serverless 环境 flush() 确保错误发送
构建集成 (webpack.config.js):
- @sentry/webpack-plugin 自动上传 Source Maps
- 自动使用 Netlify COMMIT_REF 作为 release 版本
- 上传后自动删除本地 source maps
环境变量:
- SENTRY_DSN: 错误上报端点
- SENTRY_AUTH_TOKEN: Source Maps 上传认证
- SENTRY_ORG / SENTRY_PROJECT: 组织和项目标识
|
2025-12-13 22:03:02 +08:00 |
|
Abner
|
277defb2bd
|
feat(notification): 调整通知去重策略为仅页面生命周期内去重
移除 localStorage 持久化去重机制,确保每次页面加载(包括刷新)都会显示一次最新通知。
更新相关文档,明确说明通知系统的行为变更及 API 使用方式。
完善测试覆盖,确保功能变更后回归测试全部通过。
|
2025-12-13 00:03:00 +08:00 |
|
Abner
|
727f4517f7
|
style: 统一表单样式并改进UI设计系统
- 将多个表单字段从传统标签布局升级为浮动标签设计,提升视觉一致性
- 重构通知系统,弃用自定义toast实现,改用统一的NotificationManager
- 添加玻璃态设计效果,为卡片和状态面板增加背景模糊和半透明效果
- 引入骨架屏加载动画和步骤指示器脉冲效果,增强用户体验
- 优化深色模式支持,改进颜色对比度和视觉层次
- 添加粘性底部操作栏,为移动端提供更好的交互体验
- 统一使用Inter字体,提升整体排版美观度
|
2025-11-30 19:19:52 +08:00 |
|
Abner
|
4987f1a7fe
|
feat: 添加无需认证的内部通知API并更新前端调用
新增无需认证的内部通知API函数,提供系统状态和功能更新通知服务
- 创建 notifications-internal.js Netlify 函数,支持获取活跃通知及最新通知
- 实现CORS支持,允许指定来源的前端直接调用
- 包含预置通知数据,支持优先级排序和活跃状态过滤
- 更新前端 notification-service 模块以使用新的内部API端点
- 提供错误处理和日志记录机制确保服务稳定性
|
2025-11-30 19:07:37 +08:00 |
|
Abner
|
e8d31267f2
|
refactor: 重构样式系统和通知组件,提升代码模块化和可维护性
将内联CSS样式从index.html迁移到模块化的notification.css文件
为Giffgaff和Simyo页面添加通知系统样式引用
实现状态面板的可折叠设计,改善用户体验
添加深色模式支持,增强可访问性
优化悬停效果,仅在支持设备上显示
添加官方暂停通道的提示信息
统一管理网络状态指示器和加载动画样式
|
2025-11-30 18:51:20 +08:00 |
|
Abner
|
abf9063b20
|
docs: 添加通知系统使用指南和完整实现文档
- 新增详细的通知系统使用指南,涵盖架构设计、快速开始、后端配置和故障排查
- 添加通知管理器组件,支持 success、warning、error、info 四种通知类型
- 实现通知服务,支持自动轮询和已读状态管理
- 创建 Netlify Functions 通知 API,提供通知消息查询接口
- 集成通知系统到主页面,在DOM加载完成后自动初始化
- 提供完整的样式系统,包含响应式设计和无障碍访问支持
|
2025-11-30 18:43:38 +08:00 |
|
Abner
|
c6a6893aa2
|
refactor: 修复安全检查脚本的模板字符串语法和多行输出格式
- 将多行字符串连接修复为使用模板字符串语法,解决字符串插值问题
- 统一日志输出的换行符格式,改善控制台显示效果
- 移除不必要的换行符连接,简化代码逻辑
- 保持安全检查功能不变,仅优化代码格式和语法
|
2025-11-24 20:22:43 +08:00 |
|
Abner
|
1b36a7e1c1
|
feat: 新增完整的 GitHub Actions 工作流自动化系统
- 添加质量守卫工作流,负责代码推送时的质量检查、安全扫描、单元测试和构建验证
- 实现 CI 自动修复工作流,当质量检查失败时自动尝试重新运行各项检查
- 引入质量自动改进工作流,检测评级不足时自动应用代码格式化和 ESLint 修复
- 建立清理工作流历史定时任务,自动删除三天前的工作流运行记录和附件
- 设计智能评分机制,根据各项检查结果计算综合质量分数并生成评级报告
- 集成 Artifacts 管理,自动上传质量报告、修复结果和改进补丁供后续分析使用
|
2025-11-24 20:13:33 +08:00 |
|
Abner
|
188d4af85a
|
feat: 实现多提供商验证码系统,支持 Cloudflare Turnstile 和 Google reCAPTCHA
- 新增 CaptchaManager 类,统一管理 Turnstile 和 reCAPTCHA 验证码的初始化和 token 管理
- 扩展 BFF 代理支持多验证码提供商,根据配置自动切换验证逻辑
- 新增公共配置端点,动态下发验证码提供商配置到前端
- 重构 API 管理器,统一处理验证码 token 的头部和载荷注入
- 更新 CSP 策略,支持两种验证码服务的域名和资源
- 保留原有 Turnstile 功能的同时,支持 reCAPTCHA 作为备选方案
- 提供灵活的配置选项,可通过环境变量控制提供商开关和强制验证
|
2025-11-24 19:03:43 +08:00 |
|
Abner
|
05318df88a
|
feat: 为 Turnstile 验证添加强制执行控制功能
- 新增 TURNSTILE_ENFORCE 环境变量,可在紧急情况下跳过 BFF Turnstile 验证
- 在 CLAUDE.md 和 env.example 中添加完整的 Turnstile 配置说明
- 修改 BFF 代理逻辑,仅在启用强制执行时进行 Turnstile 验证
- 优化前端 JavaScript 代码,移除冗余的验证状态变量
- 在跳过验证时输出警告日志,便于调试和监控
|
2025-11-24 17:38:12 +08:00 |
|
Abner
|
eae40231bd
|
feat: 实现 Turnstile token 自动刷新机制
- 新增 `triggerTurnstileRefresh()` 函数,在 token 获取失败时自动重试
- 为所有 Turnstile 回调函数添加错误处理逻辑,记录错误信息到 `__lastTurnstileError`
- 在 OAuth 流程中增加 token 刷新功能,提高认证成功率
- 添加全局刷新句柄 `__esimTurnstileRefresh` 供模块间调用
- 改进错误日志记录,包含具体错误信息以便调试
|
2025-11-24 17:07:19 +08:00 |
|
Abner
|
5614f70443
|
feat: 为OAuth流程添加Cloudflare Turnstile验证支持
- 在三个关键文件中添加Turnstile token读取和等待功能
- 实现自动重试机制,最多尝试5次获取token,每次间隔500毫秒
- 在OAuth token交换请求中添加X-CF-Turnstile请求头和turnstileToken参数
- 添加适当的错误处理和警告日志,当token未就绪时继续请求但提示可能被服务端拒绝
- 保持向后兼容性,当Turnstile token不可用时仍继续正常流程
|
2025-11-24 16:25:17 +08:00 |
|
Abner
|
cde5a0af1d
|
新增 CLAUDE.md 项目指导文件,包含完整的项目架构、技术栈和开发规范
- 详细说明项目架构模式:无框架设计、Serverless优先、BFF模式
- 定义文件结构和模块划分,包括前端模块、Netlify Functions和构建脚本
- 制定代码风格规范:命名约定、导入规则、日志规范、异常处理和参数校验
- 包含测试策略、构建部署流程和Git工作流程说明
- 提供安全规范、性能优化指南和故障排查方案
- 统一项目文档标准和维护要求
|
2025-11-24 00:42:17 +08:00 |
|
Abner
|
4a0fcc94fe
|
feat: 重构Netlify Functions架构并增强代码质量
- 新增统一的中间件模块,提供鉴权、CORS和错误处理功能
- 重构所有Functions使用withAuth中间件简化代码结构
- 添加安全存储模块替代localStorage,防御XSS攻击
- 引入HTML清理工具,自动转义特殊字符和验证URL安全性
- 创建代码质量检查脚本,验证语法、环境变量和依赖完整性
- 添加构建日志工具和重构脚本,统一替换console.log为Logger
- 引入ESLint配置,提升代码质量和一致性
- 重构Giffgaff相关API,统一错误处理和验证逻辑
- 优化构建脚本,添加压缩和图片优化功能
- 新增健康检查端点,用于服务监控和状态报告
|
2025-11-23 22:20:02 +08:00 |
|
Abner
|
5b3e828c83
|
Merge pull request #11 from Silentely/dependabot/npm_and_yarn/multi-75e6bc5210
build(deps): bump js-yaml
|
2025-11-23 19:46:23 +08:00 |
|
Abner
|
5a29e64ec7
|
feat: 重构部署流程并移除 Service Worker
- 新增部署工具脚本:添加 `build-static.js`、`deploy-prepare.js`、`deploy-analyze.js` 和 `test-deploy-config.js` 标准化构建部署流程
- 配置 Netlify 发布目录:修改 `netlify.toml` 将 `publish` 从根目录切换到 `dist` 目录以增强安全性
- 移除 Service Worker 相关代码:删除 `sw.js` 并清理相关注册逻辑,简化性能优化策略
- 增强服务器静态文件服务:重构静态资源中间件,增加环境检查和错误处理
- 改进 API 密钥处理逻辑:统一 Netlify Functions 的密钥验证流程,增加配置缺失提示
- 添加 Serena AI 配置文件:包含项目元数据、语言服务器设置和常用命令记忆
- 重构 HTML 页面路由:使用配置化的路由表替代硬编码路径,提高可维护性
|
2025-11-23 19:44:45 +08:00 |
|
dependabot[bot]
|
42b2ae453c
|
build(deps): bump js-yaml
Bumps and [js-yaml](https://github.com/nodeca/js-yaml). These dependencies needed to be updated together.
Updates `js-yaml` from 3.14.1 to 3.14.2
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/3.14.1...3.14.2)
Updates `js-yaml` from 4.1.0 to 4.1.1
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/3.14.1...3.14.2)
---
updated-dependencies:
- dependency-name: js-yaml
dependency-version: 3.14.2
dependency-type: indirect
- dependency-name: js-yaml
dependency-version: 4.1.1
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
|
2025-11-18 11:10:47 +00:00 |
|
Abner
|
7bdcbfcaee
|
feat(security): 更新 Content-Security-Policy 策略配置
新增对 Google Analytics、Google Tag Manager 和 Cloudflare Turnstile 的支持,
同时调整 frame-src 允许加载特定域名内容。此变更应用于多个页面的 CSP 设置,
包括 index.html、giffgaff 和 simyo 相关页面,提升安全性与功能兼容性。
fix(turnstile): 改进 Cloudflare Turnstile 初始化逻辑
增强 widget 加载稳定性并优化 token 刷新机制,增加错误处理和状态管理,
防止重复执行并适配浏览器可见性变化。提取独立脚本确保 CSP 兼容性,
避免内联代码触发安全策略限制。
feat(i18n): 实现页脚组件国际化支持
为 copyright 文本、GitHub 链接及容器添加多语言切换能力,
引入翻译键值绑定与动态更新机制,并完善中英文对照文本定义。
refactor(footer): 抽离页脚国际化相关逻辑
将原有静态文本生成改为参数化解析方式,分离品牌名称与年份范围计算逻辑,
便于后续扩展更多本地化字段与样式控制选项。
chore(scripts): 创建首页专用 i18n 初始化模块
消除主页中的内联 JavaScript 脚本片段,将其封装成外部可引用的 ES Module,
解决潜在的内容安全策略冲突问题,提高代码整洁度和维护性。
|
2025-11-02 10:41:05 +08:00 |
|
Abner
|
91efda93bc
|
feat(styles): 更新设计系统样式以支持语言切换器
|
2025-11-01 14:16:14 +08:00 |
|
Abner
|
317c243092
|
feat(giffgaff,simyo): 调整语言切换按钮位置至头部按钮区域
|
2025-11-01 14:07:30 +08:00 |
|
Abner
|
34e4d11032
|
feat(i18n): 添加多语言支持并优化页面结构
- 为首页和 Giffgaff 工具页添加语言切换功能
- 引入国际化模块,支持中英文内容动态切换
- 更新 HTML 结构以支持多语言文本包裹
- 添加语言切换按钮样式及交互逻辑
- 在页面加载时初始化国际化设置
- 补充页面元信息描述,提升 SEO 及可访问性
|
2025-11-01 13:50:08 +08:00 |
|
Abner
|
157170c581
|
feat(simyo): 引入模块化架构并支持新旧版本路由切换
- 为 Simyo eSIM 页面新增模块化版本,保留原始版本作为备份
- 更新 Netlify 重定向规则,支持 `/simyo`(模块化)和 `/simyo-legacy`(原始版本)
- 在服务端新增对应路由处理,分别指向不同 HTML 文件
- 添加 MODULE_ARCHITECTURE.md 文档,详细说明模块分层结构与数据流
- 新增核心模块:api-config、auth-handler、device-change-handler、esim-service、state-manager
- 实现基于 ES6 模块系统的可维护架构,采用单例模式和观察者模式
- 支持设备更换流程、eSIM 获取与安装确认等完整业务逻辑
- 提供状态持久化与会话恢复机制,增强用户体验
|
2025-11-01 10:36:07 +08:00 |
|
Abner
|
b977a93b0d
|
fix(giffgaff): 修复样式表和脚本路径引用错误
修正了 giffgaff 模块中 CSS 样式表和 JavaScript 脚本的相对路径引用,
确保资源能够被正确加载。将原先不正确的相对路径更新为基于项目根
目录的绝对路径形式。
|
2025-10-31 23:37:48 +08:00 |
|
Abner
|
0de9083f4b
|
feat(giffgaff): 重构eSIM工具为模块化架构
将原有的单文件实现拆分为模块化结构,提升代码可维护性和扩展性。
新增模块包括状态管理、UI控制、认证处理和eSIM服务等。
同时保留原始版本作为备份,支持通过路由切换访问不同版本。
新增MODULE_ARCHITECTURE.md详细说明模块设计与数据流向。
更新README文档,提供模块化版本使用指南和开发建议。
调整Netlify和服务器路由配置,支持新版和旧版页面共存。
|
2025-10-31 23:30:45 +08:00 |
|
Abner
|
1114719664
|
docs(readme): 更新中英文文档链接格式
移除重复的“图文及视频完整操作指南”描述,统一中英文文档链接展示方式。
feat(footer): 优化页脚版权信息样式并添加 GitHub 链接
将页脚内容改为使用 Flex 布局,居中对齐,并在右侧添加指向项目仓库的 GitHub 图标链接。
图标带有悬停颜色过渡效果,提升用户交互体验。
同时修复了模块末尾多余的空行问题。
|
2025-10-31 20:58:38 +08:00 |
|
Abner
|
83a4958d03
|
docs(readme): 添加英文版README并优化文档链接
新增 README_EN.md 英文档,支持国际化访问,并在中文 README 中添加英文版本跳转链接。
同时更新了文档中的用户指南和参考文档链接,补充对应的中英文对照,提升多语言使用体验。
|
2025-10-31 20:44:40 +08:00 |
|
Abner
|
8008346426
|
docs(readme): 修复Giffgaff视频教程链接🔗
|
2025-10-30 00:01:32 +08:00 |
|
Abner
|
e53b0ddc48
|
docs(readme): 添加Giffgaff 视频教程并更新相关描述
|
2025-10-29 23:53:14 +08:00 |
|
Abner
|
383b34f9b7
|
docs(giffgaff): 更新eSIM教程链接
将giffgaff完成页面中的教程链接更新为新的用户指南文档,
以便用户能够获取更准确的eSIM配置指导信息。
|
2025-10-29 22:34:11 +08:00 |
|
Abner
|
9acea1a14d
|
docs(readme): 更新Giffgaff eSIM工具使用指南和激活流程说明
- 将MFA多因子验证扩展为支持邮件/短信验证码
- 新增推荐的全自动短信验证码激活方式
- 移除已于2025年10月8日停用的手动激活引导
- 补充完整的使用指南,包括Giffgaff和Simyo的申请流程
- 更新常见问题解答,适配新的激活方式
- 添加详细的文档链接和性能优化指南入口
同时更新了 docs/User_Guide.md 中的相关截图和操作步骤描述,
确保用户能够顺利使用最新的短信验证码激活功能。
|
2025-10-28 22:41:45 +08:00 |
|
Abner
|
e9015f07d6
|
feat(giffgaff): 更新短信验证码激活功能状态与交互逻辑
- 将短信验证码激活状态从“调试中未完善”更新为“推荐使用”
- 验证码输入区域默认隐藏,验证发送成功后显示该区域
- 优化提示文案,明确告知用户 eSIM 获取成功后的操作建议
- 移除调试中的警告提示,提升用户体验和功能可信度
|
2025-10-28 22:05:04 +08:00 |
|
Abner
|
6ce802192f
|
fix(giffgaff): 更新 eSIM 完成流程中的 MFA 参数说明与传递
修正了在执行 SIM 交换时对 MFA 参数的注释说明,并确保同时传递
mfaSignature 和 mfaRef 两个参数。此前注释误导性地指出仅需 mfaRef,
而实际 GraphQL 接口需要两者共同验证身份。
|
2025-10-28 21:54:11 +08:00 |
|
Abner
|
680fa9f099
|
fix(giffgaff): 更新SIM交换逻辑以使用mfaRef而非mfaSignature
将SIM交换过程中使用的参数从mfaSignature更改为mfaRef,
确保与simSwapMfaChallenge返回的验证引用一致,
从而正确完成eSIM激活流程。
|
2025-10-28 21:50:34 +08:00 |
|
Abner
|
f982bd8649
|
fix(netlify): 移除多余的 MFA 请求头字段
移除了重复的 MFA 签名和引用请求头,现在只保留必要的 X-MFA-Signature 头。
更新了注释以反映 swapSim 接口只需要签名,不再需要 ref 参数。
|
2025-10-28 21:35:21 +08:00 |
|
Abner
|
f746d44aac
|
fix(giffgaff): 增强 SIM 交换逻辑并延长等待时间
改进了 giffgaff eSIM 页面中的 SIM 交换流程,增加更详细的错误处理和日志记录。
现在会在交换失败时抛出明确错误,并确保只有在交换成功后才继续获取二维码。
同时将交换完成后的等待时间从 3 秒延长至 5 秒,以确保系统有足够时间处理 SIM 交换。
|
2025-10-28 21:29:55 +08:00 |
|
Abner
|
f93a539130
|
feat(giffgaff-graphql): 更新请求头以使用真实的 iOS App 用户代理和设备信息
调整 GraphQL 请求头配置,使用更真实的 iOS App 用户代理字符串及设备元数据,
包括新增对 simSwapMfaChallenge 操作的支持。同时优化请求头结构以贴近实际客户端行为,
并支持通过环境变量自定义相关字段。
- 将 User-Agent、Accept-Language、Accept-Encoding 等设置为更贴近移动端的值
- 新增对 simSwapMfaChallenge 操作识别并应用 App Headers
- 调整 x-gg-app-* 相关头部为真实 iOS 设备参数
- 引入 baggage 和 x-gg-app-device-id 等新头部字段
|
2025-10-28 21:21:52 +08:00 |
|
Abner
|
584279b1a3
|
feat(giffgaff): 增加 Turnstile 验证支持并优化 eSIM 交换流程
在验证码验证和 GraphQL 请求中添加了 Cloudflare Turnstile Token 支持,
以增强安全性。同时,重构了 SIM 交换逻辑,移除了二次 MFA 验证步骤,
简化流程并提高稳定性。此外,改进了错误处理机制,使错误信息更详细。
|
2025-10-28 21:15:31 +08:00 |
|
Abner
|
b470e56f07
|
fix(giffgaff): 优化 simSwapMfaChallenge 请求与错误处理逻辑
增强验证码发送失败时的错误提示信息,包含响应状态和错误文本。
增加对 GraphQL 响应中 errors 字段的处理,确保能正确捕获服务端返回的错误信息。
修复数据结构解析逻辑,避免因数组包裹导致的数据读取异常。
完善请求头添加 Authorization 字段,以支持需要认证的接口调用。
日志记录响应内容以便调试,并校验返回数据结构的有效性。
|
2025-10-28 21:08:26 +08:00 |
|
Abner
|
99f1c97605
|
feat(giffgaff): 增强 eSIM 预订与激活流程的安全性与错误处理
- 为 GraphQL 请求添加 Authorization 和 X-MFA-Signature 请求头
- 改进 reserveESim 和 SwapSim 接口的响应处理逻辑
- 增加对 GraphQL 错误的捕获和日志记录
- 优化轮询获取 eSimDownloadToken 的稳定性与容错能力
|
2025-10-28 19:53:12 +08:00 |
|
Abner
|
e7d8a1f68e
|
test
|
2025-10-28 19:45:51 +08:00 |
|
Abner
|
37013f6935
|
feat(giffgaff): 禁用手动激活eSIM卡片功能(暂不可用)
|
2025-10-28 00:34:13 +08:00 |
|