[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6HVYN942KDGF3Z06CB02C16":3,"skill-same:01M6HVYN942KDGF3Z06CB02C16":50},{"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":23,"linkOnly":24,"markdownContent":25,"markdownBody":26,"frontMatter":27,"refName":28,"commitSha":29,"skillDirectory":30,"forksCount":31,"repositoryHtmlUrl":32,"repositoryHomepageUrl":6,"ownerHtmlUrl":33,"ownerBlogUrl":6,"ownerDescription":34,"updatedAt":35,"install":36,"resources":49},"01M6HVYN942KDGF3Z06CB02C16","payment-intent",null,"向带签名的 donateUrl 提交捐赠请求并获取 Stripe 支付意图信息。","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\u002Fpublished\u002Fskills-20260323125814591951\u002Fwp-donate\u002Fpayment-intent\u002FSKILL.md",[],[19,20,21,22],"intent","payment","payment intent","stripe","2026-11-10 10:12:30",false,"---\nname: payment-intent\ndescription: 向带签名的 donateUrl 提交捐赠请求并获取 Stripe 支付意图信息。\n---\n\n处理第三步：向 donateUrl 发起 POST。\n\n输入来自 form-view 阶段，核心是带签名的 donateUrl。请求体通常需要包含捐赠表单数据，例如金额、币种、捐赠人信息、是否定期、匿名选项或其他表单必填项。具体字段以目标表单定义为准。\n\n目标提取字段：\n- clientSecret\n- returnUrl\n\n执行要求：\n1. donateUrl 必须直接使用上一步返回值，不要自行生成签名参数。\n2. 提交前先确认表单必填项齐全，否则后端可能不会创建 Stripe PaymentIntent 或 SetupIntent。\n3. 如果平台区分一次性捐赠和定期捐赠，要根据表单模式选择正确参数，不要混用。\n4. 响应中重点寻找 clientSecret 和 returnUrl；它们可能位于顶层 JSON，也可能位于 paymentIntent、stripe、checkout 或 actionResult 等嵌套对象中。\n5. 若返回错误，先区分是表单校验失败、签名失效、风控拦截还是后端支付创建失败。\n\n检查点：\n- clientSecret 非空，且格式上符合 Stripe secret 标识特征。\n- returnUrl 存在，并与当前站点流程匹配。\n- 如果后端同时返回 payment intent 状态，记录下来用于后续比对。\n\n常见问题处理：\n- donateUrl 过期时，通常需要重新从 form-view 获取新的签名地址。\n- 有些站点会要求 CSRF token、referer、cookie 或特定 header，缺失时会导致 POST 失败。\n- 如果响应中没有 clientSecret，但出现 requires_action 或 redirect 指示，需检查是否已提前进入下一步支付流程。\n\n本阶段产出应至少包含：clientSecret、returnUrl，以及失败时的错误消息与错误类型。\n","处理第三步：向 donateUrl 发起 POST。\n\n输入来自 form-view 阶段，核心是带签名的 donateUrl。请求体通常需要包含捐赠表单数据，例如金额、币种、捐赠人信息、是否定期、匿名选项或其他表单必填项。具体字段以目标表单定义为准。\n\n目标提取字段：\n- clientSecret\n- returnUrl\n\n执行要求：\n1. donateUrl 必须直接使用上一步返回值，不要自行生成签名参数。\n2. 提交前先确认表单必填项齐全，否则后端可能不会创建 Stripe PaymentIntent 或 SetupIntent。\n3. 如果平台区分一次性捐赠和定期捐赠，要根据表单模式选择正确参数，不要混用。\n4. 响应中重点寻找 clientSecret 和 returnUrl；它们可能位于顶层 JSON，也可能位于 paymentIntent、stripe、checkout 或 actionResult 等嵌套对象中。\n5. 若返回错误，先区分是表单校验失败、签名失效、风控拦截还是后端支付创建失败。\n\n检查点：\n- clientSecret 非空，且格式上符合 Stripe secret 标识特征。\n- returnUrl 存在，并与当前站点流程匹配。\n- 如果后端同时返回 payment intent 状态，记录下来用于后续比对。\n\n常见问题处理：\n- donateUrl 过期时，通常需要重新从 form-view 获取新的签名地址。\n- 有些站点会要求 CSRF token、referer、cookie 或特定 header，缺失时会导致 POST 失败。\n- 如果响应中没有 clientSecret，但出现 requires_action 或 redirect 指示，需检查是否已提前进入下一步支付流程。\n\n本阶段产出应至少包含：clientSecret、returnUrl，以及失败时的错误消息与错误类型。\n",{"name":5,"description":7},"main","648a79672cfe5acdf4878dc7c8fa09477b0c21ef","data\u002Fskills\u002Fpublished\u002Fskills-20260323125814591951\u002Fwp-donate\u002Fpayment-intent",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":37,"prompt":47,"zipAvailable":48},[38,41,44],{"tool":39,"command":40},"npx","npx skills add eraserkason\u002Fauto_reverse --skill payment-intent",{"tool":42,"command":43},"bunx","bunx skills add eraserkason\u002Fauto_reverse --skill payment-intent",{"tool":45,"command":46},"pnpm","pnpm dlx skills add eraserkason\u002Fauto_reverse --skill payment-intent","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Feraserkason\u002Fauto_reverse\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fpublished\u002Fskills-20260323125814591951\u002Fwp-donate\u002Fpayment-intent\u002FSKILL.md",true,[],[51,59,69,76,84,93],{"skillNo":52,"name":53,"nameZh":6,"description":54,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":55,"categories":56,"keywords":57,"publishedAt":23},"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",[],[22,58],"stripe confirm",{"skillNo":60,"name":61,"nameZh":6,"description":62,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":63,"categories":64,"keywords":65,"publishedAt":23},"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",[],[66,67,68],"view","form","form view",{"skillNo":70,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":75,"publishedAt":23},"01M6HVYGJG28JPPQF7SQCJEG1F","discovery","访问 donate 入口页并提取后续流程所需的基础参数。","https:\u002F\u002Fgithub.com\u002Feraserkason\u002Fauto_reverse\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fpublished\u002Fskills-20260323125814591951\u002Fwp-donate\u002Fdiscovery\u002FSKILL.md",[],[71],{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":23},"01M6HVYEH8AFJ5TJGQR3P3MG3C","wp-donate","分析并执行 donate 平台从入口页到 Stripe 确认支付的完整流程。","https:\u002F\u002Fgithub.com\u002Feraserkason\u002Fauto_reverse\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fpublished\u002Fskills-20260323125814591951\u002Fwp-donate\u002FSKILL.md",[],[83,22],"wp donate",{"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":23},"01M6HVYC5BSHJSFVETMAVSMYWD","request-sequence","执行捐赠流程的三个顺序 HTTP 请求","https:\u002F\u002Fgithub.com\u002Feraserkason\u002Fauto_reverse\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fdrafts\u002Fdraft-20260321014207011588\u002Fwp-reverse\u002Frequest-sequence\u002FSKILL.md",[],[91,92],"request sequence","http",{"skillNo":94,"name":95,"nameZh":6,"description":96,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":99,"publishedAt":23},"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",[],[100,101,102,103],"extraction","parameter extraction","json","html"]