专为Giffgaff和Simyo用户设计的现代化eSIM管理工具集,支持完整的eSIM申请、激活和二维码生成流程。
- OAuth 2.0 PKCE认证 - 安全的身份验证流程
- 智能Cookie登录 - 支持免OAuth快速登录
- MFA多因子验证 - 邮件验证码支持
- 手动激活引导 - 安全的官方激活流程 [[memory:4907270]]
- GraphQL API集成 - 完整的API调用链
- LPA二维码生成 - 标准eSIM激活码
- 账户登录验证 - 荷兰手机号格式验证
- 设备更换支持 - 完整的SIM卡更换流程
- 短信验证码 - 自动发送和验证处理
- 即时二维码生成 - 一键生成可扫描激活码
- 安装确认 - 确保eSIM正确激活
下方为主要页面的功能截图预览,便于快速了解工具界面与核心操作路径。
完整功能版本: https://esim.cosr.eu.org
- ✅ 无CORS限制,完整API功能
- ✅ 支持所有eSIM操作和流程
- ✅ 性能优化,支持离线使用
- ✅ 定期更新维护
-
克隆仓库
git clone https://github.com/Silentely/eSIM-Tools.git cd eSIM-Tools
-
安装依赖
npm install
-
启动代理服务器
# Windows start_simyo_server.bat # macOS/Linux ./start_simyo_server.sh # 或手动启动 npm start
-
访问应用
http://localhost:3000
- 现代浏览器: Chrome 88+, Firefox 85+, Safari 14+, Edge 88+
- 开发环境: Node.js >= 18.0.0, npm >= 8.0.0 (仅本地开发需要)
- HTML5/CSS3 - 响应式设计,现代化UI
- JavaScript ES6+ - 模块化架构,现代语法特性
- Bootstrap 5 - 响应式UI框架
- Service Worker - 离线支持和缓存优化
- 生产环境: Netlify Functions - 无服务器函数处理API代理
- 开发环境: Node.js Express - 本地开发服务器
- CORS处理 - 统一跨域请求解决方案
- 会话管理 - 安全的本地存储和自动过期机制
- 资源压缩: Webpack + TerserPlugin,压缩率65%+
- Service Worker: 离线缓存和网络状态监控
- 图片优化: WebP格式支持,自动压缩
- 代码分割: 自动分离第三方库,减少初始加载时间
详细性能优化说明请参考 PERFORMANCE.md
- Giffgaff服务窗口: 英国时间 04:30 – 21:30 (Europe/London)
- 窗口外操作: 可能失败或不稳定,UI会显示本地时间与英国时间对比
使用托管版本 https://esim.cosr.eu.org
- 无需部署配置,即开即用
- 自动更新,稳定可靠
- 完整功能支持
- Fork此仓库到您的GitHub账户
- 在Netlify中连接GitHub仓库
- 构建设置:
- Build command:
echo 'No build needed'
- Publish directory:
.
- Build command:
- 部署完成,获得您的专属域名
# 克隆仓库
git clone https://github.com/Silentely/eSIM-Tools.git
cd eSIM-Tools
# 安装依赖并启动
npm install
npm start
# 访问 http://localhost:3000
- 身份验证 - OAuth登录或Cookie快速登录
- 邮件验证 - 输入收到的MFA验证码
- 申请eSIM - 系统预留RESERVED状态的eSIM卡
- 手动激活 - 访问
https://www.giffgaff.com/activate
- 输入显示的
activationCode
- 点击"Activate your SIM"
- 确认"Yes, I want to replace my SIM"
- 输入显示的
- 获取二维码 - 返回页面完成LPA激活码生成
⚠️ 重要提示: 激活过程中请保持页面开启,避免会话过期
- 账户登录 - 输入荷兰手机号(06开头)和密码
- 选择服务 - 新申请或设备更换
- 验证码处理 - 短信或客服验证码验证
- 获取配置 - 系统生成eSIM配置信息
- 扫码安装 - 使用生成的二维码在新设备上安装
Q: 为什么需要手动激活? A: 出于安全合规考虑,eSIM激活需在官方页面完成。工具会展示激活码并提供详细引导。
Q: 激活后多久能获得二维码? A: 通常数十秒至几分钟。完成手动激活后返回页面,系统自动生成LPA二维码。
Q: 误关页面怎么办? A: 重新登录后系统会从可恢复节点继续。建议激活完成前保持页面开启。
Q: 支持哪些手机号格式? A: 仅支持荷兰手机号(06开头的10位数字)。
Q: 验证码收不到怎么办? A: 可选择客服验证码选项,或检查短信拦截设置。
- Giffgaff: 英国用户专用
- Simyo: 荷兰用户专用(06开头手机号)
- ✅ 所有数据处理均在本地进行
- ✅ 不存储用户凭据信息
- ✅ 建议在安全网络环境下使用
- ✅ 开源透明,代码可审计
eSIM-Tools/
├── 📄 index.html # 主页面
├── 🖥️ server.js # 本地开发服务器
├── 📦 package.json # 项目配置
├── 📂 src/ # 源代码
│ ├── 🇬🇧 giffgaff/ # Giffgaff工具
│ ├── 🇳🇱 simyo/ # Simyo工具
│ ├── 🎨 styles/ # 样式文件
│ └── ⚙️ js/ # JavaScript模块
├── 🌐 netlify/ # 无服务器函数
│ └── functions/ # API代理
├── 📚 docs/ # 项目文档
│ ├── guides/ # 使用指南
│ ├── reference/ # 参考文档
│ └── fixes/ # 问题修复
├── 🧪 tests/ # 测试文件
└── 🛠️ scripts/ # 部署脚本
- 🌟 推荐: 使用在线服务 esim.cosr.eu.org
- 🔧 Netlify Functions: 自动API代理
- 💻 本地代理: Node.js开发服务器
- 📖 详细说明: CORS解决方案文档
项目包含完整的测试套件:
- 单元测试 - 核心函数和模块测试
- 集成测试 - API调用和流程测试
- 端到端测试 - 完整用户流程验证
# 运行测试套件
npm test
# 在浏览器中测试
open tests/test_giffgaff_esim.html
open tests/test_simyo_esim.html
欢迎贡献代码和提出建议!
- 🍴 Fork项目仓库
- 🌿 创建功能分支 (
git checkout -b feature/AmazingFeature
) - 💾 提交更改 (
git commit -m 'Add AmazingFeature'
) - 📤 推送分支 (
git push origin feature/AmazingFeature
) - 🔃 创建Pull Request
- 遵循现有代码风格
- 添加必要的测试用例
- 更新相关文档
遇到问题或有建议?
- 本项目的所有代码除另有说明外,均按照 MIT License 发布。
- 本项目的README.MD,wiki等资源基于 CC BY-NC-SA 4.0 这意味着你可以拷贝、并再发行本项目的内容,
但是你将必须同样提供原作者信息以及协议声明。同时你也不能将本项目用于商业用途,按照我们狭义的理解
(增加附属条款),凡是任何盈利的活动皆属于商业用途。 - 请在遵守当地相关法律法规的前提下使用本项目。