[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6HVYC5BSHJSFVETMAVSMYWD":3,"skill-same:01M6HVYC5BSHJSFVETMAVSMYWD":54},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":21,"linkOnly":22,"markdownContent":23,"markdownBody":24,"frontMatter":25,"refName":26,"commitSha":27,"skillDirectory":28,"forksCount":29,"repositoryHtmlUrl":30,"repositoryHomepageUrl":6,"ownerHtmlUrl":31,"ownerBlogUrl":6,"ownerDescription":32,"updatedAt":33,"install":34,"resources":47},"01M6HVYC5BSHJSFVETMAVSMYWD","request-sequence",null,"执行捐赠流程的三个顺序 HTTP 请求","eraserkason\u002Fauto_reverse","eraserkason","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F109597287?v=4","01M6HVXAR0JK9Q316JYMVAREY7","李世祥","01M6HVXAWMJB6M31J7XSQEFYHX",4,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Feraserkason\u002Fauto_reverse\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fdrafts\u002Fdraft-20260321014207011588\u002Fwp-reverse\u002Frequest-sequence\u002FSKILL.md",[],[19,20],"request sequence","http","2026-11-10 10:12:30",false,"---\nname: request-sequence\ndescription: 执行捐赠流程的三个顺序 HTTP 请求\n---\n\n按顺序执行三个 HTTP 请求。\n1.  请求1 (GET): 访问 \u002Fdonate-online 端点，获取包含 Gravity Forms 表单的 HTML 页面。从响应中提取两个关键值：`nonce` (用于表单验证) 和 `version_hash` (用于表单状态)。它们位于 `gform_ajax` 隐藏输入字段的 `hash` 参数中，以及 `validate_form_nonce` 变量中。\n2.  请求2 (POST): 向 \u002Fwp-admin\u002Fadmin-ajax.php 提交表单数据。使用 `multipart\u002Fform-data` 格式。必须包含从请求1获取的 `nonce` (作为 `nonce` 字段) 和 `version_hash` (作为 `version_hash` 字段)。其他字段模拟用户填写：捐赠类型、金额、姓名、邮箱等。`action` 设为 `gfstripe_validate_form`。此请求会验证表单并创建 Stripe Payment Intent。\n3.  请求3 (POST): 向 Stripe API 端点 (api.stripe.com) 发送支付确认请求。使用 `application\u002Fx-www-form-urlencoded` 格式。URL 路径包含从请求2响应中获取的 Payment Intent ID (`pi_...`)。请求体包含模拟的信用卡信息（卡号、CVC、有效期等）以及从请求2响应中获取的 `client_secret`。此请求旨在触发支付处理，通常因测试卡号而被拒绝。\n\n将请求2和请求3的完整响应（包括头部和正文）分别保存到 `log_request_2.json` 和 `log_request_3.json` 文件中。\n","按顺序执行三个 HTTP 请求。\n1.  请求1 (GET): 访问 \u002Fdonate-online 端点，获取包含 Gravity Forms 表单的 HTML 页面。从响应中提取两个关键值：`nonce` (用于表单验证) 和 `version_hash` (用于表单状态)。它们位于 `gform_ajax` 隐藏输入字段的 `hash` 参数中，以及 `validate_form_nonce` 变量中。\n2.  请求2 (POST): 向 \u002Fwp-admin\u002Fadmin-ajax.php 提交表单数据。使用 `multipart\u002Fform-data` 格式。必须包含从请求1获取的 `nonce` (作为 `nonce` 字段) 和 `version_hash` (作为 `version_hash` 字段)。其他字段模拟用户填写：捐赠类型、金额、姓名、邮箱等。`action` 设为 `gfstripe_validate_form`。此请求会验证表单并创建 Stripe Payment Intent。\n3.  请求3 (POST): 向 Stripe API 端点 (api.stripe.com) 发送支付确认请求。使用 `application\u002Fx-www-form-urlencoded` 格式。URL 路径包含从请求2响应中获取的 Payment Intent ID (`pi_...`)。请求体包含模拟的信用卡信息（卡号、CVC、有效期等）以及从请求2响应中获取的 `client_secret`。此请求旨在触发支付处理，通常因测试卡号而被拒绝。\n\n将请求2和请求3的完整响应（包括头部和正文）分别保存到 `log_request_2.json` 和 `log_request_3.json` 文件中。\n",{"name":5,"description":7},"main","648a79672cfe5acdf4878dc7c8fa09477b0c21ef","data\u002Fskills\u002Fdrafts\u002Fdraft-20260321014207011588\u002Fwp-reverse\u002Frequest-sequence",0,"https:\u002F\u002Fgithub.com\u002Feraserkason\u002Fauto_reverse","https:\u002F\u002Fgithub.com\u002Feraserkason","more attention , more practice","2026-03-24 21:55:18",{"source":8,"skillName":5,"commands":35,"prompt":45,"zipAvailable":46},[36,39,42],{"tool":37,"command":38},"npx","npx skills add eraserkason\u002Fauto_reverse --skill request-sequence",{"tool":40,"command":41},"bunx","bunx skills add eraserkason\u002Fauto_reverse --skill request-sequence",{"tool":43,"command":44},"pnpm","pnpm dlx skills add eraserkason\u002Fauto_reverse --skill request-sequence","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Feraserkason\u002Fauto_reverse\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fdrafts\u002Fdraft-20260321014207011588\u002Fwp-reverse\u002Frequest-sequence\u002FSKILL.md",true,[48],{"path":49,"resourceType":50,"resourceTypeDesc":51,"sizeBytes":52,"sourceHtmlUrl":53},"references\u002Frequest-details.md","REFERENCE","参考文档",689,"https:\u002F\u002Fgithub.com\u002Feraserkason\u002Fauto_reverse\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fdrafts\u002Fdraft-20260321014207011588\u002Fwp-reverse\u002Frequest-sequence\u002Freferences\u002Frequest-details.md",[55,64,74,84,91,99],{"skillNo":56,"name":57,"nameZh":6,"description":58,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":59,"categories":60,"keywords":61,"publishedAt":21},"01M6HVYRHN517WK3R2QH4ZNV6D","stripe-confirm","使用 Stripe 参数确认支付并判定成功、拒付或 3DS 挑战结果。","https:\u002F\u002Fgithub.com\u002Feraserkason\u002Fauto_reverse\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fpublished\u002Fskills-20260323125814591951\u002Fwp-donate\u002Fstripe-confirm\u002FSKILL.md",[],[62,63],"stripe","stripe confirm",{"skillNo":65,"name":66,"nameZh":6,"description":67,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":70,"publishedAt":21},"01M6HVYN942KDGF3Z06CB02C16","payment-intent","向带签名的 donateUrl 提交捐赠请求并获取 Stripe 支付意图信息。","https:\u002F\u002Fgithub.com\u002Feraserkason\u002Fauto_reverse\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fpublished\u002Fskills-20260323125814591951\u002Fwp-donate\u002Fpayment-intent\u002FSKILL.md",[],[71,72,73,62],"intent","payment","payment intent",{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":21},"01M6HVYKG4YGC41W8NN8JXZ580","form-view","请求 donation-form-view 并解析支付表单元数据。","https:\u002F\u002Fgithub.com\u002Feraserkason\u002Fauto_reverse\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fpublished\u002Fskills-20260323125814591951\u002Fwp-donate\u002Fform-view\u002FSKILL.md",[],[81,82,83],"view","form","form view",{"skillNo":85,"name":86,"nameZh":6,"description":87,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":88,"categories":89,"keywords":90,"publishedAt":21},"01M6HVYGJG28JPPQF7SQCJEG1F","discovery","访问 donate 入口页并提取后续流程所需的基础参数。","https:\u002F\u002Fgithub.com\u002Feraserkason\u002Fauto_reverse\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fpublished\u002Fskills-20260323125814591951\u002Fwp-donate\u002Fdiscovery\u002FSKILL.md",[],[86],{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":97,"publishedAt":21},"01M6HVYEH8AFJ5TJGQR3P3MG3C","wp-donate","分析并执行 donate 平台从入口页到 Stripe 确认支付的完整流程。","https:\u002F\u002Fgithub.com\u002Feraserkason\u002Fauto_reverse\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fpublished\u002Fskills-20260323125814591951\u002Fwp-donate\u002FSKILL.md",[],[98,62],"wp donate",{"skillNo":100,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":105,"publishedAt":21},"01M6HVY9D5JVVNVJQGP2BVAJVV","parameter-extraction","从 HTML 响应和 JSON 响应中提取关键参数","https:\u002F\u002Fgithub.com\u002Feraserkason\u002Fauto_reverse\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fdrafts\u002Fdraft-20260321014207011588\u002Fwp-reverse\u002Fparameter-extraction\u002FSKILL.md",[],[106,107,108,109],"extraction","parameter extraction","json","html"]