mirror of
https://github.com/Silentely/eSIM-Tools.git
synced 2026-10-11 13:21:13 +08:00
- 简化 README.md 的标题和章节样式,移除冗余 emoji 图标,添加原生 ES6 模块架构说明,调整描述文字使其更简洁清晰 - 优化了四个语言版本的 QR Code API 文档(中英文 Giffgaff 和 Simyo),将原来的简单描述更新为详细的三级回退链说明,包含每个服务商的 5 超时机制和 LPA 字符串降级方案 - 在 docs/ARCHITECTURE.md 中新增模块依赖关系图和关键设计决策说明,补充 BFF 模式、无框架设计、中间件统一等架构要点 - 将英文用户指南中的视频和提示信息移至附录章节,改进文档阅读体验;删除中英文用户指南顶部的视频占位内容 - 修正 CORS_SOLUTION.md 中的脚本路径引用,添加 `scripts/` 前缀使其与实际文件结构一致 - 清理 SECURITY.md 中重复的 CSP 说明,精简为单条以 server.js 为基准的说明;在通知系统文档顶部增加快速摘要说明;在 CLAUDE.md 中补充缺失的 `cors.js` 相关文件引用
3.3 KiB
3.3 KiB
Simyo NL eSIM 工具 - 技术参考
基于 Simyo ESIM V2.postman_collection.json Postman 脚本构建的完整 eSIM 设备更换网页工具。
📁 文件说明
主要文件
src/simyo/simyo_modular.html- Simyo eSIM 设备更换工具(生产版本,模块化架构)tests/test_simyo_esim.html- 综合测试页面(开发/测试版本)
🔧 技术架构
前端技术栈
- HTML5 - 语义化结构
- CSS3 - 响应式设计,Bootstrap 5.3.0,Simyo 品牌配色
- JavaScript (ES6+) - 现代 JavaScript 特性
- Font Awesome 6.0.0 - 图标库
API 集成
- Simyo Sessions API - 用户认证和会话管理
- Simyo eSIM API - eSIM 配置获取和管理
- QR Code API - 二维码生成服务,三级回退链:
qrcode.show→quickchart.io→api.qrserver.com,单服务 5 秒超时,全部失败时显示 LPA 字符串供用户手动复制
关键 API 端点
const apiEndpoints = {
login: "https://appapi.simyo.nl/simyoapi/api/v1/sessions",
getEsim: "https://appapi.simyo.nl/simyoapi/api/v1/esim/get-by-customer",
confirmInstall: "https://appapi.simyo.nl/simyoapi/api/v1/esim/reorder-profile-installed",
qrcode: "https://qrcode.show/"
};
💰 保号服务
Simyo 提供保号服务,详细信息:
- 收款人: ING BANK N.V.
- IBAN:
NL19INGB0007811670 - 金额: 10 欧元起
- 备注: 您的 Simyo 号码(06 开头的完整号码)
📝 开发说明
核心组件架构
// 全局状态管理
const appState = {
sessionToken: "", // Simyo 会话令牌
activationCode: "", // eSIM 激活码
phoneNumber: "", // 用户手机号
password: "", // 用户密码
currentStep: 1 // 当前步骤
};
主要函数说明
mockValidatePhoneNumber()- 验证荷兰手机号格式createHeaders()- 生成 Simyo API 请求头showSection(stepNumber)- 显示指定步骤showStatus(element, message, type)- 显示状态信息generateQRCode(data)- 生成 eSIM 二维码,内部维护三级服务商回退链(qrcode.show→quickchart.io→api.qrserver.com),每个服务商 5 秒超时,回退时重置计时器,全部失败时展示 LPA 字符串供用户手动复制
API 调用示例
// 登录 Simyo 账户
const response = await fetch('https://appapi.simyo.nl/simyoapi/api/v1/sessions', {
method: 'POST',
headers: createHeaders(false),
body: JSON.stringify({
phoneNumber: '0613123712',
password: 'your_password'
})
});
// 获取 eSIM 信息
const esimResponse = await fetch('https://appapi.simyo.nl/simyoapi/api/v1/esim/get-by-customer', {
method: 'GET',
headers: createHeaders(true) // 包含会话令牌
});
🔄 与 Giffgaff 工具的差异
| 特性 | Simyo eSIM | Giffgaff eSIM |
|---|---|---|
| 认证方式 | 用户名密码登录 | OAuth 2.0 PKCE |
| MFA 验证 | 无需额外验证 | 邮件验证码 |
| API 复杂度 | 相对简单 | GraphQL + REST |
| 步骤数量 | 4 步流程 | 5 步流程 |
| 设备更换 | 支持专门流程 | 通过 SIM 交换 |
| 保号成本 | 10 欧元起 | 按正常套餐 |
文档版本: 1.1.0 最后更新: 2026-05-18 维护者: eSIM Tools Team