惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
博客园 - 【当耐特】
Cyberwarzone
Cyberwarzone
B
Blog
U
Unit 42
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
WordPress大学
WordPress大学
美团技术团队
Hugging Face - Blog
Hugging Face - Blog
大猫的无限游戏
大猫的无限游戏
博客园 - 聂微东
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
博客园 - 叶小钗
F
Full Disclosure
Microsoft Azure Blog
Microsoft Azure Blog
Recorded Future
Recorded Future
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
小众软件
小众软件
云风的 BLOG
云风的 BLOG
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Cisco Talos Blog
Cisco Talos Blog
阮一峰的网络日志
阮一峰的网络日志
C
CERT Recently Published Vulnerability Notes
F
Fortinet All Blogs
C
Cyber Attacks, Cyber Crime and Cyber Security
C
Cisco Blogs
The Hacker News
The Hacker News
Know Your Adversary
Know Your Adversary
S
Securelist
S
Schneier on Security
P
Privacy International News Feed
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
AWS News Blog
AWS News Blog
J
Java Code Geeks
T
The Exploit Database - CXSecurity.com
The Last Watchdog
The Last Watchdog
S
Secure Thoughts
C
Cybersecurity and Infrastructure Security Agency CISA
H
Heimdal Security Blog
博客园 - Franky
P
Palo Alto Networks Blog
PCI Perspectives
PCI Perspectives
T
Tailwind CSS Blog
IT之家
IT之家
Engineering at Meta
Engineering at Meta
Latest news
Latest news
P
Proofpoint News Feed
量子位
Apple Machine Learning Research
Apple Machine Learning Research
K
Kaspersky official blog

AirTouchの小站

DNSMgr——聚合管理所有域名DNS解析+自动续签SSL证书并部署 | AirTouchの小站 雨云香港服务器简单测评 | AirTouchの小站 七牛云 AI 狂送 token 实测到底怎么样 | AirTouchの小站 记一次博客被攻击 | AirTouchの小站 给你的 Artalk 评论区配置验证码和垃圾评论检测 | AirTouchの小站 抓紧上车!免费 E3 开发者账号又来了! | AirTouchの小站 Vercel & Cloudflare Worker 项目推荐(2) | AirTouchの小站 用 Zmail 搭建自己的临时邮箱 | AirTouchの小站 IPv6反解域名?手把手带你搞 | AirTouchの小站 AirTouchの小站 AirTouchの小站 AirTouchの小站 AirTouchの小站 AirTouchの小站 macOS Tahoe 26中Electron架构卡顿的临时解决方案 | AirTouchの小站 用Obsidian插件增强Stellar写作体验 | AirTouchの小站 复习一下最小生成树 | AirTouchの小站 2025苹果秋季发布会亮点总结 | AirTouchの小站 分享几个artalk邮件通知模板 | AirTouchの小站 博客的图片应该存哪啊? | AirTouchの小站 Pic Smaller——自部署压缩图片的利器 | AirTouchの小站 企业微信的自定义域名邮箱太香了 | AirTouchの小站 所有道听途说,终获眼见为实 | AirTouchの小站 修复Vercel部署hexo导致文章的更新时间错误 | AirTouchの小站 jsDelivr国内公益加速镜像分享 | AirTouchの小站 搭建自己的busuanzi访问量统计服务 | AirTouchの小站 用Vercel和Netlify反代你的网站 | AirTouchの小站 用EdgeOne配置反向代理 丢掉丑陋的端口号 | AirTouchの小站 拼好鸽香港4区nat机器:月付3.5还要啥自行车! | AirTouchの小站 博客的新域名——xsl.im | AirTouchの小站 如何搭建自己的EdgeOne优选域名 | AirTouchの小站 用EdgeOne加速CloudflareR2存储桶 | AirTouchの小站 EdgeOne自动化上传证书并部署 | AirTouchの小站 你需要把PicGo换成PicList了! | AirTouchの小站 Cursor屏蔽中国大陆?给你解决方案! | AirTouchの小站 使用 Cloudflare Workers 自动获取必应每日壁纸 | AirTouchの小站 题解:P9509『STA - R3』Aulvwc | AirTouchの小站 题解:P11140 [APC001] E - Linear Map | AirTouchの小站 Phira多人联机服务器搭建&使用教程 | AirTouchの小站 腾讯云EdgeOne免费CDN加速你的网站 | AirTouchの小站 Hexo 博客收录指南 | AirTouchの小站 题解:P12646 [KOI 2024 Round 1] 升序 | AirTouchの小站 Cloudflare CDN优选IP加速你的网站 | AirTouchの小站 AirTouchの小站 AirTouchの小站 Hexo Stellar 主题装修笔记 | AirTouchの小站 AirTouchの小站 AirTouchの小站 AirTouchの小站
Giffgaff在线生成esim二维码 | Giffgaff sim转eSIM指南 | AirTouchの小站
AirTouch, me@airtouch.top · 2025-06-23 · via AirTouchの小站
json
{
	"info": {
		"_postman_id": "37622a20-b13e-437d-8f76-a0cdb51b5c4f",
		"name": "Giffgaff",
		"description": "一個為 Giffgaff 在不受支持的設備上生成 eSIM 二維碼的工具\n\n感謝:[https://www.nodeseek.com/post-76162-1](https://www.nodeseek.com/post-76162-1)\n\n基於原版更新設備模擬代號,稍微修改 QRCode 生成 API\n\n教程:[https://notion.mykeyvans.space/article/giffgaff-esim](https://notion.mykeyvans.space/article/giffgaff-esim)\\-diy",
		"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
		"_exporter_id": "34239733"
	},
	"item": [
		{
			"name": "發送認證郵件 Send Email Verification",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"pm.collectionVariables.set(\"email_code_ref\", pm.response.json().ref);"
						],
						"type": "text/javascript"
					}
				}
			],
			"request": {
				"method": "POST",
				"header": [],
				"body": {
					"mode": "raw",
					"raw": "{\r\n\t\"source\": \"esim\",\r\n\t\"preferredChannels\": [\"EMAIL\"]\r\n}",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://id.giffgaff.com/v4/mfa/challenge/me",
					"protocol": "https",
					"host": [
						"id",
						"giffgaff",
						"com"
					],
					"path": [
						"v4",
						"mfa",
						"challenge",
						"me"
					]
				}
			},
			"response": []
		},
		{
			"name": "檢查郵件認證碼 Verify Email code",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"pm.collectionVariables.set(\"email_signature\", pm.response.json().signature);"
						],
						"type": "text/javascript",
						"packages": {}
					}
				},
				{
					"listen": "prerequest",
					"script": {
						"exec": [
							"pm.collectionVariables.set(\"email_code\", pm.request.url.query.get(\"code\"));"
						],
						"type": "text/javascript",
						"packages": {}
					}
				}
			],
			"request": {
				"method": "POST",
				"header": [],
				"body": {
					"mode": "raw",
					"raw": "{\r\n\t\"ref\": \"{{email_code_ref}}\",\r\n\t\"code\": \"{{email_code}}\"\r\n}",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://id.giffgaff.com/v4/mfa/validation?code=",
					"protocol": "https",
					"host": [
						"id",
						"giffgaff",
						"com"
					],
					"path": [
						"v4",
						"mfa",
						"validation"
					],
					"query": [
						{
							"key": "code",
							"value": ""
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "取得會員資訊 Get Member",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"pm.collectionVariables.set(\"memberId\", pm.response.json().data.memberProfile.id);\r",
							""
						],
						"type": "text/javascript"
					}
				},
				{
					"listen": "prerequest",
					"script": {
						"exec": [
							"console.log(pm.collectionVariables.get(\"email_signature\"))\r",
							"if(pm.collectionVariables.get(\"email_signature\")==null || pm.collectionVariables.get(\"email_signature\")== \"\"){\r",
							"    console.error(\"Email 尚未驗證\");\r",
							"    throw new Error(\"Email 尚未驗證\");\r",
							"}"
						],
						"type": "text/javascript"
					}
				}
			],
			"request": {
				"method": "POST",
				"header": [],
				"body": {
					"mode": "graphql",
					"graphql": {
						"query": "query getMemberProfileAndSim {\r\n  memberProfile {\r\n    id\r\n    memberName\r\n    __typename\r\n  }\r\n  sim {\r\n    phoneNumber\r\n    status\r\n    __typename\r\n  }\r\n}\r\n",
						"variables": ""
					}
				},
				"url": {
					"raw": "https://publicapi.giffgaff.com/gateway/graphql",
					"protocol": "https",
					"host": [
						"publicapi",
						"giffgaff",
						"com"
					],
					"path": [
						"gateway",
						"graphql"
					]
				}
			},
			"response": []
		},
		{
			"name": "申請 SIM卡 Reserve SIM",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"pm.collectionVariables.set(\"esim_ssn\", pm.response.json().data.reserveESim.esim.ssn);\r",
							"pm.collectionVariables.set(\"esim_activation_code\", pm.response.json().data.reserveESim.esim.activationCode);\r",
							""
						],
						"type": "text/javascript",
						"packages": {}
					}
				}
			],
			"request": {
				"method": "POST",
				"header": [
					{
						"key": "x-gg-app-os",
						"value": "Android",
						"type": "text"
					},
					{
						"key": "x-gg-app-os-version",
						"value": "14",
						"type": "text"
					},
					{
						"key": "x-gg-app-build-number",
						"value": "763",
						"type": "text"
					},
					{
						"key": "x-gg-app-device-manufacturer",
						"value": "Google",
						"type": "text"
					},
					{
						"key": "x-gg-app-device-model",
						"value": "Pixel8",
						"type": "text"
					},
					{
						"key": "x-gg-app-version",
						"value": "14.0.8",
						"type": "text"
					}
				],
				"body": {
					"mode": "graphql",
					"graphql": {
						"query": "mutation reserveESim($input: ESimReservationInput!) {\r\n  reserveESim: reserveESim(input: $input) {\r\n    id\r\n    memberId\r\n    reservationStartDate\r\n    reservationEndDate\r\n    status\r\n    esim {\r\n      ssn\r\n      activationCode\r\n      deliveryStatus\r\n      associatedMemberId\r\n      __typename\r\n    }\r\n    __typename\r\n  }\r\n}\r\n",
						"variables": "{\r\n    \"input\": {\r\n\t\t\"memberId\": \"{{memberId}}\",\r\n\t\t\"userIntent\": \"SWITCH\"\r\n\t}\r\n}"
					}
				},
				"url": {
					"raw": "https://publicapi.giffgaff.com/gateway/graphql",
					"protocol": "https",
					"host": [
						"publicapi",
						"giffgaff",
						"com"
					],
					"path": [
						"gateway",
						"graphql"
					]
				}
			},
			"response": []
		},
		{
			"name": "申請交換eSIM Swap SIM",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							""
						],
						"type": "text/javascript"
					}
				},
				{
					"listen": "prerequest",
					"script": {
						"exec": [
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"request": {
				"method": "POST",
				"header": [
					{
						"key": "x-gg-app-os",
						"value": "iOS",
						"type": "text"
					},
					{
						"key": "x-gg-app-os-version",
						"value": "14",
						"type": "text"
					},
					{
						"key": "x-gg-app-build-number",
						"value": "722",
						"type": "text"
					},
					{
						"key": "x-gg-app-device-manufacturer",
						"value": "apple",
						"type": "text"
					},
					{
						"key": "x-gg-app-device-model",
						"value": "iphone15",
						"type": "text"
					},
					{
						"key": "x-gg-app-version",
						"value": "13.21.2",
						"type": "text"
					}
				],
				"body": {
					"mode": "graphql",
					"graphql": {
						"query": "mutation SwapSim($activationCode: String!, $mfaSignature: String!) {\r\n  swapSim(activationCode: $activationCode, mfaSignature: $mfaSignature) {\r\n    old {\r\n      ssn\r\n      activationCode\r\n      __typename\r\n    }\r\n    new {\r\n      ssn\r\n      activationCode\r\n      __typename\r\n    }\r\n    __typename\r\n  }\r\n}\r\n",
						"variables": "{\r\n\t\"activationCode\": \"{{esim_activation_code}}\",\r\n\t\"mfaSignature\": \"{{email_signature}}\"\r\n}"
					}
				},
				"url": {
					"raw": "https://publicapi.giffgaff.com/gateway/graphql",
					"protocol": "https",
					"host": [
						"publicapi",
						"giffgaff",
						"com"
					],
					"path": [
						"gateway",
						"graphql"
					]
				}
			},
			"response": []
		},
		{
			"name": "取得eSIM Get ESIMs",
			"request": {
				"method": "POST",
				"header": [
					{
						"key": "x-gg-app-os",
						"value": "iOS",
						"type": "text"
					},
					{
						"key": "x-gg-app-os-version",
						"value": "14",
						"type": "text"
					},
					{
						"key": "x-gg-app-build-number",
						"value": "722",
						"type": "text"
					},
					{
						"key": "x-gg-app-device-manufacturer",
						"value": "apple",
						"type": "text"
					},
					{
						"key": "x-gg-app-device-model",
						"value": "iphone15",
						"type": "text"
					},
					{
						"key": "x-gg-app-version",
						"value": "13.21.2",
						"type": "text"
					}
				],
				"body": {
					"mode": "graphql",
					"graphql": {
						"query": "query getESims($deliveryStatus: ESimDeliveryStatus!) {\r\n  eSims(deliveryStatus: $deliveryStatus) {\r\n    ssn\r\n    __typename\r\n  }\r\n}\r\n",
						"variables": "{\r\n\t\"deliveryStatus\": \"DOWNLOADABLE\"\r\n}"
					}
				},
				"url": {
					"raw": "https://publicapi.giffgaff.com/gateway/graphql",
					"protocol": "https",
					"host": [
						"publicapi",
						"giffgaff",
						"com"
					],
					"path": [
						"gateway",
						"graphql"
					]
				}
			},
			"response": []
		},
		{
			"name": "取得eSIM下載碼 Get ESIM Token",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"pm.collectionVariables.set(\"lpa_string\", pm.response.json().data.eSimDownloadToken.lpaString);"
						],
						"type": "text/javascript"
					}
				}
			],
			"request": {
				"method": "POST",
				"header": [
					{
						"key": "x-gg-app-os",
						"value": "iOS",
						"type": "text"
					},
					{
						"key": "x-gg-app-os-version",
						"value": "14",
						"type": "text"
					},
					{
						"key": "x-gg-app-build-number",
						"value": "722",
						"type": "text"
					},
					{
						"key": "x-gg-app-device-manufacturer",
						"value": "apple",
						"type": "text"
					},
					{
						"key": "x-gg-app-device-model",
						"value": "iphone15",
						"type": "text"
					},
					{
						"key": "x-gg-app-version",
						"value": "13.21.2",
						"type": "text"
					}
				],
				"body": {
					"mode": "graphql",
					"graphql": {
						"query": "query eSimDownloadToken($ssn: String!) {\r\n  eSimDownloadToken(ssn: $ssn) {\r\n    id\r\n    host\r\n    matchingId\r\n    lpaString\r\n    __typename\r\n  }\r\n}\r\n",
						"variables": "{\r\n\t\"ssn\": \"{{esim_ssn}}\"\r\n}"
					}
				},
				"url": {
					"raw": "https://publicapi.giffgaff.com/gateway/graphql",
					"protocol": "https",
					"host": [
						"publicapi",
						"giffgaff",
						"com"
					],
					"path": [
						"gateway",
						"graphql"
					]
				}
			},
			"response": []
		},
		{
			"name": "產生QRCode Get ESIM QRCode",
			"request": {
				"method": "POST",
				"header": [
					{
						"key": "Accept",
						"value": "image/svg+xml",
						"type": "text"
					},
					{
						"key": "X-QR-Width",
						"value": "400",
						"type": "text",
						"disabled": true
					},
					{
						"key": "X-QR-Height",
						"value": "400",
						"type": "text",
						"disabled": true
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{{lpa_string}}",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://qrcode.show/",
					"protocol": "https",
					"host": [
						"qrcode",
						"show"
					],
					"path": [
						""
					]
				}
			},
			"response": []
		}
	],
	"auth": {
		"type": "oauth2",
		"oauth2": [
			{
				"key": "refreshRequestParams",
				"value": [],
				"type": "any"
			},
			{
				"key": "tokenRequestParams",
				"value": [],
				"type": "any"
			},
			{
				"key": "authRequestParams",
				"value": [],
				"type": "any"
			},
			{
				"key": "tokenName",
				"value": "Giffgaff",
				"type": "string"
			},
			{
				"key": "challengeAlgorithm",
				"value": "S256",
				"type": "string"
			},
			{
				"key": "state",
				"value": "cd34c1ef-f1c7-4d5c-8030-bf9753a2ccd5",
				"type": "string"
			},
			{
				"key": "scope",
				"value": "read",
				"type": "string"
			},
			{
				"key": "redirect_uri",
				"value": "giffgaff://auth/callback/",
				"type": "string"
			},
			{
				"key": "grant_type",
				"value": "authorization_code_with_pkce",
				"type": "string"
			},
			{
				"key": "clientSecret",
				"value": "OQv4cfiyol8TvCW4yiLGj0c1AkTR3N2JfRzq7XGqMxk=",
				"type": "string"
			},
			{
				"key": "clientId",
				"value": "4a05bf219b3985647d9b9a3ba610a9ce",
				"type": "string"
			},
			{
				"key": "authUrl",
				"value": "https://id.giffgaff.com/auth/oauth/authorize",
				"type": "string"
			},
			{
				"key": "addTokenTo",
				"value": "header",
				"type": "string"
			},
			{
				"key": "client_authentication",
				"value": "header",
				"type": "string"
			},
			{
				"key": "accessTokenUrl",
				"value": "https://id.giffgaff.com/auth/oauth/token",
				"type": "string"
			}
		]
	},
	"event": [
		{
			"listen": "prerequest",
			"script": {
				"type": "text/javascript",
				"exec": [
					""
				]
			}
		},
		{
			"listen": "test",
			"script": {
				"type": "text/javascript",
				"exec": [
					""
				]
			}
		}
	],
	"variable": [
		{
			"key": "memberId",
			"value": ""
		},
		{
			"key": "esim_ssn",
			"value": ""
		},
		{
			"key": "esim_activation_code",
			"value": ""
		},
		{
			"key": "email_code_ref",
			"value": ""
		},
		{
			"key": "email_signature",
			"value": ""
		},
		{
			"key": "lpa_string",
			"value": ""
		},
		{
			"key": "email_code",
			"value": ""
		}
	]
}

⚠️请在在转换时间内进行下述操作,否则会失败 giffgaff 转换 esim 只可以在每天的英国时间 4:30AM - 9:30PM,对应中国时间夏季为上午11:30到翌日凌晨4:30,冬季为中午12:30到翌日凌晨5:30

第一个步骤是 發送認證郵件 / Send Email Verification,切换到标签页点 Send,这个时候你的邮箱会收到另一个新的验证码,把这个验证码复制下来

到这里,即可宣布你已经成功在线获得了完整的 Giffgaff eSIM,你可以复制红框中以 LPA:1$ 开头的字符,添加到你的 eSIM 手机或第三方设备之中(如 esim.me / xesim.cc)等