diff --git a/Giffgaff_eSIM.json b/Giffgaff_eSIM.json new file mode 100644 index 0000000..d25227a --- /dev/null +++ b/Giffgaff_eSIM.json @@ -0,0 +1,605 @@ +{ + "info": { + "_postman_id": "3c9f96d5-1cf8-4e11-b5ec-adfbbb2ba17a", + "name": "Giffgaff转eSIM", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "5019143" + }, + "item": [ + { + "name": "1.发送认证邮件 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": "2.输入邮件验证码 Verify Email code", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "pm.collectionVariables.set(\"email_signature\", pm.response.json().signature);" + ], + "type": "text/javascript" + } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "pm.collectionVariables.set(\"email_code\", pm.request.url.query.get(\"code\"));" + ], + "type": "text/javascript" + } + } + ], + "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=159804", + "protocol": "https", + "host": [ + "id", + "giffgaff", + "com" + ], + "path": [ + "v4", + "mfa", + "validation" + ], + "query": [ + { + "key": "code", + "value": "159804" + } + ] + } + }, + "response": [] + }, + { + "name": "3.获取会员ID Get MemberID", + "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": "4.预订eSIM Reserve eSIM", + "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" + } + } + ], + "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 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": "5.执行交换eSIM Swap eSIM", + "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": "6.获取eSIM信息 Get eSIM", + "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": "7.获取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": "8.生成eSIM二维码 Get eSIM QRCode", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "https://api.qrserver.com/v1/create-qr-code/?data={{lpa_string}}&size=200x200", + "protocol": "https", + "host": [ + "api", + "qrserver", + "com" + ], + "path": [ + "v1", + "create-qr-code", + "" + ], + "query": [ + { + "key": "data", + "value": "{{lpa_string}}" + }, + { + "key": "size", + "value": "200x200" + } + ] + } + }, + "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": "" + } + ] +} \ No newline at end of file