@alipay/alipay-aipay 1.6.9 → 1.7.0-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alipay/alipay-aipay",
3
- "version": "1.6.9",
3
+ "version": "1.7.0-beta",
4
4
  "description": "支付宝 AI 付接入 Skill 安装包 - 优先安装 Agent Skill,并在 macOS/Linux 后台准备用户级 CLI 工具",
5
5
  "type": "module",
6
6
  "bin": {
package/skill/VERSION CHANGED
@@ -1 +1 @@
1
- 1.6.9
1
+ 1.7.0-beta
@@ -330,6 +330,8 @@ curl -sL "<当前契约 sourceUrl 中的官方页面>"
330
330
 
331
331
  **沙箱摘要展示入口**:只有 `sandboxConfigState=READY`、本步骤的代码实现和支付配置后置校验都已完成,才允许对客展示沙箱环境配置。待配置状态跳过本入口,不另写摘要或失败话术。Unix/macOS/Linux 从本 flow 所在目录执行:
332
332
 
333
+ `environmentRows` 的具体值严禁编造、猜测、补全,禁止使用示例值、占位值或历史对话值替代本轮已校验配置。Unix/macOS/Linux 必须由登记脚本直接读取同一配置并生成四行,Agent 不得手填或改写;Windows 的应用 ID 和买家测试账号必须取自步骤 1/3 已校验的同一本机配置,两个密码行的固定保存提示仅在实际确认密码已写入该文件后使用。任一必需字段缺失、为空、配置无法读取或来源无法确认时,停止摘要展示并按既有配置失败分支处理,禁止为凑齐四行补值。
334
+
333
335
  ```bash
334
336
  node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" sandbox summary "<productType>" "<规范化项目路径>" "<已确认服务端语言>" --agent-platform "<AGENT_PLATFORM>" --session-id "<SESSION_ID>"
335
337
  ```
@@ -342,7 +344,7 @@ Windows 从项目实际读取的同一本机配置构造不含密码和密钥原
342
344
  node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" integration-message windows-sandbox-summary --product-name "$PRODUCT_NAME" --config-path "$CONFIG_PATH" --environment-rows "$ENVIRONMENT_ROWS" --telemetry-run-id "$RUN_ID" --telemetry-history-count "$HISTORY_COUNT" --agent-platform "<AGENT_PLATFORM>" --session-id "<SESSION_ID>"
343
345
  ```
344
346
 
345
- Windows 的 `CONFIG_PATH` 必须是步骤 1/3 已校验的实际本机配置绝对路径;`ENVIRONMENT_ROWS` 只包含实际取得的非敏感应用、商家、买家和沙箱标识,缺失可选项直接省略。两个 renderer 任一失败都按摘要展示失败处理,禁止手写补齐。
347
+ Windows 的 `CONFIG_PATH` 必须是步骤 1/3 已校验的实际本机配置绝对路径;`ENVIRONMENT_ROWS` 固定依次为“沙箱支付宝应用ID(appID)”“沙箱买家测试账号”“沙箱买家登录密码”“沙箱买家支付密码”四行。前两行使用实际沙箱应用 ID 和买家登录账号;两个密码行只展示“已写入本地配置文件,默认不在对话中展开”,不得传入密码原文。不追加 pid、商家或买家 userId、sandboxId。两个 renderer 任一失败都按摘要展示失败处理,禁止手写补齐。
346
348
 
347
349
  <!-- ALIPAY_AIPAY_PRODUCT:webpay:START -->
348
350
  **网站支付回跳默认规则**:用户未特别说明时,默认实现支付后同步回跳。`return_url` 必须来自已确认目标项目的实际协议、主机、端口和路由,禁止保留 `your-domain.com`、示例端口或猜测路径。项目没有结果页时,在当前技术栈内新增与既有 UI 一致的 GET 回跳路由和页面。用户已明确不需要同步回跳时,直接按关闭分支验收,不增加第二次确认;仍必须保留异步通知、交易查询和商户订单查询页。用户未明确关闭但代码缺少 `return_url` 时,必须修复为默认同步回跳分支,不得要求用户接受遗漏。验收结论必须从实际代码重新检查,不接受调用方自报 `returnMode`。
@@ -141,13 +141,15 @@ Unix/macOS/Linux 创建阶段把实际本机配置路径和 `FLOW:SANDBOX_CONFIG
141
141
  node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" integration-message windows-sandbox-summary --product-name "$PRODUCT_NAME" --config-path "$CONFIG_PATH" --environment-rows "$ENVIRONMENT_ROWS" --agent-platform "<AGENT_PLATFORM>" --session-id "<SESSION_ID>"
142
142
  ```
143
143
 
144
- 摘要行按当前分支的实际来源依次包含应用 `appId/pid`、商家账号、买家账号及沙箱标识;账号未返回的可选字段直接省略,禁止编造。只有 Unix/macOS/Linux 快速沙箱工具实际返回且已校验的沙箱登录密码和支付密码可以进入摘要行;Windows 手工沙箱虽然允许用户在资料收集时提供当前沙箱密码,Agent 仍不得在摘要或后续回复中复述,只展示非敏感标识和本机保存提示。两类例外都不得扩展到生产环境账号、私钥或密码。
144
+ `environmentRows` 的具体值严禁编造、猜测、补全,禁止使用示例值、占位值或历史对话值替代本轮已校验配置。Unix/macOS/Linux 必须由登记脚本直接读取同一配置并生成四行,Agent 不得手填或改写;Windows 的应用 ID 和买家测试账号必须取自步骤 1/3 已校验的同一本机配置,两个密码行的固定保存提示仅在实际确认密码已写入该文件后使用。任一必需字段缺失、为空、配置无法读取或来源无法确认时,停止摘要展示并按既有配置失败分支处理,禁止为凑齐四行补值。
145
+
146
+ 摘要动态行固定依次为“沙箱支付宝应用ID(appID)”“沙箱买家测试账号”“沙箱买家登录密码”“沙箱买家支付密码”。Unix/macOS/Linux 分别从已校验配置的 `appIds[0].appId`、`sandboxAccounts.user.email`、`sandboxAccounts.user.logonPassword`、`sandboxAccounts.user.payPassword` 取值;不追加 pid、商家或买家 userId、sandboxId。只有 Unix/macOS/Linux 快速沙箱工具实际返回且已校验的沙箱登录密码和支付密码可以进入摘要行;Windows 前两行使用实际沙箱应用 ID 和买家登录账号,两个密码行只展示“已写入本地配置文件,默认不在对话中展开”,不得传入密码原文。两类例外都不得扩展到生产环境账号、私钥或密码。
145
147
 
146
148
  renderer 固定输出唯一摘要表、密钥字段已落盘提示和“配置不等于测试通过”的边界。禁止另写字段核对表、独立校验结论,或把表名、前后提示改成“沙箱环境校验通过”“沙箱测试通过”“沙箱环境测试通过”。
147
149
 
148
150
  ### 5.3 配置准备完成后提示(卡点)
149
151
 
150
- `sandbox.environment.summary` 后立即渲染 `sandbox.environment.reminder`:Unix/macOS/Linux 由 `sandbox_config.sh summary` 使用 `DEFAULT`,Windows 使用上方 `WINDOWS` 命令。该消息只说明测试资金边界和配置位置;安全控制由脚本执行,生产配置与上线要求由步骤 7 的 `integration.safety.closeout` 输出。创建阶段不渲染,不维护文案副本。
152
+ `sandbox.environment.summary` 后立即渲染 `sandbox.environment.reminder`:Unix/macOS/Linux 由 `sandbox_config.sh summary` 使用 `DEFAULT`,Windows 使用上方 `WINDOWS` 命令。该消息说明测试资金边界和配置位置;`DEFAULT` 另提醒代码开发阶段自动配置沙箱,正式上线前由用户替换为产品开通流程取得的线上应用配置。安全控制由脚本执行,详细生产配置与上线要求由步骤 7 的 `integration.safety.closeout` 输出。创建阶段不渲染,不维护文案副本。
151
153
 
152
154
  ### 5.4 沙箱对客展示白名单
153
155
 
@@ -155,9 +157,9 @@ renderer 固定输出唯一摘要表、密钥字段已落盘提示和“配置
155
157
 
156
158
  | 场景 | 可对客展示 | 禁止对客展示 |
157
159
  |---|---|---|
158
- | Unix/macOS/Linux 快速沙箱摘要 | `sandbox_config.sh summary` 实际渲染的应用 `appId/pid`、商家 `userId`、买家 `userId/email/logonPassword/payPassword`、`sandboxId`、配置文件目录 | `appPrivateKey`、`appPrivatePkcsKey`、`alipayPublicKey`、`appPublicKey`、原始 `.alipay-sandbox.json`、完整 MCP 响应 |
160
+ | Unix/macOS/Linux 快速沙箱摘要 | `sandbox_config.sh summary` 实际渲染的应用 `appId`、买家 `email/logonPassword/payPassword`、配置文件目录 | `appPrivateKey`、`appPrivatePkcsKey`、`alipayPublicKey`、`appPublicKey`、原始 `.alipay-sandbox.json`、完整 MCP 响应 |
159
161
  | Unix/macOS/Linux 网站支付付款体验 | 已校验的沙箱买家登录账号、登录密码、支付密码,以及实际支付页面地址和启动命令 | 商家密码、任何公钥/私钥原文、完整支付表单、签名串 |
160
- | Windows 手工沙箱 | 配置文件目录、非敏感应用/账号标识、官方控制台获取与本机配置完成提示 | 用户提供的应用私钥、支付宝公钥、应用公钥、沙箱账号密码原文 |
162
+ | Windows 手工沙箱 | 配置文件目录、实际沙箱应用 ID 和买家登录账号、两个密码的本机保存提示、官方控制台获取与本机配置完成提示 | 用户提供的应用私钥、支付宝公钥、应用公钥、沙箱账号密码原文 |
161
163
  | 按量付费自动联调 | 受控结论、付款链接和沙箱买家可选体验入口 | `Payment-Proof`、`Payment-Validation` 原文、完整收银请求、临时产物路径中的敏感内容 |
162
164
 
163
165
  只有 `sandboxCredential` 类型变量可以承载快速沙箱买家登录密码和支付密码;该例外不适用于生产账号、生产密码、应用私钥、公钥、token、签名串或 Payment-Proof。
@@ -230,10 +230,10 @@ render_summary() {
230
230
  rows=$(echo "$data" | jq -r '
231
231
  def safe: tostring|gsub("[|\\r\\n]";" ");
232
232
  .appIds[0] as $app |
233
- ["| 应用 | appId="+($app.appId|safe)+", pid="+(($app.pid//"未返回")|safe)+" |",
234
- "| 商家账号 | userId="+(.sandboxAccounts.partner.userId|safe)+" |",
235
- "| 买家账号 | userId="+(.sandboxAccounts.user.userId|safe)+", 登录账号="+(.sandboxAccounts.user.email|safe)+", 登录密码="+(.sandboxAccounts.user.logonPassword|safe)+", 支付密码="+(.sandboxAccounts.user.payPassword|safe)+" |",
236
- "| 沙箱 | sandboxId="+((.sandboxId//"未返回")|safe)+" |"] | join("\n")
233
+ ["| 沙箱支付宝应用ID(appID) | "+($app.appId|safe)+" |",
234
+ "| 沙箱买家测试账号 | "+(.sandboxAccounts.user.email|safe)+" |",
235
+ "| 沙箱买家登录密码 | "+(.sandboxAccounts.user.logonPassword|safe)+" |",
236
+ "| 沙箱买家支付密码 | "+(.sandboxAccounts.user.payPassword|safe)+" |"] | join("\n")
237
237
  ') || return 1
238
238
  input=$(jq -cn --arg productName "$PRODUCT_NAME" --arg configPath "$CONFIG_PATH" --arg environmentRows "$rows" '{productName:$productName,configPath:$configPath,environmentRows:$environmentRows}') || return 1
239
239
  printf '%s' "$input" | node "$RENDERER" sandbox.environment.summary --variant DEFAULT || return 1
@@ -1 +1 @@
1
- {"schemaVersion":1,"interactionPrompts":{"confirmInputHint":"如确认,可以回复“继续”“确认”“OK”,也可以输入 1;如需调整,请直接说明。","planAdjustmentHint":"我会继续执行,无需回复;如需调整方案,请中断 Agent 执行并说明。","authorizationCompletionInputHint":"授权完成后可回复“继续”“好了”“OK”或输入 1","publicKeyConfirmationCompletionInputHint":"支付宝扫码确认应用公钥完成后可回复“继续”“好了”“OK”或输入 1","completionInputHint":"完成后可回复“继续”“好了”“已完成”“OK”或输入 1;如需调整,请直接说明。","scanReturnHint":"扫码完成后请回到 Agent 对话页面"},"interactionReplySets":{"affirmative":["1","继续","继续推进","继续执行","继续处理","继续下一步","请继续","请继续推进","继续吧","确认","确认继续","确定","同意","可以","可以继续","可以继续推进","没问题","好","好的","好了","好的继续","已完成","完成","完成了","操作完成","操作好了","已经完成","已经好了","处理好了","确认好了","弄好了","OK","Okay","Yes","Y"]},"messages":[{"messageId":"product.unsupported","owner":"catalog_owned","trigger":"route.unsupported_product","blocking":false,"allowedReplies":[],"variables":[{"name":"productName","type":"singleLine","required":true}],"requiredPolicyIds":["P-MCP-CONTRACT-FROZEN"],"variants":{"DEFAULT":{"templateLines":["当前 Skill 只支持接入 AI 按量付费、AI 网页应用收款和 AI 移动应用收款,不支持 `{{productName}}`。","","- 查看支付宝其他收单产品请前往:[支付宝开放平台](https://open.alipay.com)","- 开通支付宝其他收单产品请前往:[支付宝商家平台](https://b.alipay.com/page/portal/home)"]}}},{"messageId":"onboarding.enterprise.unsupported","owner":"catalog_owned","trigger":"onboarding.enterprise_account","blocking":false,"allowedReplies":[],"variables":[],"requiredPolicyIds":[],"variants":{"ONBOARDING_ONLY":{"templateLines":["暂不支持企业账号通过 Skill 完成产品开通。","","请前往支付宝商家平台开通:https://b.alipay.com/page/portal/home","","如需继续进行代码开发,试试对 Agent 说:为我集成 AI 网页应用收款/AI 移动应用收款/AI 按量付费"]},"FULL_PROCESS":{"templateLines":["暂不支持企业账号通过 Skill 完成产品开通。","","请前往支付宝商家平台开通:https://b.alipay.com/page/portal/home"]}}},{"messageId":"onboarding.windows.redirect","owner":"catalog_owned","trigger":"onboarding.windows_platform","blocking":false,"allowedReplies":[],"variables":[{"name":"officialUrl","type":"officialTemporaryUrl","required":true,"urlKind":"windowsOnboardingRedirect"}],"requiredPolicyIds":[],"variants":{"DEFAULT":{"templateLines":["当前为 Windows 系统,请您暂时前往支付宝 AI 付站点完成产品开通:","{{officialUrl}}"]}}},{"messageId":"product.clarify","owner":"catalog_owned","trigger":"route.product_unclear","blocking":true,"allowedReplies":[],"replyMode":"freeform","variables":[],"requiredPolicyIds":[],"variants":{"DEFAULT":{"templateLines":["请确认您的业务场景:","","1. AI 按量付费:买家通过 Agent 使用支付宝完成支付,适用于 API、MCP、算力资源等按调用付费。","2. AI 网页应用收款:买家在电脑网页或手机浏览器页面使用支付宝付款。","3. AI 移动应用收款:买家在 APP 内调起支付宝完成付款。"]}}},{"messageId":"onboarding.mcc.clarify","owner":"catalog_owned","trigger":"onboarding.mcc_unclear","blocking":true,"allowedReplies":[],"replyMode":"freeform","variables":[{"name":"productName","type":"enum","required":true,"values":["AI 按量付费","AI 网页应用收款","AI 移动应用收款"]}],"requiredPolicyIds":[],"variants":{"DEFAULT":{"templateLines":["MCC 与经营类目强相关,无法仅从“{{productName}}”确定。","","请补充本次接入的经营内容,例如:","","- 电商购物(实物商品销售)","- 在线工具","- 软件开发服务","- 售卖宠物用品","","也可以直接提供你已知的 MCC 二级类目名称或编码。"]}}},{"messageId":"onboarding.mcc.no_match","owner":"catalog_owned","trigger":"onboarding.mcc_search.none","blocking":true,"allowedReplies":[],"replyMode":"freeform","variables":[],"requiredPolicyIds":[],"variants":{"DEFAULT":{"templateLines":["没有匹配到符合描述的经营类目,请重新澄清经营描述。"]}}},{"messageId":"onboarding.mcc.candidates","owner":"catalog_owned","trigger":"onboarding.mcc_candidates.selection_required","blocking":true,"allowedReplies":[],"replyMode":"runtime_enum","variables":[{"name":"mccCandidates","type":"mccCandidates","required":true},{"name":"candidateTable","type":"string","required":false,"derived":true,"values":["renderer"]}],"requiredPolicyIds":[],"variants":{"DEFAULT":{"templateLines":["我找到了几个可能匹配的经营类目,请选择最接近的一项:","","{{candidateTable}}","","请回复序号、MCC 二级类目名称或编码;如果都不匹配,请补充实际销售的商品或服务类型。"]}}},{"messageId":"integration.start.confirm","owner":"catalog_owned","trigger":"integration.step2.ready","blocking":false,"allowedReplies":[],"postRenderHintType":"planAdjustment","variables":[{"name":"productName","type":"enum","required":true,"values":["AI 按量付费","AI 网页应用收款","AI 移动应用收款"]},{"name":"projectPath","type":"path","required":true},{"name":"projectOriginLabel","type":"enum","required":true,"values":["现有项目","本轮新建项目"]},{"name":"integrationStatus","type":"enum","required":true,"values":["TARGET_PARTIAL","OTHER_PRODUCT_ONLY","NO_PAYMENT"]},{"name":"otherProducts","type":"singleLine","required":false},{"name":"language","type":"singleLine","required":true},{"name":"framework","type":"singleLine","required":true},{"name":"nextFlow","type":"enum","required":true,"values":["integration"]}],"requiredPolicyIds":["P-PROJECT-PROTECT","P-SENSITIVE-STATE"],"variants":{"AIPAY":{"templateLines":["代码开发方案:","","| 项目 | 内容 |","|---|---|","| 目标产品 | {{productName}} |","| 项目路径 | `{{projectPath}}` |","| 项目来源 | {{projectOriginLabel}} |","| 代码开发状态 | {{integrationStatus}} |","| 检测到的其他支付产品 | {{otherProducts}} |","| 语言 / 框架 | {{language}} / {{framework}} |","","服务声明:","1. 使用本服务需遵守法律法规、自行审核测试并承担使用责任,我方不对使用效果、正确性担保。","2. 生产环境账号密码、API Keys、应用私钥等敏感信息切勿暴露给 Agent;仅沙箱环境信息可按本 Skill 的沙箱配置流程提供和使用。"]},"WEBPAY":{"templateLines":["代码开发方案:","","| 项目 | 内容 |","|---|---|","| 目标产品 | AI 网页应用收款 |","| 项目路径 | `{{projectPath}}` |","| 项目来源 | {{projectOriginLabel}} |","| 代码开发状态 | {{integrationStatus}} |","| 检测到的其他支付产品 | {{otherProducts}} |","| 语言 / 框架 | {{language}} / {{framework}} |","","服务声明:","1. 使用本服务需遵守法律法规、自行审核测试并承担使用责任,我方不对使用效果、正确性担保。","2. 生产环境账号密码、API Keys、应用私钥等敏感信息切勿暴露给 Agent;仅沙箱环境信息可按本 Skill 的沙箱配置流程提供和使用。"]},"APPPAY":{"templateLines":["代码开发方案:","","| 项目 | 内容 |","|---|---|","| 目标产品 | AI 移动应用收款 |","| 项目路径 | `{{projectPath}}` |","| 项目来源 | {{projectOriginLabel}} |","| 代码开发状态 | {{integrationStatus}} |","| 检测到的其他支付产品 | {{otherProducts}} |","| 语言 / 框架 | {{language}} / {{framework}} |","","【前置提醒】接 AI 移动应用收款需要你有自己的 APP,本轮代码开发主要覆盖商家服务端支付接口的实现,APP 还需接入支付宝客户端 SDK 后才能调起支付。你可以在当前 AI 移动应用收款服务端代码开发完毕后,对 Agent 说:“给我做个 APP /给我的 APP 接支付宝客户端 SDK /把我的 APP 客户端和接了支付宝的服务端联动起来”。","","服务声明:","1. 使用本服务需遵守法律法规、自行审核测试并承担使用责任,我方不对使用效果、正确性担保。","2. 生产环境账号密码、API Keys、应用私钥等敏感信息切勿暴露给 Agent;仅沙箱环境信息可按本 Skill 的沙箱配置流程提供和使用。"]}}},{"messageId":"onboarding.plan.confirm","owner":"catalog_owned","trigger":"onboarding.step2.ready","blocking":false,"allowedReplies":[],"postRenderHintType":"planAdjustment","variables":[{"name":"mccCode","type":"mccCode","required":true},{"name":"mccName","type":"singleLine","required":true},{"name":"mccContextReceipt","type":"string","required":true},{"name":"mccQualification","type":"singleLine","required":true}],"requiredPolicyIds":["P-AUTH-BEFORE-ONBOARDING"],"variants":{"AIPAY":{"templateLines":["产品开通方案:","","| 项目 | 内容 |","|---|---|","| 产品 | AI 按量付费 |","| 产品码 | `I1080300001000160457` |","| 经营类目 | {{mccName}} (`{{mccCode}}`) |","| 特殊资质 | {{mccQualification}} |","| 授权范围 | `app:all,machine_pay:write,agmnt:write` |","| 材料预告 | 1、签约申请无需页面截图;2、新建或修改服务时收集服务资料;3、新建应用设置应用公钥时由用户提供 |","","你也可以选择前往支付宝 AI 付站点完成产品开通:","https://aipay.alipay.com/?from=alipay-aipay-skill","","暂不支持企业账号通过 Skill 完成产品开通,企业账号如需开通请前往支付宝商家平台(https://b.alipay.com/page/portal/home)"]},"WEBPAY":{"templateLines":["产品开通方案:","","| 项目 | 内容 |","|---|---|","| 产品 | AI 网页应用收款 |","| 产品码 | `I1080300001000041203` |","| 经营类目 | {{mccName}} (`{{mccCode}}`) |","| 特殊资质 | {{mccQualification}} |","| 授权范围 | `app:all,fast_instant_trade_pay:write` |","| 材料预告 | 1、未签约时收集首页、商品页、支付页 3 张截图;支付页是展示支付宝付款方式,等待用户去支付的页面;2、新建应用设置应用公钥时由用户提供 |","","你也可以选择前往支付宝 AI 付站点完成产品开通:","https://aipay.alipay.com/?from=alipay-aipay-skill","","暂不支持企业账号通过 Skill 完成产品开通,企业账号如需开通请前往支付宝商家平台(https://b.alipay.com/page/portal/home)"]},"APPPAY":{"templateLines":["产品开通方案:","","| 项目 | 内容 |","|---|---|","| 产品 | AI 移动应用收款 |","| 产品码 | `I1080300001000041313` |","| 经营类目 | {{mccName}} (`{{mccCode}}`) |","| 特殊资质 | {{mccQualification}} |","| 授权范围 | `app:all,auth_alipay_apppay:write` |","| 材料预告 | 1、未签约时收集 APP 名称和首页、商品页、支付页 3 张截图;支付页是展示支付宝付款方式,等待用户去支付的页面;2、新建应用支持 iOS、Android 或 ALL(二者同时);3、新建应用设置应用公钥时由用户提供 |","| 特别提醒 | 鸿蒙系统移动应用暂不支持通过 Skill 创建,请前往支付宝开放平台-控制台手动创建:https://open.alipay.com/ |","","你也可以选择前往支付宝 AI 付站点完成产品开通:","https://aipay.alipay.com/?from=alipay-aipay-skill","","暂不支持企业账号通过 Skill 完成产品开通,企业账号如需开通请前往支付宝商家平台(https://b.alipay.com/page/portal/home)"]}}},{"messageId":"auth.page","owner":"catalog_owned","trigger":"AUTH_FLOW:READY_TO_OPEN","blocking":false,"allowedReplies":[],"postRenderHintType":"scanReturn","expiresWithPrompt":true,"variables":[{"name":"productName","type":"enum","required":true,"values":["AI 按量付费","AI 网页应用收款","AI 移动应用收款"]},{"name":"deviceCode","type":"singleLine","required":true},{"name":"mccCode","type":"mccCode","required":true},{"name":"mccName","type":"singleLine","required":true},{"name":"mccContextReceipt","type":"string","required":true},{"name":"verificationCode","type":"singleLine","required":true},{"name":"expiresDisplay","type":"singleLine","required":true},{"name":"officialUrl","type":"officialTemporaryUrl","required":true,"urlKind":"authorization"}],"requiredPolicyIds":["P-AUTH-URL","P-AUTH-URL-AUTO-OPEN"],"variants":{"READY":{"templateLines":["接下来会自动打开支付宝扫码授权页面,请在页面中扫码完成授权。","","| 授权信息 | 内容 |","|---|---|","| 产品类型 | {{productName}} |","| 经营类目 | {{mccName}} (`{{mccCode}}`) |","| 确认码 | {{verificationCode}} |","| 授权链接有效期 | {{expiresDisplay}} |","","安全提示:支付宝扫码后,请核对授权页面显示的确认码是否与上方一致;如不一致,请勿授权并立即停止操作。确认码只用于核对,不需要输入。","","如果自动跳转失败,请复制下方链接到网页浏览器打开。","授权链接:","{{officialUrl}}"]}}},{"messageId":"auth.open.manual","owner":"catalog_owned","trigger":"AUTH_OPEN:OPEN_FAILED|GUI_UNAVAILABLE|LINK_ONLY","blocking":false,"allowedReplies":[],"variables":[],"requiredPolicyIds":["P-AUTH-URL-AUTO-OPEN"],"variants":{"DEFAULT":{"templateLines":["未能自动打开支付宝授权页面,请手动打开上一条消息中的授权链接并完成扫码。我会继续检查授权结果,无需回复。"]}}},{"messageId":"application.key.page","owner":"catalog_owned","trigger":"application.key_page.ready","blocking":false,"allowedReplies":[],"postRenderHintType":"scanReturn","expiresWithPrompt":true,"variables":[{"name":"appId","type":"singleLine","required":true},{"name":"officialUrl","type":"officialTemporaryUrl","required":true,"urlKind":"publicKeyConfirmation"}],"requiredPolicyIds":["P-KEY-URL","P-KEY-URL-AUTO-OPEN"],"variants":{"READY":{"templateLines":["接下来会自动打开应用 `{{appId}}` 的公钥确认页面,请打开支付宝扫码确认应用公钥。","","如果自动跳转失败,请复制下方链接到网页浏览器打开。","公钥确认链接:","{{officialUrl}}"]}}},{"messageId":"application.key.pending","owner":"catalog_owned","trigger":"FLOW:KEY_NOT_CONFIRMED","blocking":true,"allowedReplySet":"affirmative","inputHintType":"publicKeyConfirmationComplete","variables":[],"requiredPolicyIds":["P-KEY-PUBLIC-USER"],"variants":{"DEFAULT":{"templateLines":["应用公钥尚未确认,请先完成公钥设置确认。"]}}},{"messageId":"onboarding.discovery.summary","owner":"catalog_owned","trigger":"onboarding.discovery.finished","blocking":false,"allowedReplies":[],"variables":[{"name":"signingStatus","type":"enum","required":true,"values":["未签约","已提交待生效","已生效","其他状态待核验","查询失败"]},{"name":"serviceStatus","type":"enum","required":false,"values":["无已有服务","已有服务候选","查询失败"]},{"name":"applicationStatus","type":"enum","required":true,"values":["无同类型应用","有上线应用可复用","仅有未上线应用","查询失败"]}],"requiredPolicyIds":["P-PARTIAL-RESULT","P-MATERIAL-CATEGORY"],"variants":{"AIPAY":{"templateLines":["当前查询结果:","","| 流程 | 当前状态 |","|---|---|","| 产品签约 | {{signingStatus}} |","| 服务市场 | {{serviceStatus}} |","| 应用发布 | {{applicationStatus}} |"]},"WEBPAY":{"templateLines":["当前查询结果:","","| 流程 | 当前状态 |","|---|---|","| 产品签约 | {{signingStatus}} |","| 服务市场 | 无需处理 |","| 应用发布 | {{applicationStatus}} |"]},"APPPAY":{"templateLines":["当前查询结果:","","| 流程 | 当前状态 |","|---|---|","| 产品签约 | {{signingStatus}} |","| 服务市场 | 无需处理 |","| 应用发布 | {{applicationStatus}} |"]}}},{"messageId":"materials.category.collect","owner":"catalog_owned","trigger":"materials.category.ready","blocking":true,"allowedReplies":[],"replyMode":"freeform","expiresWithPrompt":true,"variables":[{"name":"categoryName","type":"enum","required":true,"values":["签约材料","服务资料","应用资料"]},{"name":"currentStatus","type":"enum","required":true,"values":["待补充","部分已提供,待补充","校验失败,需更正"]},{"name":"missingFields","type":"enumList","required":true,"values":["APP名称","首页截图","商品页截图","支付页截图","特殊资质材料","服务名称","服务描述","服务地址","服务单价","请求示例JSON","应用平台和对应资料","iOS Bundle ID(bundleId)","Android 应用包名(appPackage)","Android 应用签名摘要(appSign)","应用公钥"]},{"name":"paymentPageHint","type":"string","derived":true,"values":["支付页说明:支付页是展示支付宝付款方式,等待用户去支付的页面,不是支付成功页。"]},{"name":"serviceUrlHint","type":"string","derived":true,"values":["请提供有效的 URL 地址(以 http:// 或 https:// 开头)"]},{"name":"servicePricingHint","type":"string","derived":true,"values":["请提供不低于 0.01 元的有效服务单价,可输入 0.03、0.03元或 0.03 元/次。"]},{"name":"keyToolManual","type":"string","required":false,"derived":true,"values":["renderer"]},{"name":"keyToolFormatHint","type":"string","required":false,"derived":true,"values":["【密钥格式说明】支付宝开放平台密钥工具“生成密钥”默认生成适用于 Java 编程语言的 PKCS#8 格式应用私钥;非 Java 语言请使用“密钥工具-格式转换”转换获取 PKCS#1 格式的应用私钥。"]},{"name":"specialQualificationHint","type":"string","required":false}],"requiredPolicyIds":["P-MATERIAL-CATEGORY"],"variants":{"INITIAL":{"templateLines":["当前收集类别:{{categoryName}}","","请在一条回复中提供:{{missingFields}}。","{{paymentPageHint}}","{{specialQualificationHint}}"]},"APP_WEB_INITIAL":{"templateLines":["当前收集类别:应用资料","","请在一条回复中提供【应用公钥】;请勿提供应用私钥。无需另行回复 `新建`。","","填写示例(请替换为实际内容):","```text","应用公钥:<你自行生成的完整应用公钥>","```","需要支付宝开放平台密钥工具时,可从官方地址下载:{{keyToolManual}}","","{{keyToolFormatHint}}"]},"APP_MOBILE_INITIAL":{"templateLines":["当前收集类别:应用资料","","请在一条回复中选择平台并提供以下材料:","","- iOS:我选择 iOS + iOS Bundle ID(bundleId)+【应用公钥】","- Android:我选择 Android + Android 应用包名(appPackage)+ Android 应用签名摘要(appSign)+【应用公钥】","- iOS + Android:我要同时支持两类系统 + iOS Bundle ID + Android 应用包名 + Android 应用签名摘要 +【应用公钥】","","填写示例(请替换为实际内容):","```text","我选择 Android","Android 应用包名(appPackage):com.example.app","Android 应用签名摘要(appSign):<你的 Android 应用签名摘要>","应用公钥:<你自行生成的完整应用公钥>","```","","请勿提供应用私钥。无需另行回复 `新建`。需要支付宝开放平台密钥工具时,可从官方地址下载:{{keyToolManual}}","","{{keyToolFormatHint}}","","注:鸿蒙系统移动应用暂不支持通过 Skill 创建,请前往支付宝开放平台-控制台手动创建:https://open.alipay.com/"]},"PARTIAL":{"templateLines":["当前收集类别:{{categoryName}}","","还需补充:{{missingFields}}。","{{paymentPageHint}}","{{specialQualificationHint}}","已校验字段无需重复提供。"]},"INVALID":{"templateLines":["当前收集类别:{{categoryName}}","","以下内容需要更正:{{missingFields}}。","{{serviceUrlHint}}","{{servicePricingHint}}","{{paymentPageHint}}","{{specialQualificationHint}}","已校验字段无需重复提供。"]},"SERVICE_INITIAL":{"templateLines":["当前收集类别:服务资料","","请在一条回复中提供:服务名称、服务描述、服务地址、服务单价、请求示例JSON。","","填写示例(请替换为实际内容):","```text","服务名称:天气查询","服务描述:按城市查询天气","服务地址:以 http:// 或 https:// 开头的实际服务地址","服务单价:0.08 元/次","请求示例 JSON:{\"city\":\"杭州\"}","```","{{specialQualificationHint}}"]}}},{"messageId":"service.create.summary","owner":"catalog_owned","trigger":"service.create.ready","blocking":false,"allowedReplies":[],"variables":[{"name":"serviceName","type":"singleLine","required":true},{"name":"serviceDescription","type":"singleLine","required":true},{"name":"serviceUrl","type":"runtimeUrl","required":true},{"name":"servicePricing","type":"singleLine","required":true},{"name":"serviceSchema","type":"string","required":true}],"requiredPolicyIds":["P-SERVICE-WRITE","P-WRITE-UNKNOWN"],"variants":{"DEFAULT":{"templateLines":["将创建以下 AI 按量付费服务:","","服务名称:{{serviceName}}","服务描述:{{serviceDescription}}","服务地址:`{{serviceUrl}}`","服务单价:{{servicePricing}} 元/次","请求示例 JSON:","```json","{{serviceSchema}}","```"]}}},{"messageId":"onboarding.write.confirm","owner":"catalog_owned","trigger":"external_write.ready","blocking":true,"allowedReplySet":"affirmative","inputHintType":"confirm","expiresWithPrompt":true,"variables":[{"name":"sessionSummary","type":"singleLine","required":true},{"name":"subjectSummary","type":"singleLine","required":true},{"name":"productName","type":"enum","required":true,"values":["AI 按量付费","AI 网页应用收款","AI 移动应用收款"]},{"name":"actionTypes","type":"enumList","required":true,"values":["服务修改"]},{"name":"serviceId","type":"singleLine","required":false},{"name":"serviceName","type":"singleLine","required":false},{"name":"serviceDescription","type":"singleLine","required":false},{"name":"serviceUrl","type":"runtimeUrl","required":false},{"name":"servicePricing","type":"singleLine","required":false},{"name":"serviceSchema","type":"string","required":false}],"requiredPolicyIds":["P-SERVICE-WRITE","P-WRITE-UNKNOWN"],"variants":{"SERVICE_UPDATE_ONLY":{"templateLines":["请确认以下支付宝操作:","","- 当前会话:{{sessionSummary}}","- 操作主体:{{subjectSummary}}","- 产品:AI 按量付费","- 动作:服务修改","","服务ID:`{{serviceId}}`","服务名称:{{serviceName}}","服务描述:{{serviceDescription}}","服务地址:`{{serviceUrl}}`","服务单价:{{servicePricing}} 元/次","请求示例 JSON:","```json","{{serviceSchema}}","```","","本次只执行上述服务修改;签约、应用创建、公钥设置和应用提审不包含在本确认中。"]}}},{"messageId":"process.partial_result","owner":"catalog_owned","trigger":"process.current_endpoint","blocking":false,"allowedReplies":[],"variables":[{"name":"productName","type":"enum","required":true,"values":["AI 按量付费","AI 网页应用收款","AI 移动应用收款"]},{"name":"processResultTitle","type":"enum","required":true,"values":["支付产品-产品开通已完成","流程进展"]},{"name":"integrationResult","type":"enum","required":true,"values":["不在本轮执行范围","已完成","部分完成,沙箱配置待完成","部分完成,人工待验证","未完成","结果未知"]},{"name":"sandboxConfigState","type":"enum","required":false,"values":["READY","CREATE_PENDING","VERIFY_PENDING"]},{"name":"signingResult","type":"enum","required":true,"values":["未签约","已提交,等待生效","已生效","失败","结果未知"]},{"name":"serviceResult","type":"enum","required":true,"values":["无需处理","已复用","创建成功,状态未取得","修改成功,状态未取得","已完成","失败","结果未知"]},{"name":"applicationResult","type":"enum","required":true,"values":["待选择","已创建,待设置公钥","公钥待确认","HarmonyOS 应用待平台侧创建、配置或上线","已提交审核,等待上线","已上线且配置完整","需人工配置","失败","结果未知"]},{"name":"remainingActions","type":"singleLine","required":true},{"name":"manualVerificationItems","type":"singleLine","required":false},{"name":"applicationOperationAppId","type":"singleLine","required":false},{"name":"applicationOperationActualStatus","type":"singleLine","required":false},{"name":"applicationOperationNextAction","type":"singleLine","required":false},{"name":"applicationOperationAppKeySavePath","type":"singleLine","required":false},{"name":"applicationManualConfigurationNextAction","type":"string","required":false,"derived":true,"values":["前往支付宝 AI 付站点,进入一站式接入 → 密钥配置,按当前 appId 获取对应的支付宝公钥,并手动配置到项目:https://aipay.alipay.com/?from=alipay-aipay-skill"]},{"name":"applicationOperationBlock","type":"string","required":false,"derived":true,"values":["renderer"]},{"name":"manualVerificationLine","type":"string","required":false,"derived":true,"values":["renderer"]},{"name":"productionReadinessBlock","type":"string","required":false,"derived":true,"values":["renderer"]},{"name":"statusQueryHint","type":"enum","required":false,"derived":true,"values":["。这期间,你也可以试着对 Agent 说:“帮我查询产品签约状态”或“帮我查询应用状态”。"]},{"name":"sandboxRecoveryHint","type":"string","required":false,"derived":true,"values":["renderer"]},{"name":"nextFlowReminderLine","type":"string","required":false,"derived":true,"values":["renderer"]},{"name":"nextFlowReminder","type":"enum","required":true,"values":["还需完成支付产品-代码开发,才能在业务系统中实际发起支付。","代码开发已在本轮执行;后续只按上表实际待办继续。"]}],"requiredPolicyIds":["P-PARTIAL-RESULT"],"variants":{"DEFAULT":{"templateLines":["{{processResultTitle}}:","","| 分支 | 实际结果 |","|---|---|","| 产品 | {{productName}} |","| 代码开发 | {{integrationResult}} |","| 产品开通 | {{signingResult}} |","| 服务市场 | {{serviceResult}} |","| 应用发布 | {{applicationResult}} |","","本轮流程仍需处理:{{remainingActions}}{{statusQueryHint}}","{{manualVerificationLine}}","{{sandboxRecoveryHint}}","{{applicationOperationBlock}}","","{{productionReadinessBlock}}","","{{nextFlowReminderLine}}"]}}},{"messageId":"key_tool.download.result","owner":"catalog_owned","trigger":"key_tool.download.finished","blocking":false,"allowedReplies":[],"variables":[{"name":"downloadPath","type":"existingPath","required":true},{"name":"keyToolFormatHint","type":"string","required":false,"derived":true,"values":["【密钥格式说明】支付宝开放平台密钥工具“生成密钥”默认生成适用于 Java 编程语言的 PKCS#8 格式应用私钥;非 Java 语言请使用“密钥工具-格式转换”转换获取 PKCS#1 格式的应用私钥。"]}],"requiredPolicyIds":["P-KEY-TOOL-DOWNLOAD"],"fallbackMessageId":"key_tool.download.fallback","variants":{"DOWNLOADED":{"templateLines":["支付宝开放平台密钥工具已下载到:`{{downloadPath}}`。","","请打开该安装包并按页面引导完成安装;Agent 不会自动安装、启动工具或生成密钥。","","{{keyToolFormatHint}}","","生成后只向 Agent 提供【应用公钥】,应用私钥请自行妥善保管。",""]}}},{"messageId":"key_tool.download.fallback","owner":"catalog_owned","trigger":"key_tool.download.fallback","blocking":false,"allowedReplies":[],"variables":[{"name":"keyToolManual","type":"string","required":false,"derived":true,"values":["renderer"]},{"name":"keyToolFormatHint","type":"string","required":false,"derived":true,"values":["【密钥格式说明】支付宝开放平台密钥工具“生成密钥”默认生成适用于 Java 编程语言的 PKCS#8 格式应用私钥;非 Java 语言请使用“密钥工具-格式转换”转换获取 PKCS#1 格式的应用私钥。"]}],"requiredPolicyIds":["P-KEY-TOOL-DOWNLOAD"],"variants":{"DEFAULT":{"templateLines":["未能完成自动下载,可能是当前环境不支持、无法访问下载源、本地目录不可写或安装包校验未通过。请访问支付宝开放平台手动下载支付宝开放平台密钥工具:","","{{keyToolManual}}","","{{keyToolFormatHint}}","","仅向 Agent 提供【应用公钥】,应用私钥请自行妥善保管。"]}}},{"messageId":"sandbox.windows.manual_setup","owner":"catalog_owned","trigger":"integration.sandbox.windows.manual_setup","blocking":true,"allowedReplies":[],"replyMode":"freeform","variables":[],"requiredPolicyIds":["P-SANDBOX-CREDENTIAL-EXCEPTION","P-SENSITIVE-STATE"],"variants":{"DEFAULT":{"templateLines":["当前 Windows 环境暂不支持自动创建快速沙箱,请前往支付宝 AI 付站点-选择产品-一站式接入-技术集成页面获取沙箱配置:https://aipay.alipay.com/?from=alipay-aipay-skill","","请把沙箱应用的 APPID、支付宝公钥、应用公钥、与当前开发语言(JAVA语言/非JAVA语言)匹配的应用私钥、沙箱账号信息告诉我,我会帮你完成项目配置,并继续进行支付产品代码开发。","","生产环境应用私钥和密码切勿暴露给 Agent。"]}}},{"messageId":"sandbox.environment.summary","owner":"catalog_owned","trigger":"integration.sandbox.persisted","blocking":false,"allowedReplies":[],"variables":[{"name":"productName","type":"enum","required":true,"values":["AI 按量付费","AI 网页应用收款","AI 移动应用收款"]},{"name":"configPath","type":"existingPath","required":true},{"name":"environmentRows","type":"sandboxTableRows","required":true}],"requiredPolicyIds":["P-SANDBOX-CREDENTIAL-EXCEPTION","P-SENSITIVE-STATE"],"variants":{"DEFAULT":{"templateLines":["沙箱环境摘要","","| 项目 | 信息 |","|---|---|","| 产品 | {{productName}} |","| 配置文件目录 | `{{configPath}}` |","{{environmentRows}}","| 密钥字段 | 已写入本地配置文件,默认不在对话中展开 |"]}}},{"messageId":"sandbox.configuration.pending","owner":"catalog_owned","trigger":"integration.sandbox.pending","blocking":false,"allowedReplies":[],"variables":[],"requiredPolicyIds":["P-SENSITIVE-STATE"],"variants":{"CREATE":{"templateLines":["快速沙箱暂未创建成功,当前沙箱配置尚未完成。","","本轮将继续代码开发。代码开发完成后,请对 Agent 说:“重新创建并配置沙箱”。"]},"VERIFY":{"templateLines":["快速沙箱配置复核未通过,当前沙箱配置尚未完成。","","本轮将继续代码开发。代码开发完成后,请对 Agent 说:“重新创建并配置沙箱”。"]}}},{"messageId":"sandbox.create.failure","owner":"catalog_owned","trigger":"integration.sandbox.failed","blocking":false,"allowedReplies":[],"variables":[{"name":"failureReason","type":"singleLine","required":true},{"name":"recoveryAction","type":"singleLine","required":true}],"requiredPolicyIds":["P-SENSITIVE-STATE"],"variants":{"WINDOWS":{"templateLines":["Windows 沙箱本地配置未准备完成:{{failureReason}}","","恢复动作:{{recoveryAction}}","","字段缺失、来源不明或本地保护未完成时不能继续,也不能把当前配置表述为可用。"]}}},{"messageId":"sandbox.environment.reminder","owner":"catalog_owned","trigger":"integration.sandbox.persisted.reminder","blocking":false,"allowedReplies":[],"variables":[],"requiredPolicyIds":["P-A2M-SANDBOX","P-SENSITIVE-STATE"],"variants":{"DEFAULT":{"templateLines":["快速沙箱环境配置已准备完成,仅用于测试,不涉及真实资金。","","完整配置已写入上述本地文件。"]},"WINDOWS":{"templateLines":["Windows 沙箱本地配置已准备完成,仅用于测试,不涉及真实资金。","","配置已保存至上述本机路径。"]}}},{"messageId":"a2m.test.start","owner":"catalog_owned","trigger":"integration.a2m.test.start","blocking":false,"allowedReplies":[],"variables":[],"requiredPolicyIds":["P-A2M-SANDBOX","P-A2M-SUCCESS"],"variants":{"DEFAULT":{"templateLines":["开始执行 AI 按量付费沙箱服务端联调。","","我将连续验证 `402 Payment-Needed`、沙箱收银、`Payment-Proof` 重试和资源交付,完成后输出实际结论;这里不需要额外确认。"]}}},{"messageId":"a2m.test.result","owner":"catalog_owned","trigger":"integration.a2m.test.finished","blocking":false,"allowedReplies":[],"variables":[{"name":"evidenceSummary","type":"singleLine","required":true},{"name":"recoveryAction","type":"singleLine","required":false}],"requiredPolicyIds":["P-A2M-SUCCESS","P-SENSITIVE-STATE"],"variants":{"PASSED":{"templateLines":["AI 按量付费沙箱服务端联调通过。","","通过证据:{{evidenceSummary}}"]},"FAILED":{"templateLines":["AI 按量付费沙箱服务端联调未通过。","","实际证据:{{evidenceSummary}}","","恢复动作:{{recoveryAction}}"]}}},{"messageId":"a2m.payment.experience","owner":"catalog_owned","trigger":"integration.a2m.optional_payment_experience","blocking":false,"allowedReplies":[],"variables":[{"name":"paymentUrl","type":"runtimeUrl","required":true},{"name":"buyerAccount","type":"singleLine","required":true},{"name":"buyerLoginPassword","type":"sandboxCredential","required":true},{"name":"buyerPayPassword","type":"sandboxCredential","required":true}],"requiredPolicyIds":["P-SANDBOX-CREDENTIAL-EXCEPTION"],"variants":{"FULL":{"templateLines":["可选:体验 AI 按量付费沙箱付款","","付款链接(复制到网页浏览器打开):{{paymentUrl}}","沙箱买家账号:{{buyerAccount}}","登录密码:{{buyerLoginPassword}}","支付密码:{{buyerPayPassword}}"]}}},{"messageId":"webpay.sandbox.experience","owner":"catalog_owned","trigger":"integration.webpay.sandbox_experience","blocking":false,"allowedReplies":[],"variables":[{"name":"startCommand","type":"command","required":true},{"name":"paymentUrl","type":"runtimeUrl","required":true},{"name":"buyerAccount","type":"singleLine","required":true},{"name":"buyerLoginPassword","type":"sandboxCredential","required":true},{"name":"buyerPayPassword","type":"sandboxCredential","required":true},{"name":"resultPageInstruction","type":"enum","required":true,"values":["付款后确认浏览器自动返回商户结果页,页面可正常展示并通过服务端查询呈现订单状态。","付款后不会自动返回商户网站;请手动返回商户订单查询页并刷新或查询订单状态。"]}],"requiredPolicyIds":["P-SANDBOX-CREDENTIAL-EXCEPTION"],"variants":{"DEFAULT":{"templateLines":["AI 网页应用收款沙箱付款指引","","1. 启动服务:`{{startCommand}}`","2. 在浏览器打开:{{paymentUrl}}","3. 在沙箱收银台二选一:使用沙箱买家账号登录,或仅在 Android 沙箱支付宝中扫描收银台页面二维码。","4. 沙箱买家账号:{{buyerAccount}}","5. 登录密码:{{buyerLoginPassword}}","6. 支付密码:{{buyerPayPassword}}","7. {{resultPageInstruction}}","","沙箱测试环境不稳定,可能出现跳转到支付宝收银台页面后报错,如:504 Gateway Time-out;输入完测试买家账号后展示系统繁忙;输入完测试买家支付密码后展示系统繁忙。您可以回到支付页重新发起支付以完成沙箱测试。","","前台页面和同步回跳参数不是支付成功依据,最终以验签通过的异步通知或交易查询为准。用户暂不付款只记为待体验,不得表述为沙箱测试通过。"]}}},{"messageId":"sandbox.android.client","owner":"catalog_owned","trigger":"integration.sandbox_android_client","blocking":false,"allowedReplies":[],"variables":[],"requiredPolicyIds":[],"variants":{"DEFAULT":{"templateLines":["沙箱支付宝当前仅支持 Android。请复制以下支付宝官方地址到网页浏览器打开,并扫描屏幕二维码下载沙箱版支付宝安装包:","","https://mdn.alipayobjects.com/sandboxsys/afts/img/_itHRrdOD9oAAAAAAAAAAAAADgSLAQBr/original","","如果直链或页面二维码无法打开,请前往支付宝开放平台-沙箱工具页下载:","","https://open.alipay.com/develop/sandbox/tool"]}}},{"messageId":"webpay.sandbox.experience.windows","owner":"catalog_owned","trigger":"integration.webpay.sandbox_experience.windows","blocking":false,"allowedReplies":[],"variables":[{"name":"startCommand","type":"command","required":true},{"name":"paymentUrl","type":"runtimeUrl","required":true},{"name":"resultPageInstruction","type":"enum","required":true,"values":["付款后确认浏览器自动返回商户结果页,页面可正常展示并通过服务端查询呈现订单状态。","付款后不会自动返回商户网站;请手动返回商户订单查询页并刷新或查询订单状态。"]}],"requiredPolicyIds":["P-SENSITIVE-STATE"],"variants":{"DEFAULT":{"templateLines":["AI 网页应用收款沙箱付款指引","","1. 启动服务:`{{startCommand}}`","2. 在浏览器打开:{{paymentUrl}}","3. 在沙箱收银台使用支付宝开放平台控制台中的沙箱买家账号登录,或仅在 Android 沙箱支付宝中扫描收银台页面二维码。","4. 登录密码和支付密码请直接从本机保存的信息或支付宝开放平台控制台取得,无需再次提供给 Agent。","5. {{resultPageInstruction}}","","沙箱测试环境不稳定,可能出现跳转到支付宝收银台页面后报错,如:504 Gateway Time-out;输入完测试买家账号后展示系统繁忙;输入完测试买家支付密码后展示系统繁忙。您可以回到支付页重新发起支付以完成沙箱测试。","","前台页面和同步回跳参数不是支付成功依据,最终以验签通过的异步通知或交易查询为准。用户暂不付款只记为待体验,不得表述为沙箱测试通过。"]}}},{"messageId":"integration.safety.closeout","owner":"catalog_owned","trigger":"integration.step7.safety","blocking":false,"allowedReplies":[],"variables":[{"name":"acceptanceSummary","type":"singleLine","required":true}],"requiredPolicyIds":["P-SENSITIVE-STATE"],"variants":{"AIPAY":{"templateLines":["代码开发安全与上线提醒","","- 上线前必须完成人工代码审查;私钥只保存在商家服务端,禁止写入客户端、日志或公共仓库。Java 使用 `PKCS#8` 私钥,非 Java 使用 `PKCS#1` 私钥,格式不匹配时只用支付宝官方密钥工具转换。","- `Payment-Proof` 必须调用 `alipay.aipay.agent.payment.verify` 验证;无效或过期凭证拒绝服务,结果不明时不得要求用户重复付款。","- 资源交付后必须调用 `alipay.aipay.agent.fulfillment.confirm`;履约确认失败必须可重试且保持幂等。","- 沙箱配置仅用于开发调试;正式上线前必须替换为同一套生产 `appId`、应用公钥、应用私钥和支付宝公钥,并将 `api_mock_service_id` 替换为真实 `serviceId`。`serviceId` 获取方式:支付宝扫码登录支付宝 AI 付站点 → 控制台 → 服务管理 → 复制审核已通过的服务 ID:https://aipay.alipay.com/?from=alipay-aipay-skill","- 收款商户 PID/2088 用于 AI 按量付费 `seller_id` 和 `seller_unique_id`,不由 Agent 猜测。获取方式:支付宝扫码登录支付宝商家平台 → 点击头像 → 复制账户名下方 2088 开头的商家 ID:https://b.alipay.com/page/portal/home","- 生产环境必须严格校验本地订单、金额与资源关系;正式收款必须完成 `Payment-Proof` 验付和异步履约回执确认。","","当前验收口径:{{acceptanceSummary}}"]},"WEBPAY":{"templateLines":["代码开发安全与上线提醒","","- 上线前必须完成人工代码审查;私钥只保存在商家服务端,禁止写入客户端、日志或公共仓库。Java 使用 `PKCS#8` 私钥,非 Java 使用 `PKCS#1` 私钥,格式不匹配时只用支付宝官方密钥工具转换。","- 同步回跳和前台结果不作为支付成功依据;必须以验签通过的异步通知或交易查询为准。","- 正式上线前必须替换为同一套生产 `appId`、应用公钥、应用私钥和支付宝公钥。","- AI 网页应用收款生产上线必须配置并联调公网 HTTPS `notify_url`;异步通知必须验签、校验关键字段、幂等处理并返回 `success`,同时配置交易查询补偿。若当前仅完成本地生产参数验收,该项仍需在上线前补齐;localhost、局域网地址或其他不可公网访问的地址不能用于生产异步通知。支付结果不明时不得要求用户重复付款。","","当前验收口径:{{acceptanceSummary}}"]},"APPPAY":{"templateLines":["代码开发安全与上线提醒","","- 上线前必须完成人工代码审查;私钥只保存在商家服务端,禁止写入 APP 客户端、日志或公共仓库。Java 使用 `PKCS#8` 私钥,非 Java 使用 `PKCS#1` 私钥,格式不匹配时只用支付宝官方密钥工具转换。","- 客户端支付结果不作为成功依据;必须以验签通过的异步通知或服务端交易查询为准。","- 正式上线前必须替换为同一套生产 `appId`、应用公钥、应用私钥和支付宝公钥。","- AI 移动应用收款生产上线必须配置并联调公网 HTTPS `notify_url`;异步通知必须验签、校验关键字段、幂等处理并返回 `success`,同时配置交易查询补偿。若当前仅完成本地生产参数验收,该项仍需在上线前补齐;localhost、局域网地址或其他不可公网访问的地址不能用于生产异步通知。支付结果不明时不得要求用户重复付款。","- 本轮代码开发只覆盖商家服务端;APP 客户端仍需接入支付宝客户端 SDK,使用服务端返回的 `orderStr` 调起支付,并与服务端异步通知或交易查询完成联调。","","当前验收口径:{{acceptanceSummary}}"]}}},{"messageId":"integration.checklist.result","owner":"catalog_owned","trigger":"integration.checklist.finished","blocking":false,"allowedReplies":[],"variables":[{"name":"overallResult","type":"enum","required":true,"values":["通过","部分通过","未通过"]},{"name":"failedItems","type":"singleLine","required":true},{"name":"manualItems","type":"singleLine","required":true},{"name":"sandboxResult","type":"enum","required":false,"values":["AI 按量付费沙箱服务端联调通过","AI 按量付费沙箱服务端联调未通过"]},{"name":"webpayExperienceResult","type":"enum","required":false,"values":["已提供浏览器付款入口和操作指引,实际付款及结果验证仍以用户完成情况为准","未提供浏览器付款入口或完整操作指引,需先补齐","已提供浏览器付款入口和操作指引;用户已完成一笔沙箱付款,结果只按实际核验证据记录"]},{"name":"sandboxConfigState","type":"enum","required":true,"values":["READY","CREATE_PENDING","VERIFY_PENDING"]},{"name":"blockingDefectState","type":"enum","required":true,"values":["NONE","PRESENT"]},{"name":"executionMode","type":"enum","required":true,"values":["仅代码开发","完整接入"]},{"name":"nextFlowReminder","type":"enum","required":true,"values":["正式上线前还需完成支付产品-产品开通。","代码开发校验通过后将自动进入支付产品-产品开通;未通过时停留在代码开发。","沙箱配置尚未完成,但不阻塞本轮继续支付产品-产品开通;完成配置后再进行沙箱测试。","代码开发自动校验已完成,仍有人工待验证项;本轮继续产品开通。"]}],"requiredPolicyIds":[],"variants":{"AIPAY_PASSED":{"templateLines":["AI 按量付费代码开发校验通过。","","{{nextFlowReminder}}"]},"AIPAY_INCOMPLETE":{"templateLines":["AI 按量付费代码开发校验:{{overallResult}}。","","未完成项:{{failedItems}}","人工待验证:{{manualItems}}","","{{nextFlowReminder}}"]},"WEBPAY_PASSED":{"templateLines":["AI 网页应用收款代码开发校验通过。","","{{nextFlowReminder}}"]},"WEBPAY_INCOMPLETE":{"templateLines":["AI 网页应用收款代码开发校验:{{overallResult}}。","","未完成项:{{failedItems}}","人工待验证:{{manualItems}}","","{{nextFlowReminder}}"]},"APPPAY_PASSED":{"maintenanceTodo":"TODO: 后续确定 AI 移动应用收款沙箱测试的对客引导动作后,在本变体补充;同步 integration flow、checklist 和测试。","templateLines":["AI 移动应用收款代码开发校验通过。","","{{nextFlowReminder}}"]},"APPPAY_INCOMPLETE":{"maintenanceTodo":"TODO: 后续确定 AI 移动应用收款沙箱测试的对客引导动作后,在本变体补充;同步 integration flow、checklist 和测试。","templateLines":["AI 移动应用收款代码开发校验:{{overallResult}}。","","未完成项:{{failedItems}}","人工待验证:{{manualItems}}","","{{nextFlowReminder}}"]}}},{"messageId":"auth.pending","owner":"catalog_owned","trigger":"AUTH_FLOW:PENDING","blocking":true,"allowedReplySet":"affirmative","inputHintType":"authorizationComplete","variables":[],"requiredPolicyIds":["P-AUTH-BEFORE-ONBOARDING"],"variants":{"DEFAULT":{"templateLines":["支付宝授权尚未完成,当前流程保持等待,请在已打开的网页二维码页面完成扫码确认后,再回复当前授权提示。"]}}},{"messageId":"auth.expired","owner":"catalog_owned","trigger":"AUTH_FLOW:EXPIRED","blocking":false,"allowedReplies":[],"variables":[],"requiredPolicyIds":["P-AUTH-BEFORE-ONBOARDING"],"variants":{"DEFAULT":{"templateLines":["本次支付宝授权链接已过期,旧链接和旧回复均已失效。正在重新生成授权链接,请使用新的授权页面完成授权。"]}}},{"messageId":"auth.mismatch","owner":"catalog_owned","trigger":"AUTH_FLOW:SCOPE_MISMATCH|MCC_MISMATCH","blocking":false,"allowedReplies":[],"variables":[],"requiredPolicyIds":["P-AUTH-BEFORE-ONBOARDING"],"variants":{"DEFAULT":{"templateLines":["当前授权范围或经营类目不匹配,需要退出当前登录并重新生成授权页面。"]}}},{"messageId":"error.mcp.auth","owner":"catalog_owned","trigger":"error.mcp_auth","blocking":false,"allowedReplies":[],"variables":[{"name":"errorMessage","type":"customerErrorText","required":false}],"requiredPolicyIds":["P-AUTH-BEFORE-ONBOARDING","P-SENSITIVE-STATE"],"variants":{"START":{"templateLines":["🔐 未登录或授权已过期","","当前登录状态已失效,无法继续操作。MCP 调用返回认证错误,正在退出当前登录。"]},"LOGOUT_UNCONFIRMED":{"templateLines":["无法确认退出当前登录结果,已停止重新授权。","","这通常表示当前 Agent 执行环境缺少联网权限、CLI wrapper 混入输出,或 stdout/stderr 无法唯一解析;不代表用户本机 logout 失败,也不能据此判断支付宝业务失败。","","Agent 应申请可联网权限后重试同一动作;不要要求用户手动 logout 代替本轮事实。"]},"LOGOUT_FAILED":{"templateLines":["退出当前登录失败,已停止重新授权。","错误信息:{{errorMessage}}","","请先重试退出登录;确认退出成功后再重新授权。"]},"LOGOUT_SUCCESS":{"templateLines":["已退出登录状态。","","请重新执行登录授权流程:生成授权链接后,使用支付宝扫码授权,授权成功后继续当前操作。","","产品、MCC 和授权范围未变化时,沿用已有确认立即重新生成授权链接;发生变化时先重新确认受影响内容。"]}}},{"messageId":"error.mcp.service","owner":"catalog_owned","trigger":"error.mcp_service","blocking":false,"allowedReplies":[],"variables":[{"name":"errorDetail","type":"customerErrorText","required":false}],"requiredPolicyIds":["P-PARTIAL-RESULT","P-SENSITIVE-STATE"],"variants":{"AGENT_NETWORK":{"templateLines":["MCP 服务暂时不可用。","","当前命令需要访问支付宝服务,但当前 Agent 执行环境可能没有外网权限。Agent 应申请可联网权限后重试同一条命令,不要要求用户排查本机网络,也不要更换业务参数。","","请授权 Agent 联网重试,或稍后重新执行当前命令。"]},"GENERIC":{"templateLines":["MCP 服务暂时不可用。","","无法连接到支付宝服务,请稍后重试。","错误详情:{{errorDetail}}","","当前动作已停止重试;由主流程记录受影响分支,并在不受其依赖的情况下继续其他分支。本轮收口时将一次说明未恢复的动作、受影响分支和后续恢复方式。"]}}},{"messageId":"error.backend","owner":"catalog_owned","trigger":"error.backend_business","blocking":false,"allowedReplies":[],"variables":[{"name":"errorCode","type":"customerErrorText","required":true},{"name":"errorMessage","type":"customerErrorText","required":true},{"name":"errorScene","type":"customerErrorText","required":false},{"name":"errorSpecific","type":"customerErrorText","required":false},{"name":"checkedErrors","type":"customerErrorDetails","required":false},{"name":"bizTips","type":"customerErrorText","required":false},{"name":"appMax","type":"enum","required":true,"values":["YES","NO"]},{"name":"errorSceneLine","type":"string","required":false,"derived":true,"values":["renderer"]},{"name":"checkedErrorsBlock","type":"string","required":false,"derived":true,"values":["renderer"]},{"name":"bizTipsLine","type":"string","required":false,"derived":true,"values":["renderer"]},{"name":"appMaxLine","type":"string","required":false,"derived":true,"values":["renderer"]}],"requiredPolicyIds":["P-SENSITIVE-STATE"],"variants":{"DEFAULT":{"templateLines":["业务处理失败。","","错误码:{{errorCode}}","错误信息:{{errorMessage}}","{{errorSceneLine}}","","{{checkedErrorsBlock}}","","{{bizTipsLine}}","","{{appMaxLine}}","","当前业务错误不会自动重试;请先按以上错误信息修正受影响分支的业务条件。","如需帮助,请联系技术支持并提供以上脱敏错误信息。"]}}},{"messageId":"error.service.unstable","owner":"catalog_owned","trigger":"error.service_unstable","blocking":false,"allowedReplies":[],"variables":[],"requiredPolicyIds":["P-PARTIAL-RESULT"],"variants":{"DEFAULT":{"templateLines":["MCP 服务暂时不稳定。","","当前动作已停止重试;由主流程记录受影响分支,并在不受其依赖的情况下继续其他分支。","本轮收口时将一次说明未恢复的动作、受影响分支和后续恢复方式。"]}}},{"messageId":"error.cli","owner":"catalog_owned","trigger":"error.cli_output","blocking":false,"allowedReplies":[],"variables":[{"name":"errorMessage","type":"customerErrorText","required":true},{"name":"bizTips","type":"customerErrorText","required":false},{"name":"checkedErrors","type":"customerErrorDetails","required":false},{"name":"bizTipsLine","type":"string","required":false,"derived":true,"values":["renderer"]},{"name":"checkedErrorsBlock","type":"string","required":false,"derived":true,"values":["renderer"]}],"requiredPolicyIds":["P-SENSITIVE-STATE"],"variants":{"DEFAULT":{"templateLines":["命令执行失败:{{errorMessage}}","{{bizTipsLine}}","{{checkedErrorsBlock}}"]}}},{"messageId":"integration.service.not_ready","owner":"catalog_owned","trigger":"integration.a2m.service_not_ready","blocking":false,"allowedReplies":[],"variables":[{"name":"recoveryAction","type":"singleLine","required":true}],"requiredPolicyIds":["P-A2M-SUCCESS"],"variants":{"DEFAULT":{"templateLines":["AI 按量付费本地服务尚未达到自动联调前置条件。","","需要处理:{{recoveryAction}}","","该条件未满足前不会运行自动联调,也不会把服务标记为可用。"]}}},{"messageId":"integration.project_path.required","owner":"catalog_owned","trigger":"integration.project_path.unresolved","blocking":true,"allowedReplies":[],"replyMode":"freeform","variables":[],"requiredPolicyIds":[],"variants":{"DEFAULT":{"templateLines":["现有项目及文件保持不变。请在一条回复中说明新项目要放在哪里;可以说“在当前目录新建 pay-demo”、提供当前目录下的新子目录名,或提供电脑上的完整路径。若不想指定位置,可以说“新建项目”或“帮我新建默认项目”,我会在用户目录下选择安全的新目录并告知项目地址。路径解析和确认完成前不会创建或修改文件。"]}}},{"messageId":"integration.context.required","owner":"catalog_owned","trigger":"integration.context.unresolved","blocking":true,"allowedReplies":[],"replyMode":"freeform","variables":[{"name":"missingItems","type":"enumList","required":true,"values":["项目路径","技术栈"]}],"requiredPolicyIds":["P-PROJECT-PROTECT"],"variants":{"DEFAULT":{"templateLines":["为继续代码开发,请先确定:{{missingItems}}。","","- 要新建项目:可以说“在当前目录新建 pay-demo”,或提供一个新的文件夹位置;不想指定位置时,可以说“新建项目”或“帮我新建默认项目”。","- 要复用已有项目:请告诉我项目文件夹;如果不知道在哪,可以说“帮我在当前目录下找项目”;如果大概知道在哪,可以说“帮我在 server 下找项目”。我会先定位候选目录,再让你选择。","- “当前项目/当前目录”只有在当前目录本身就是可识别项目根时才会使用;否则不会扫描整个大目录。","- 技术栈:例如 Node.js + Express、Java + Spring Boot、Python + Flask、PHP + Laravel、C# + ASP.NET;不确定时可以说“请推荐默认技术栈”。","","项目和技术栈明确前,不会创建或修改文件。"]},"PROJECT_PATH_ONLY":{"templateLines":["为继续代码开发,请先确定:{{missingItems}}。","","- 要新建项目:可以说“在当前目录新建 pay-demo”,或提供一个新的文件夹位置;不想指定位置时,可以说“新建项目”或“帮我新建默认项目”。","- 要复用已有项目:请告诉我项目文件夹;如果不知道在哪,可以说“帮我在当前目录下找项目”;如果大概知道在哪,可以说“帮我在 server 下找项目”。我会先定位候选目录,再让你选择。","- “当前项目/当前目录”只有在当前目录本身就是可识别项目根时才会使用;否则不会扫描整个大目录。","","项目路径明确前,不会创建或修改文件。"]}}},{"messageId":"integration.project_candidates.select","owner":"catalog_owned","trigger":"integration.project_candidates.located","blocking":true,"allowedReplies":[],"replyMode":"freeform","variables":[{"name":"searchBasePath","type":"existingPath","required":true},{"name":"candidateRows","type":"string","required":true}],"requiredPolicyIds":["P-PROJECT-PROTECT"],"variants":{"DEFAULT":{"templateLines":["我先在 `{{searchBasePath}}` 下做了轻量项目定位;这里只看项目标记文件,不扫描代码内容。","","{{candidateRows}}","","如果要复用已有项目,请回复候选序号或具体项目文件夹。","如果要新建项目,可以回复“在当前目录新建 pay-demo”,或直接回复“新建项目”使用用户目录下的默认安全目录。","","选定具体项目目录前,不会扫描整个大目录,也不会创建或修改文件。"]}}},{"messageId":"integration.local_acceptance.notice","owner":"catalog_owned","trigger":"integration.local_acceptance.enabled","blocking":false,"allowedReplies":[],"variables":[],"requiredPolicyIds":[],"variants":{"DEFAULT":{"templateLines":["当前使用本地生产参数验收模式:本轮可以暂不发起公网异步通知,但生产上线前必须恢复并验证 `notify_url`。这不是生产最终配置,也不能据此宣称生产就绪。"]}}},{"messageId":"application.reuse.no_key","owner":"catalog_owned","trigger":"FLOW:REUSE_NO_KEY","blocking":false,"allowedReplies":[],"variables":[{"name":"appId","type":"singleLine","required":true},{"name":"keyToolManual","type":"string","required":false,"derived":true,"values":["renderer"]},{"name":"keyToolFormatHint","type":"string","required":false,"derived":true,"values":["【密钥格式说明】支付宝开放平台密钥工具“生成密钥”默认生成适用于 Java 编程语言的 PKCS#8 格式应用私钥;非 Java 语言请使用“密钥工具-格式转换”转换获取 PKCS#1 格式的应用私钥。"]}],"requiredPolicyIds":["P-KEY-PUBLIC-USER"],"variants":{"DEFAULT":{"templateLines":["应用 `{{appId}}` 当前为可复用的上线应用,但尚未确认 RSA2 应用公钥,应用分支仍未完成。","","接下来需要为该应用设置【应用公钥】;如果你已经准备好应用公钥,请直接提供。","","本次不会自动下载支付宝开放平台密钥工具。如需我下载请直接说明,或访问官方地址手动下载:{{keyToolManual}}","","{{keyToolFormatHint}}","","只向 Agent 提供【应用公钥】,应用私钥请自行妥善保管。","","如果不想继续复用这个应用,请说明要“重新选择”或“新建应用”。"]}}},{"messageId":"application.candidates.facts","owner":"catalog_owned","trigger":"application.candidates.queried","blocking":false,"allowedReplies":[],"variables":[{"name":"applicationType","type":"enum","required":true,"values":["WEBAPP","MOBILEAPP"]},{"name":"applicationCandidates","type":"applicationCandidates","required":true},{"name":"candidateTable","type":"string","required":false,"derived":true,"values":["renderer"]},{"name":"keyToolManual","type":"string","required":false,"derived":true,"values":["renderer"]},{"name":"keyToolFormatHint","type":"string","required":false,"derived":true,"values":["【密钥格式说明】支付宝开放平台密钥工具“生成密钥”默认生成适用于 Java 编程语言的 PKCS#8 格式应用私钥;非 Java 语言请使用“密钥工具-格式转换”转换获取 PKCS#1 格式的应用私钥。"]}],"requiredPolicyIds":["P-PARTIAL-RESULT","P-KEY-TOOL-DOWNLOAD"],"variants":{"EMPTY":{"templateLines":["📋 暂无 {{applicationType}} 应用。","","支付宝开放平台密钥工具可用于生成应用公私钥对。无论是否需要自动下载,都可以访问官方地址:","{{keyToolManual}}","","{{keyToolFormatHint}}","","只向 Agent 提供【应用公钥】,请勿提供应用私钥。"]},"PENDING_ONLY":{"templateLines":["📋 当前已有以下尚未上线的 {{applicationType}} 应用:","","{{candidateTable}}","","以上应用当前不可复用。"]},"ONLINE_WITH_OPTIONAL_PENDING":{"templateLines":["📋 发现您已有以下上线 {{applicationType}} 应用:","","{{candidateTable}}"]}}},{"messageId":"application.candidate.invalid","owner":"catalog_owned","trigger":"application.candidates.selection_invalid","blocking":false,"allowedReplies":[],"variables":[],"requiredPolicyIds":[],"variants":{"DEFAULT":{"templateLines":["上一次回复未匹配当前应用候选或支持的选择格式。已重新展示当前候选,请按下方方式重新选择。","序号、非上线、历史或候选外 `appId` 均不会触发应用操作。"]}}},{"messageId":"application.candidate.select","owner":"catalog_owned","trigger":"application.candidates.selection_required","blocking":true,"allowedReplies":[],"replyMode":"freeform","variables":[{"name":"keyToolManual","type":"string","required":false,"derived":true,"values":["renderer"]},{"name":"keyToolFormatHint","type":"string","required":false,"derived":true,"values":["【密钥格式说明】支付宝开放平台密钥工具“生成密钥”默认生成适用于 Java 编程语言的 PKCS#8 格式应用私钥;非 Java 语言请使用“密钥工具-格式转换”转换获取 PKCS#1 格式的应用私钥。"]}],"requiredPolicyIds":[],"variants":{"ONLINE_WEB_OR_NEW":{"templateLines":["请选择应用分支下一步:","","- 回复上方事实表中状态为“已上线”的完整 `appId`:复用对应应用。","- 新建应用:在同一条回复中表明要新建并提供【应用公钥】,材料完整后将创建应用、设置公钥并进入公钥确认。","","新建回复示例(请替换为实际内容):","```text","新建","应用公钥:<你自行生成的完整应用公钥>","```","","支付宝开放平台密钥工具可用于生成应用公私钥对;本分支不会自动下载。如需我下载请直接说明,或访问:{{keyToolManual}}","","{{keyToolFormatHint}}","","只向 Agent 提供【应用公钥】,请勿提供应用私钥。"]},"PENDING_WEB_OR_NEW":{"templateLines":["当前同类型应用均未上线,不能复用。","","- 新建应用:在同一条回复中表明要新建并提供【应用公钥】,材料完整后将创建应用、设置公钥并进入公钥确认。","- 回复 `暂不新建`:本轮应用分支保持待办。","","新建回复示例(请替换为实际内容):","```text","新建","应用公钥:<你自行生成的完整应用公钥>","```","","支付宝开放平台密钥工具可用于生成应用公私钥对;本分支不会自动下载。如需我下载请直接说明,或访问:{{keyToolManual}}","","{{keyToolFormatHint}}","","只向 Agent 提供【应用公钥】,请勿提供应用私钥。"]},"ONLINE_MOBILE_OR_NEW":{"templateLines":["请选择应用分支下一步:","","- 回复上方事实表中状态为“已上线”的完整 `appId`:复用对应应用。","- 新建 iOS:新建,我选择 iOS + iOS Bundle ID(bundleId)+【应用公钥】","- 新建 Android:新建,我选择 Android + Android 应用包名(appPackage)+ Android 应用签名摘要(appSign)+【应用公钥】","- 新建 iOS + Android:新建,我要同时支持两类系统 + iOS Bundle ID + Android 应用包名 + Android 应用签名摘要 +【应用公钥】","","支付宝开放平台密钥工具可用于生成应用公私钥对;本分支不会自动下载。如需我下载请直接说明,或访问:{{keyToolManual}}","","{{keyToolFormatHint}}","","只向 Agent 提供【应用公钥】,请勿提供应用私钥。"]},"PENDING_MOBILE_OR_NEW":{"templateLines":["当前同类型应用均未上线,不能复用。","","- 新建 iOS:新建,我选择 iOS + iOS Bundle ID(bundleId)+【应用公钥】","- 新建 Android:新建,我选择 Android + Android 应用包名(appPackage)+ Android 应用签名摘要(appSign)+【应用公钥】","- 新建 iOS + Android:新建,我要同时支持两类系统 + iOS Bundle ID + Android 应用包名 + Android 应用签名摘要 +【应用公钥】","- 回复 `暂不新建`:本轮应用分支保持待办。","","支付宝开放平台密钥工具可用于生成应用公私钥对;本分支不会自动下载。如需我下载请直接说明,或访问:{{keyToolManual}}","","{{keyToolFormatHint}}","","只向 Agent 提供【应用公钥】,请勿提供应用私钥。"]}}},{"messageId":"application.operation.result","owner":"catalog_owned","trigger":"application.operation.completed","blocking":false,"allowedReplies":[],"variables":[{"name":"appId","type":"singleLine","required":true},{"name":"actualStatus","type":"singleLine","required":true},{"name":"nextAction","type":"singleLine","required":false},{"name":"appKeySavePath","type":"singleLine","required":false},{"name":"appKeySaveLine","type":"string","required":false,"derived":true,"values":["renderer"]},{"name":"manualConfigurationNextAction","type":"string","required":false,"derived":true,"values":["前往支付宝 AI 付站点,进入一站式接入 → 密钥配置,按当前 appId 获取对应的支付宝公钥,并手动配置到项目:https://aipay.alipay.com/?from=alipay-aipay-skill"]}],"requiredPolicyIds":["P-PARTIAL-RESULT"],"variants":{"DEFAULT":{"templateLines":["应用 `{{appId}}` 的实际状态:{{actualStatus}}。","{{appKeySaveLine}}","","下一步:{{nextAction}}","","待审核、待设置公钥或待人工配置时不会表述为应用发布完成。"]},"ALIPAY_PUBLIC_KEY_MANUAL_CONFIGURATION":{"templateLines":["应用 `{{appId}}` 的实际状态:需人工配置。","","下一步:{{manualConfigurationNextAction}}","","待人工配置时不会表述为应用发布完成。"]}}},{"messageId":"application.harmony.manual_create","owner":"catalog_owned","trigger":"application.harmony.manual_create","blocking":true,"allowedReplySet":"affirmative","inputHintType":"complete","variables":[],"requiredPolicyIds":["P-MCP-CONTRACT-FROZEN"],"variants":{"DEFAULT":{"templateLines":["当前 Skill 不支持创建 HarmonyOS 移动应用。","","请前往支付宝开放平台,进入“控制台” → “创建移动应用”,完成平台要求的创建、配置和审核:https://open.alipay.com/","","完成后将重新查询移动应用列表。"]}}},{"messageId":"service.operation.result","owner":"catalog_owned","trigger":"service.operation.completed","blocking":false,"allowedReplies":[],"variables":[{"name":"serviceId","type":"singleLine","required":true},{"name":"actualResult","type":"singleLine","required":true}],"requiredPolicyIds":["P-PARTIAL-RESULT"],"variants":{"DEFAULT":{"templateLines":["服务市场实际结果:{{actualResult}}。","已确认的 `serviceId`:`{{serviceId}}`。","","查看服务状态和服务详情:请前往支付宝 AI 付站点,登录后进入控制台 → 服务管理。","https://aipay.alipay.com/?from=alipay-aipay-skill","","该结果只代表服务分支,不会覆盖签约或应用分支的实际状态。"]}}},{"messageId":"signing.operation.result","owner":"catalog_owned","trigger":"signing.operation.completed","blocking":false,"allowedReplies":[],"variables":[{"name":"actualStatus","type":"singleLine","required":true},{"name":"feeDisplay","type":"singleLine","required":false},{"name":"nextAction","type":"singleLine","required":true}],"requiredPolicyIds":["P-PARTIAL-RESULT"],"variants":{"WITHOUT_FEE":{"templateLines":["产品当前签约状态:{{actualStatus}}。","","下一步:{{nextAction}}"]},"WITH_FEE":{"templateLines":["产品当前签约状态:{{actualStatus}}。","费率:{{feeDisplay}}","","下一步:{{nextAction}}"]}}},{"messageId":"service.candidates.facts","owner":"catalog_owned","trigger":"service.candidates.queried","blocking":false,"allowedReplies":[],"variables":[{"name":"serviceCandidates","type":"serviceCandidates","required":true},{"name":"candidateTable","type":"string","required":false,"derived":true,"values":["renderer"]}],"requiredPolicyIds":["P-PARTIAL-RESULT"],"variants":{"EMPTY":{"templateLines":["📋 暂无已有服务。"]},"DEFAULT":{"templateLines":["📋 发现您已有以下服务:","","{{candidateTable}}"]}}},{"messageId":"service.candidate.invalid","owner":"catalog_owned","trigger":"service.candidates.selection_invalid","blocking":false,"allowedReplies":[],"variables":[],"requiredPolicyIds":[],"variants":{"DEFAULT":{"templateLines":["上一次回复没有匹配到有效的服务操作。","仅回复序号,或提供不在当前事实表中的 `serviceId`,均不会触发服务操作。"]}}},{"messageId":"service.candidate.select","owner":"catalog_owned","trigger":"service.candidates.selection_required","blocking":true,"allowedReplies":[],"replyMode":"freeform","variables":[],"requiredPolicyIds":[],"variants":{"DEFAULT":{"templateLines":["请选择下一步:","","- 回复上方事实表中的完整 `serviceId`:复用对应服务。","- 新建服务:回复 `新建`,并在同一条回复中提供服务名称、服务描述、服务地址、服务单价、请求示例 JSON。","- 回复 `修改:<serviceId>`:修改对应服务。","","- 如果只回复 `新建` 或材料不完整,我会再提示补充缺失项。","","新建回复示例(请替换为实际内容):","```text","新建","服务名称:天气查询","服务描述:按城市查询天气","服务地址:以 http:// 或 https:// 开头的实际服务地址","服务单价:0.08 元/次","请求示例 JSON:{\"city\":\"杭州\"}","```","","如需核对服务状态或服务详情,可前往支付宝 AI 付站点,登录后进入控制台 → 服务管理查看。","https://aipay.alipay.com/?from=alipay-aipay-skill"]}}},{"messageId":"service.id.missing","owner":"catalog_owned","trigger":"service.save.id_missing","blocking":false,"allowedReplies":[],"variables":[{"name":"serviceName","type":"singleLine","required":true}],"requiredPolicyIds":["P-PARTIAL-RESULT"],"variants":{"DEFAULT":{"templateLines":["服务 `{{serviceName}}` 的创建或修改调用已返回成功,但未解析到 `serviceId`,因此服务分支尚未完成。接下来会重新查询完整服务列表,并使用本次实际提交资料与列表可见字段做唯一匹配;没有唯一结果时保持未知。在取得实际 `serviceId` 前不会宣称 AI 按量付费产品开通完成。","","如需自行核对服务状态或服务详情,可前往支付宝 AI 付站点,登录后进入控制台 → 服务管理查看。","https://aipay.alipay.com/?from=alipay-aipay-skill"]}}}]}
1
+ {"schemaVersion":1,"interactionPrompts":{"confirmInputHint":"如确认,可以回复“继续”“确认”“OK”,也可以输入 1;如需调整,请直接说明。","planAdjustmentHint":"我会继续执行,无需回复;如需调整方案,请中断 Agent 执行并说明。","authorizationCompletionInputHint":"授权完成后可回复“继续”“好了”“OK”或输入 1","publicKeyConfirmationCompletionInputHint":"支付宝扫码确认应用公钥完成后可回复“继续”“好了”“OK”或输入 1","completionInputHint":"完成后可回复“继续”“好了”“已完成”“OK”或输入 1;如需调整,请直接说明。","scanReturnHint":"扫码完成后请回到 Agent 对话页面"},"interactionReplySets":{"affirmative":["1","继续","继续推进","继续执行","继续处理","继续下一步","请继续","请继续推进","继续吧","确认","确认继续","确定","同意","可以","可以继续","可以继续推进","没问题","好","好的","好了","好的继续","已完成","完成","完成了","操作完成","操作好了","已经完成","已经好了","处理好了","确认好了","弄好了","OK","Okay","Yes","Y"]},"messages":[{"messageId":"product.unsupported","owner":"catalog_owned","trigger":"route.unsupported_product","blocking":false,"allowedReplies":[],"variables":[{"name":"productName","type":"singleLine","required":true}],"requiredPolicyIds":["P-MCP-CONTRACT-FROZEN"],"variants":{"DEFAULT":{"templateLines":["当前 Skill 只支持接入 AI 按量付费、AI 网页应用收款和 AI 移动应用收款,不支持 `{{productName}}`。","","- 查看支付宝其他收单产品请前往:[支付宝开放平台](https://open.alipay.com)","- 开通支付宝其他收单产品请前往:[支付宝商家平台](https://b.alipay.com/page/portal/home)"]}}},{"messageId":"onboarding.enterprise.unsupported","owner":"catalog_owned","trigger":"onboarding.enterprise_account","blocking":false,"allowedReplies":[],"variables":[],"requiredPolicyIds":[],"variants":{"ONBOARDING_ONLY":{"templateLines":["暂不支持【企业账号】通过 Skill 完成产品开通。","","请前往支付宝商家平台开通:https://b.alipay.com/page/portal/home","","如需继续进行代码开发,试试对 Agent 说:为我集成 AI 网页应用收款/AI 移动应用收款/AI 按量付费"]},"FULL_PROCESS":{"templateLines":["暂不支持【企业账号】通过 Skill 完成产品开通。","","请前往支付宝商家平台开通:https://b.alipay.com/page/portal/home"]}}},{"messageId":"onboarding.windows.redirect","owner":"catalog_owned","trigger":"onboarding.windows_platform","blocking":false,"allowedReplies":[],"variables":[{"name":"officialUrl","type":"officialTemporaryUrl","required":true,"urlKind":"windowsOnboardingRedirect"}],"requiredPolicyIds":[],"variants":{"DEFAULT":{"templateLines":["当前为 Windows 系统,请您暂时前往支付宝 AI 付站点完成产品开通:","{{officialUrl}}"]}}},{"messageId":"product.clarify","owner":"catalog_owned","trigger":"route.product_unclear","blocking":true,"allowedReplies":[],"replyMode":"freeform","variables":[],"requiredPolicyIds":[],"variants":{"DEFAULT":{"templateLines":["请确认您的业务场景:","","1. AI 按量付费:买家通过 Agent 使用支付宝完成支付,适用于 API、MCP、算力资源等按调用付费。","2. AI 网页应用收款:买家在电脑网页或手机浏览器页面使用支付宝付款。","3. AI 移动应用收款:买家在 APP 内调起支付宝完成付款。"]}}},{"messageId":"onboarding.mcc.clarify","owner":"catalog_owned","trigger":"onboarding.mcc_unclear","blocking":true,"allowedReplies":[],"replyMode":"freeform","variables":[{"name":"productName","type":"enum","required":true,"values":["AI 按量付费","AI 网页应用收款","AI 移动应用收款"]}],"requiredPolicyIds":[],"variants":{"DEFAULT":{"templateLines":["MCC 与经营类目强相关,无法仅从“{{productName}}”确定。","","请补充本次接入的经营内容,例如:","","- 电商购物(实物商品销售)","- 在线工具","- 软件开发服务","- 售卖宠物用品","","也可以直接提供你已知的 MCC 二级类目名称或编码。"]}}},{"messageId":"onboarding.mcc.no_match","owner":"catalog_owned","trigger":"onboarding.mcc_search.none","blocking":true,"allowedReplies":[],"replyMode":"freeform","variables":[],"requiredPolicyIds":[],"variants":{"DEFAULT":{"templateLines":["没有匹配到符合描述的经营类目,请重新澄清经营描述。"]}}},{"messageId":"onboarding.mcc.candidates","owner":"catalog_owned","trigger":"onboarding.mcc_candidates.selection_required","blocking":true,"allowedReplies":[],"replyMode":"runtime_enum","variables":[{"name":"mccCandidates","type":"mccCandidates","required":true},{"name":"candidateTable","type":"string","required":false,"derived":true,"values":["renderer"]}],"requiredPolicyIds":[],"variants":{"DEFAULT":{"templateLines":["我找到了几个可能匹配的经营类目,请选择最接近的一项:","","{{candidateTable}}","","请回复序号、MCC 二级类目名称或编码;如果都不匹配,请补充实际销售的商品或服务类型。"]}}},{"messageId":"integration.start.confirm","owner":"catalog_owned","trigger":"integration.step2.ready","blocking":false,"allowedReplies":[],"postRenderHintType":"planAdjustment","variables":[{"name":"productName","type":"enum","required":true,"values":["AI 按量付费","AI 网页应用收款","AI 移动应用收款"]},{"name":"projectPath","type":"path","required":true},{"name":"projectOriginLabel","type":"enum","required":true,"values":["现有项目","本轮新建项目"]},{"name":"integrationStatus","type":"enum","required":true,"values":["TARGET_PARTIAL","OTHER_PRODUCT_ONLY","NO_PAYMENT"]},{"name":"otherProducts","type":"singleLine","required":false},{"name":"language","type":"singleLine","required":true},{"name":"framework","type":"singleLine","required":true},{"name":"nextFlow","type":"enum","required":true,"values":["integration"]}],"requiredPolicyIds":["P-PROJECT-PROTECT","P-SENSITIVE-STATE"],"variants":{"AIPAY":{"templateLines":["代码开发方案:","","| 项目 | 内容 |","|---|---|","| 目标产品 | {{productName}} |","| 项目路径 | `{{projectPath}}` |","| 项目来源 | {{projectOriginLabel}} |","| 代码开发状态 | {{integrationStatus}} |","| 检测到的其他支付产品 | {{otherProducts}} |","| 语言 / 框架 | {{language}} / {{framework}} |","","服务声明:","1. 使用本服务需遵守法律法规、自行审核测试并承担使用责任,我方不对使用效果、正确性担保。","2. 生产环境账号密码、API Keys、应用私钥等敏感信息切勿暴露给 Agent;仅沙箱环境信息可按本 Skill 的沙箱配置流程提供和使用。","","推荐扫码入群,使用支付宝 AI 付接入 Skill 的过程中如您遇到任何问题,均可在群内咨询","• 钉钉-支付宝AI支付官方技术支持群:https://mdn.alipayobjects.com/huamei_5fajmi/afts/img/MlFpRKmYyLIAAAAARJAAAAgADlahAQFr/original","• 企业微信-支付宝AI支付官方交流群:https://mdn.alipayobjects.com/huamei_5fajmi/afts/img/Cz0TTZVO7_4AAAAAQDAAAAgADlahAQFr/fmt.webp"]},"WEBPAY":{"templateLines":["代码开发方案:","","| 项目 | 内容 |","|---|---|","| 目标产品 | AI 网页应用收款 |","| 项目路径 | `{{projectPath}}` |","| 项目来源 | {{projectOriginLabel}} |","| 代码开发状态 | {{integrationStatus}} |","| 检测到的其他支付产品 | {{otherProducts}} |","| 语言 / 框架 | {{language}} / {{framework}} |","","服务声明:","1. 使用本服务需遵守法律法规、自行审核测试并承担使用责任,我方不对使用效果、正确性担保。","2. 生产环境账号密码、API Keys、应用私钥等敏感信息切勿暴露给 Agent;仅沙箱环境信息可按本 Skill 的沙箱配置流程提供和使用。","","推荐扫码入群,使用支付宝 AI 付接入 Skill 的过程中如您遇到任何问题,均可在群内咨询","• 钉钉-支付宝AI支付官方技术支持群:https://mdn.alipayobjects.com/huamei_5fajmi/afts/img/MlFpRKmYyLIAAAAARJAAAAgADlahAQFr/original","• 企业微信-支付宝AI支付官方交流群:https://mdn.alipayobjects.com/huamei_5fajmi/afts/img/Cz0TTZVO7_4AAAAAQDAAAAgADlahAQFr/fmt.webp"]},"APPPAY":{"templateLines":["代码开发方案:","","| 项目 | 内容 |","|---|---|","| 目标产品 | AI 移动应用收款 |","| 项目路径 | `{{projectPath}}` |","| 项目来源 | {{projectOriginLabel}} |","| 代码开发状态 | {{integrationStatus}} |","| 检测到的其他支付产品 | {{otherProducts}} |","| 语言 / 框架 | {{language}} / {{framework}} |","","【前置提醒】接 AI 移动应用收款需要你有自己的 APP,本轮代码开发主要覆盖商家服务端支付接口的实现,APP 还需接入支付宝客户端 SDK 后才能调起支付。","","服务声明:","1. 使用本服务需遵守法律法规、自行审核测试并承担使用责任,我方不对使用效果、正确性担保。","2. 生产环境账号密码、API Keys、应用私钥等敏感信息切勿暴露给 Agent;仅沙箱环境信息可按本 Skill 的沙箱配置流程提供和使用。","","推荐扫码入群,使用支付宝 AI 付接入 Skill 的过程中如您遇到任何问题,均可在群内咨询","• 钉钉-支付宝AI支付官方技术支持群:https://mdn.alipayobjects.com/huamei_5fajmi/afts/img/MlFpRKmYyLIAAAAARJAAAAgADlahAQFr/original","• 企业微信-支付宝AI支付官方交流群:https://mdn.alipayobjects.com/huamei_5fajmi/afts/img/Cz0TTZVO7_4AAAAAQDAAAAgADlahAQFr/fmt.webp"]}}},{"messageId":"onboarding.plan.confirm","owner":"catalog_owned","trigger":"onboarding.step2.ready","blocking":false,"allowedReplies":[],"postRenderHintType":"planAdjustment","variables":[{"name":"mccCode","type":"mccCode","required":true},{"name":"mccName","type":"singleLine","required":true},{"name":"mccContextReceipt","type":"string","required":true},{"name":"mccQualification","type":"singleLine","required":true}],"requiredPolicyIds":["P-AUTH-BEFORE-ONBOARDING"],"variants":{"AIPAY":{"templateLines":["产品开通方案:","","| 项目 | 内容 |","|---|---|","| 产品 | AI 按量付费 |","| 产品码 | `I1080300001000160457` |","| 经营类目 | {{mccName}} (`{{mccCode}}`) |","| 特殊资质 | {{mccQualification}} |","| 授权范围 | `app:all,machine_pay:write,agmnt:write` |","| 材料预告 | 1、签约申请无需页面截图;2、新建或修改服务时收集服务资料;3、新建应用设置应用公钥时由用户提供 |","","你也可以选择前往支付宝 AI 付站点完成产品开通(https://aipay.alipay.com/?from=alipay-aipay-skill)","","暂不支持【企业账号】通过 Skill 完成产品开通,【企业账号】如需开通请前往支付宝商家平台(https://b.alipay.com/page/portal/home)","","推荐扫码入群,使用支付宝 AI 付接入 Skill 的过程中如您遇到任何问题,均可在群内咨询","• 钉钉-支付宝AI支付官方技术支持群:https://mdn.alipayobjects.com/huamei_5fajmi/afts/img/MlFpRKmYyLIAAAAARJAAAAgADlahAQFr/original","• 企业微信-支付宝AI支付官方交流群:https://mdn.alipayobjects.com/huamei_5fajmi/afts/img/Cz0TTZVO7_4AAAAAQDAAAAgADlahAQFr/fmt.webp"]},"WEBPAY":{"templateLines":["产品开通方案:","","| 项目 | 内容 |","|---|---|","| 产品 | AI 网页应用收款 |","| 产品码 | `I1080300001000041203` |","| 经营类目 | {{mccName}} (`{{mccCode}}`) |","| 特殊资质 | {{mccQualification}} |","| 授权范围 | `app:all,fast_instant_trade_pay:write` |","| 材料预告 | 1、未签约时收集首页、商品页、支付页 3 张截图;支付页是展示支付宝付款方式,等待用户去支付的页面;2、新建应用设置应用公钥时由用户提供 |","","你也可以选择前往支付宝 AI 付站点完成产品开通(https://aipay.alipay.com/?from=alipay-aipay-skill)","","暂不支持【企业账号】通过 Skill 完成产品开通,【企业账号】如需开通请前往支付宝商家平台(https://b.alipay.com/page/portal/home)","","推荐扫码入群,使用支付宝 AI 付接入 Skill 的过程中如您遇到任何问题,均可在群内咨询","• 钉钉-支付宝AI支付官方技术支持群:https://mdn.alipayobjects.com/huamei_5fajmi/afts/img/MlFpRKmYyLIAAAAARJAAAAgADlahAQFr/original","• 企业微信-支付宝AI支付官方交流群:https://mdn.alipayobjects.com/huamei_5fajmi/afts/img/Cz0TTZVO7_4AAAAAQDAAAAgADlahAQFr/fmt.webp"]},"APPPAY":{"templateLines":["产品开通方案:","","| 项目 | 内容 |","|---|---|","| 产品 | AI 移动应用收款 |","| 产品码 | `I1080300001000041313` |","| 经营类目 | {{mccName}} (`{{mccCode}}`) |","| 特殊资质 | {{mccQualification}} |","| 授权范围 | `app:all,auth_alipay_apppay:write` |","| 材料预告 | 1、未签约时收集 APP 名称和首页、商品页、支付页 3 张截图;支付页是展示支付宝付款方式,等待用户去支付的页面;2、新建应用支持 iOS、Android 或 ALL(二者同时);3、新建应用设置应用公钥时由用户提供 |","| 特别提醒 | 鸿蒙系统移动应用暂不支持通过 Skill 创建,请前往支付宝开放平台-控制台手动创建:https://open.alipay.com/ |","","你也可以选择前往支付宝 AI 付站点完成产品开通(https://aipay.alipay.com/?from=alipay-aipay-skill)","","暂不支持【企业账号】通过 Skill 完成产品开通,【企业账号】如需开通请前往支付宝商家平台(https://b.alipay.com/page/portal/home)","","推荐扫码入群,使用支付宝 AI 付接入 Skill 的过程中如您遇到任何问题,均可在群内咨询","• 钉钉-支付宝AI支付官方技术支持群:https://mdn.alipayobjects.com/huamei_5fajmi/afts/img/MlFpRKmYyLIAAAAARJAAAAgADlahAQFr/original","• 企业微信-支付宝AI支付官方交流群:https://mdn.alipayobjects.com/huamei_5fajmi/afts/img/Cz0TTZVO7_4AAAAAQDAAAAgADlahAQFr/fmt.webp"]}}},{"messageId":"auth.page","owner":"catalog_owned","trigger":"AUTH_FLOW:READY_TO_OPEN","blocking":false,"allowedReplies":[],"postRenderHintType":"scanReturn","expiresWithPrompt":true,"variables":[{"name":"productName","type":"enum","required":true,"values":["AI 按量付费","AI 网页应用收款","AI 移动应用收款"]},{"name":"deviceCode","type":"singleLine","required":true},{"name":"mccCode","type":"mccCode","required":true},{"name":"mccName","type":"singleLine","required":true},{"name":"mccContextReceipt","type":"string","required":true},{"name":"verificationCode","type":"singleLine","required":true},{"name":"expiresDisplay","type":"singleLine","required":true},{"name":"officialUrl","type":"officialTemporaryUrl","required":true,"urlKind":"authorization"}],"requiredPolicyIds":["P-AUTH-URL","P-AUTH-URL-AUTO-OPEN"],"variants":{"READY":{"templateLines":["接下来会自动打开支付宝扫码授权页面,请在页面中扫码完成授权。","","| 授权信息 | 内容 |","|---|---|","| 产品类型 | {{productName}} |","| 经营类目 | {{mccName}} (`{{mccCode}}`) |","| 确认码 | {{verificationCode}} |","| 授权链接有效期 | {{expiresDisplay}} |","","安全提示:支付宝扫码后,请核对授权页面显示的确认码是否与上方一致;如不一致,请勿授权并立即停止操作。确认码只用于核对,不需要输入。","","如果自动跳转失败,请复制下方链接到网页浏览器打开。","授权链接:","{{officialUrl}}"]}}},{"messageId":"auth.open.manual","owner":"catalog_owned","trigger":"AUTH_OPEN:OPEN_FAILED|GUI_UNAVAILABLE|LINK_ONLY","blocking":false,"allowedReplies":[],"variables":[],"requiredPolicyIds":["P-AUTH-URL-AUTO-OPEN"],"variants":{"DEFAULT":{"templateLines":["未能自动打开支付宝授权页面,请手动打开上一条消息中的授权链接并完成扫码。我会继续检查授权结果,无需回复。"]}}},{"messageId":"application.key.page","owner":"catalog_owned","trigger":"application.key_page.ready","blocking":false,"allowedReplies":[],"postRenderHintType":"scanReturn","expiresWithPrompt":true,"variables":[{"name":"appId","type":"singleLine","required":true},{"name":"officialUrl","type":"officialTemporaryUrl","required":true,"urlKind":"publicKeyConfirmation"}],"requiredPolicyIds":["P-KEY-URL","P-KEY-URL-AUTO-OPEN"],"variants":{"READY":{"templateLines":["接下来会自动打开应用 `{{appId}}` 的公钥确认页面,请打开支付宝扫码确认应用公钥。","","如果自动跳转失败,请复制下方链接到网页浏览器打开。","公钥确认链接:","{{officialUrl}}"]}}},{"messageId":"application.key.pending","owner":"catalog_owned","trigger":"FLOW:KEY_NOT_CONFIRMED","blocking":true,"allowedReplySet":"affirmative","inputHintType":"publicKeyConfirmationComplete","variables":[],"requiredPolicyIds":["P-KEY-PUBLIC-USER"],"variants":{"DEFAULT":{"templateLines":["应用公钥尚未确认,请先完成公钥设置确认。"]}}},{"messageId":"onboarding.discovery.summary","owner":"catalog_owned","trigger":"onboarding.discovery.finished","blocking":false,"allowedReplies":[],"variables":[{"name":"signingStatus","type":"enum","required":true,"values":["未签约","已提交待生效","已生效","其他状态待核验","查询失败"]},{"name":"serviceStatus","type":"enum","required":false,"values":["无已有服务","已有服务候选","查询失败"]},{"name":"applicationStatus","type":"enum","required":true,"values":["无同类型应用","有上线应用可复用","仅有未上线应用","查询失败"]}],"requiredPolicyIds":["P-PARTIAL-RESULT","P-MATERIAL-CATEGORY"],"variants":{"AIPAY":{"templateLines":["当前查询结果:","","| 流程 | 当前状态 |","|---|---|","| 产品签约 | {{signingStatus}} |","| 服务市场 | {{serviceStatus}} |","| 应用发布 | {{applicationStatus}} |"]},"WEBPAY":{"templateLines":["当前查询结果:","","| 流程 | 当前状态 |","|---|---|","| 产品签约 | {{signingStatus}} |","| 服务市场 | 无需处理 |","| 应用发布 | {{applicationStatus}} |"]},"APPPAY":{"templateLines":["当前查询结果:","","| 流程 | 当前状态 |","|---|---|","| 产品签约 | {{signingStatus}} |","| 服务市场 | 无需处理 |","| 应用发布 | {{applicationStatus}} |"]}}},{"messageId":"materials.category.collect","owner":"catalog_owned","trigger":"materials.category.ready","blocking":true,"allowedReplies":[],"replyMode":"freeform","expiresWithPrompt":true,"variables":[{"name":"categoryName","type":"enum","required":true,"values":["签约材料","服务资料","应用资料"]},{"name":"currentStatus","type":"enum","required":true,"values":["待补充","部分已提供,待补充","校验失败,需更正"]},{"name":"missingFields","type":"enumList","required":true,"values":["APP名称","首页截图","商品页截图","支付页截图","特殊资质材料","服务名称","服务描述","服务地址","服务单价","请求示例JSON","应用平台和对应资料","iOS Bundle ID(bundleId)","Android 应用包名(appPackage)","Android 应用签名摘要(appSign)","应用公钥"]},{"name":"paymentPageHint","type":"string","derived":true,"values":["支付页说明:支付页是展示支付宝付款方式,等待用户去支付的页面,不是支付成功页。"]},{"name":"serviceUrlHint","type":"string","derived":true,"values":["请提供有效的 URL 地址(以 http:// 或 https:// 开头)"]},{"name":"servicePricingHint","type":"string","derived":true,"values":["请提供不低于 0.01 元的有效服务单价,可输入 0.03、0.03元或 0.03 元/次。"]},{"name":"keyToolManual","type":"string","required":false,"derived":true,"values":["renderer"]},{"name":"keyToolFormatHint","type":"string","required":false,"derived":true,"values":["【密钥格式说明】支付宝开放平台密钥工具“生成密钥”默认生成适用于 Java 编程语言的 PKCS#8 格式应用私钥;非 Java 语言请使用“密钥工具-格式转换”转换获取 PKCS#1 格式的应用私钥。"]},{"name":"specialQualificationHint","type":"string","required":false}],"requiredPolicyIds":["P-MATERIAL-CATEGORY"],"variants":{"INITIAL":{"templateLines":["当前收集类别:{{categoryName}}","","请在一条回复中提供:{{missingFields}}。","{{paymentPageHint}}","{{specialQualificationHint}}"]},"APP_WEB_INITIAL":{"templateLines":["当前收集类别:应用资料","","请在一条回复中提供【应用公钥】;请勿提供应用私钥。无需另行回复 `新建`。","","填写示例(请替换为实际内容):","```text","应用公钥:<你自行生成的完整应用公钥>","```","需要支付宝开放平台密钥工具时,可从官方地址下载:{{keyToolManual}}","","{{keyToolFormatHint}}"]},"APP_MOBILE_INITIAL":{"templateLines":["当前收集类别:应用资料","","请在一条回复中选择平台并提供以下材料:","","- 如选择 iOS 系统,请回复 --> 我选择 iOS + iOS Bundle ID(bundleId)+【应用公钥】","- 如选择 Android 系统,请回复 --> 我选择 Android + Android 应用包名(appPackage)+ Android 应用签名摘要(appSign)+【应用公钥】","- 如选择 iOS + Android 系统,请回复 --> 我要同时支持两类系统 + iOS Bundle ID + Android 应用包名 + Android 应用签名摘要 +【应用公钥】","","填写示例(请替换为实际内容):","```text","我选择 Android","Android 应用包名(appPackage):com.example.app","Android 应用签名摘要(appSign):<你的 Android 应用签名摘要>","应用公钥:<你自行生成的完整应用公钥>","```","","请勿提供应用私钥。无需另行回复 `新建`。需要支付宝开放平台密钥工具时,可从官方地址下载:{{keyToolManual}}","","{{keyToolFormatHint}}","","注:鸿蒙系统移动应用暂不支持通过 Skill 创建,请前往支付宝开放平台-控制台手动创建:https://open.alipay.com/"]},"PARTIAL":{"templateLines":["当前收集类别:{{categoryName}}","","还需补充:{{missingFields}}。","{{paymentPageHint}}","{{specialQualificationHint}}","已校验字段无需重复提供。"]},"INVALID":{"templateLines":["当前收集类别:{{categoryName}}","","以下内容需要更正:{{missingFields}}。","{{serviceUrlHint}}","{{servicePricingHint}}","{{paymentPageHint}}","{{specialQualificationHint}}","已校验字段无需重复提供。"]},"SERVICE_INITIAL":{"templateLines":["当前收集类别:服务资料","","请在一条回复中提供:服务名称、服务描述、服务地址、服务单价、请求示例JSON。","","填写示例(请替换为实际内容):","```text","服务名称:天气查询","服务描述:按城市查询天气","服务地址:以 http:// 或 https:// 开头的实际服务地址","服务单价:0.08 元/次","请求示例 JSON:{\"city\":\"杭州\"}","```","{{specialQualificationHint}}"]}}},{"messageId":"service.create.summary","owner":"catalog_owned","trigger":"service.create.ready","blocking":false,"allowedReplies":[],"variables":[{"name":"serviceName","type":"singleLine","required":true},{"name":"serviceDescription","type":"singleLine","required":true},{"name":"serviceUrl","type":"runtimeUrl","required":true},{"name":"servicePricing","type":"singleLine","required":true},{"name":"serviceSchema","type":"string","required":true}],"requiredPolicyIds":["P-SERVICE-WRITE","P-WRITE-UNKNOWN"],"variants":{"DEFAULT":{"templateLines":["将创建以下 AI 按量付费服务:","","服务名称:{{serviceName}}","服务描述:{{serviceDescription}}","服务地址:`{{serviceUrl}}`","服务单价:{{servicePricing}} 元/次","请求示例 JSON:","```json","{{serviceSchema}}","```"]}}},{"messageId":"onboarding.write.confirm","owner":"catalog_owned","trigger":"external_write.ready","blocking":true,"allowedReplySet":"affirmative","inputHintType":"confirm","expiresWithPrompt":true,"variables":[{"name":"sessionSummary","type":"singleLine","required":true},{"name":"subjectSummary","type":"singleLine","required":true},{"name":"productName","type":"enum","required":true,"values":["AI 按量付费","AI 网页应用收款","AI 移动应用收款"]},{"name":"actionTypes","type":"enumList","required":true,"values":["服务修改"]},{"name":"serviceId","type":"singleLine","required":false},{"name":"serviceName","type":"singleLine","required":false},{"name":"serviceDescription","type":"singleLine","required":false},{"name":"serviceUrl","type":"runtimeUrl","required":false},{"name":"servicePricing","type":"singleLine","required":false},{"name":"serviceSchema","type":"string","required":false}],"requiredPolicyIds":["P-SERVICE-WRITE","P-WRITE-UNKNOWN"],"variants":{"SERVICE_UPDATE_ONLY":{"templateLines":["请确认以下支付宝操作:","","- 当前会话:{{sessionSummary}}","- 操作主体:{{subjectSummary}}","- 产品:AI 按量付费","- 动作:服务修改","","服务ID:`{{serviceId}}`","服务名称:{{serviceName}}","服务描述:{{serviceDescription}}","服务地址:`{{serviceUrl}}`","服务单价:{{servicePricing}} 元/次","请求示例 JSON:","```json","{{serviceSchema}}","```","","本次只执行上述服务修改;签约、应用创建、公钥设置和应用提审不包含在本确认中。"]}}},{"messageId":"process.partial_result","owner":"catalog_owned","trigger":"process.current_endpoint","blocking":false,"allowedReplies":[],"variables":[{"name":"productName","type":"enum","required":true,"values":["AI 按量付费","AI 网页应用收款","AI 移动应用收款"]},{"name":"processResultTitle","type":"enum","required":true,"values":["支付产品-产品开通已完成","流程进展"]},{"name":"integrationResult","type":"enum","required":true,"values":["不在本轮执行范围","已完成","部分完成,沙箱配置待完成","部分完成,人工待验证","未完成","结果未知"]},{"name":"sandboxConfigState","type":"enum","required":false,"values":["READY","CREATE_PENDING","VERIFY_PENDING"]},{"name":"signingResult","type":"enum","required":true,"values":["未签约","已提交,等待生效","已生效","失败","结果未知"]},{"name":"serviceResult","type":"enum","required":true,"values":["无需处理","已复用","创建成功,状态未取得","修改成功,状态未取得","已完成","失败","结果未知"]},{"name":"applicationResult","type":"enum","required":true,"values":["待选择","已创建,待设置公钥","公钥待确认","HarmonyOS 应用待平台侧创建、配置或上线","已提交审核,等待上线","已上线且配置完整","需人工配置","失败","结果未知"]},{"name":"remainingActions","type":"singleLine","required":true},{"name":"manualVerificationItems","type":"singleLine","required":false},{"name":"manualVerificationLine","type":"string","required":false,"derived":true,"values":["renderer"]},{"name":"productionReadinessBlock","type":"string","required":false,"derived":true,"values":["renderer"]},{"name":"statusQueryHint","type":"enum","required":false,"derived":true,"values":["。这期间,你也可以试着对 Agent 说:“帮我查询产品签约状态”或“帮我查询应用状态”。"]},{"name":"sandboxRecoveryHint","type":"string","required":false,"derived":true,"values":["renderer"]},{"name":"nextFlowReminderLine","type":"string","required":false,"derived":true,"values":["renderer"]},{"name":"nextFlowReminder","type":"enum","required":true,"values":["还需完成支付产品-代码开发,才能在业务系统中实际发起支付。","代码开发已在本轮执行;后续只按上表实际待办继续。"]}],"requiredPolicyIds":["P-PARTIAL-RESULT"],"variants":{"DEFAULT":{"templateLines":["{{processResultTitle}}:","","| 分支 | 实际结果 |","|---|---|","| 产品 | {{productName}} |","| 代码开发 | {{integrationResult}} |","| 产品开通 | {{signingResult}} |","| 服务市场 | {{serviceResult}} |","| 应用发布 | {{applicationResult}} |","","本轮流程仍需处理:{{remainingActions}}{{statusQueryHint}}","{{manualVerificationLine}}","{{sandboxRecoveryHint}}","","{{productionReadinessBlock}}","","{{nextFlowReminderLine}}"]}}},{"messageId":"key_tool.download.result","owner":"catalog_owned","trigger":"key_tool.download.finished","blocking":false,"allowedReplies":[],"variables":[{"name":"downloadPath","type":"existingPath","required":true},{"name":"keyToolFormatHint","type":"string","required":false,"derived":true,"values":["【密钥格式说明】支付宝开放平台密钥工具“生成密钥”默认生成适用于 Java 编程语言的 PKCS#8 格式应用私钥;非 Java 语言请使用“密钥工具-格式转换”转换获取 PKCS#1 格式的应用私钥。"]}],"requiredPolicyIds":["P-KEY-TOOL-DOWNLOAD"],"fallbackMessageId":"key_tool.download.fallback","variants":{"DOWNLOADED":{"templateLines":["支付宝开放平台密钥工具已下载到:`{{downloadPath}}`。","","请打开该安装包并按页面引导完成安装;Agent 不会自动安装、启动工具或生成密钥。","","{{keyToolFormatHint}}","","生成后只向 Agent 提供【应用公钥】,应用私钥请自行妥善保管。",""]}}},{"messageId":"key_tool.download.fallback","owner":"catalog_owned","trigger":"key_tool.download.fallback","blocking":false,"allowedReplies":[],"variables":[{"name":"keyToolManual","type":"string","required":false,"derived":true,"values":["renderer"]},{"name":"keyToolFormatHint","type":"string","required":false,"derived":true,"values":["【密钥格式说明】支付宝开放平台密钥工具“生成密钥”默认生成适用于 Java 编程语言的 PKCS#8 格式应用私钥;非 Java 语言请使用“密钥工具-格式转换”转换获取 PKCS#1 格式的应用私钥。"]}],"requiredPolicyIds":["P-KEY-TOOL-DOWNLOAD"],"variants":{"DEFAULT":{"templateLines":["未能完成自动下载,可能是当前环境不支持、无法访问下载源、本地目录不可写或安装包校验未通过。请访问支付宝开放平台手动下载支付宝开放平台密钥工具:","","{{keyToolManual}}","","{{keyToolFormatHint}}","","仅向 Agent 提供【应用公钥】,应用私钥请自行妥善保管。"]}}},{"messageId":"sandbox.windows.manual_setup","owner":"catalog_owned","trigger":"integration.sandbox.windows.manual_setup","blocking":true,"allowedReplies":[],"replyMode":"freeform","variables":[],"requiredPolicyIds":["P-SANDBOX-CREDENTIAL-EXCEPTION","P-SENSITIVE-STATE"],"variants":{"DEFAULT":{"templateLines":["当前 Windows 环境暂不支持自动创建快速沙箱,请前往支付宝 AI 付站点-选择产品-一站式接入-技术集成页面获取沙箱配置:https://aipay.alipay.com/?from=alipay-aipay-skill","","请把沙箱应用的 APPID、支付宝公钥、应用公钥、与当前开发语言(JAVA语言/非JAVA语言)匹配的应用私钥、沙箱账号信息告诉我,我会帮你完成项目配置,并继续进行支付产品代码开发。","","生产环境应用私钥和密码切勿暴露给 Agent。"]}}},{"messageId":"sandbox.environment.summary","owner":"catalog_owned","trigger":"integration.sandbox.persisted","blocking":false,"allowedReplies":[],"variables":[{"name":"productName","type":"enum","required":true,"values":["AI 按量付费","AI 网页应用收款","AI 移动应用收款"]},{"name":"configPath","type":"existingPath","required":true},{"name":"environmentRows","type":"sandboxTableRows","required":true}],"requiredPolicyIds":["P-SANDBOX-CREDENTIAL-EXCEPTION","P-SENSITIVE-STATE"],"variants":{"DEFAULT":{"templateLines":["沙箱环境摘要","","| 项目 | 信息 |","|---|---|","| 产品 | {{productName}} |","| 配置文件目录 | `{{configPath}}` |","{{environmentRows}}","| 沙箱密钥 | 支付宝沙箱环境的密钥配置已写入本地文件,默认不在对话中展开 |"]}}},{"messageId":"sandbox.configuration.pending","owner":"catalog_owned","trigger":"integration.sandbox.pending","blocking":false,"allowedReplies":[],"variables":[],"requiredPolicyIds":["P-SENSITIVE-STATE"],"variants":{"CREATE":{"templateLines":["快速沙箱暂未创建成功,当前沙箱配置尚未完成。","","本轮将继续代码开发。代码开发完成后,请对 Agent 说:“重新创建并配置沙箱”。"]},"VERIFY":{"templateLines":["快速沙箱配置复核未通过,当前沙箱配置尚未完成。","","本轮将继续代码开发。代码开发完成后,请对 Agent 说:“重新创建并配置沙箱”。"]}}},{"messageId":"sandbox.create.failure","owner":"catalog_owned","trigger":"integration.sandbox.failed","blocking":false,"allowedReplies":[],"variables":[{"name":"failureReason","type":"singleLine","required":true},{"name":"recoveryAction","type":"singleLine","required":true}],"requiredPolicyIds":["P-SENSITIVE-STATE"],"variants":{"WINDOWS":{"templateLines":["Windows 沙箱本地配置未准备完成:{{failureReason}}","","恢复动作:{{recoveryAction}}","","字段缺失、来源不明或本地保护未完成时不能继续,也不能把当前配置表述为可用。"]}}},{"messageId":"sandbox.environment.reminder","owner":"catalog_owned","trigger":"integration.sandbox.persisted.reminder","blocking":false,"allowedReplies":[],"variables":[],"requiredPolicyIds":["P-A2M-SANDBOX","P-SENSITIVE-STATE"],"variants":{"DEFAULT":{"templateLines":["- 快速沙箱环境配置已准备完成(完整配置已写入上述本地文件),仅用于测试,不涉及真实资金。","- 本 Skill 要求 Agent 在代码开发阶段自动为项目配置支付宝沙箱,正式上线前,需要您自行替换为:通过本“支付宝 AI 付接入 Skill”的产品开通流程获取的【线上-支付宝应用配置】。"]},"WINDOWS":{"templateLines":["Windows 沙箱本地配置已准备完成,仅用于测试,不涉及真实资金。","","配置已保存至上述本机路径。"]}}},{"messageId":"a2m.test.start","owner":"catalog_owned","trigger":"integration.a2m.test.start","blocking":false,"allowedReplies":[],"variables":[],"requiredPolicyIds":["P-A2M-SANDBOX","P-A2M-SUCCESS"],"variants":{"DEFAULT":{"templateLines":["开始执行 AI 按量付费沙箱服务端联调。","","我将连续验证 `402 Payment-Needed`、沙箱收银、`Payment-Proof` 重试和资源交付,完成后输出实际结论;这里不需要额外确认。"]}}},{"messageId":"a2m.test.result","owner":"catalog_owned","trigger":"integration.a2m.test.finished","blocking":false,"allowedReplies":[],"variables":[{"name":"evidenceSummary","type":"singleLine","required":true},{"name":"recoveryAction","type":"singleLine","required":false}],"requiredPolicyIds":["P-A2M-SUCCESS","P-SENSITIVE-STATE"],"variants":{"PASSED":{"templateLines":["AI 按量付费沙箱服务端联调通过。","","通过证据:{{evidenceSummary}}"]},"FAILED":{"templateLines":["AI 按量付费沙箱服务端联调未通过。","","实际证据:{{evidenceSummary}}","","恢复动作:{{recoveryAction}}"]}}},{"messageId":"a2m.payment.experience","owner":"catalog_owned","trigger":"integration.a2m.optional_payment_experience","blocking":false,"allowedReplies":[],"variables":[{"name":"paymentUrl","type":"runtimeUrl","required":true},{"name":"buyerAccount","type":"singleLine","required":true},{"name":"buyerLoginPassword","type":"sandboxCredential","required":true},{"name":"buyerPayPassword","type":"sandboxCredential","required":true}],"requiredPolicyIds":["P-SANDBOX-CREDENTIAL-EXCEPTION"],"variants":{"FULL":{"templateLines":["可选:体验 AI 按量付费沙箱付款","","付款链接(复制到网页浏览器打开):{{paymentUrl}}","沙箱买家账号:{{buyerAccount}}","登录密码:{{buyerLoginPassword}}","支付密码:{{buyerPayPassword}}"]}}},{"messageId":"webpay.sandbox.experience","owner":"catalog_owned","trigger":"integration.webpay.sandbox_experience","blocking":false,"allowedReplies":[],"variables":[{"name":"startCommand","type":"command","required":true},{"name":"paymentUrl","type":"runtimeUrl","required":true},{"name":"buyerAccount","type":"singleLine","required":true},{"name":"buyerLoginPassword","type":"sandboxCredential","required":true},{"name":"buyerPayPassword","type":"sandboxCredential","required":true},{"name":"resultPageInstruction","type":"enum","required":true,"values":["付款后确认浏览器自动返回商户结果页,页面可正常展示并通过服务端查询呈现订单状态。","付款后不会自动返回商户网站;请手动返回商户订单查询页并刷新或查询订单状态。"]}],"requiredPolicyIds":["P-SANDBOX-CREDENTIAL-EXCEPTION"],"variants":{"DEFAULT":{"templateLines":["AI 网页应用收款沙箱付款指引","","1. 启动服务:`{{startCommand}}`","2. 在浏览器打开:{{paymentUrl}}","3. 在沙箱收银台二选一:使用沙箱买家账号登录,或仅在 Android 沙箱支付宝中扫描收银台页面二维码。","4. 沙箱买家账号:{{buyerAccount}}","5. 登录密码:{{buyerLoginPassword}}","6. 支付密码:{{buyerPayPassword}}","7. {{resultPageInstruction}}","","沙箱测试环境不稳定,可能出现跳转到支付宝收银台页面后报错,如:504 Gateway Time-out;输入完测试买家账号后展示系统繁忙;输入完测试买家支付密码后展示系统繁忙。您可以回到支付页重新发起支付以完成沙箱测试。","","前台页面和同步回跳参数不是支付成功依据,最终以验签通过的异步通知或交易查询为准。用户暂不付款只记为待体验,不得表述为沙箱测试通过。"]}}},{"messageId":"sandbox.android.client","owner":"catalog_owned","trigger":"integration.sandbox_android_client","blocking":false,"allowedReplies":[],"variables":[],"requiredPolicyIds":[],"variants":{"DEFAULT":{"templateLines":["沙箱支付宝当前仅支持 Android。请复制以下支付宝官方地址到网页浏览器打开,并扫描屏幕二维码下载沙箱版支付宝安装包:","","https://mdn.alipayobjects.com/sandboxsys/afts/img/_itHRrdOD9oAAAAAAAAAAAAADgSLAQBr/original","","如果直链或页面二维码无法打开,请前往支付宝开放平台-沙箱工具页下载:","","https://open.alipay.com/develop/sandbox/tool"]}}},{"messageId":"webpay.sandbox.experience.windows","owner":"catalog_owned","trigger":"integration.webpay.sandbox_experience.windows","blocking":false,"allowedReplies":[],"variables":[{"name":"startCommand","type":"command","required":true},{"name":"paymentUrl","type":"runtimeUrl","required":true},{"name":"resultPageInstruction","type":"enum","required":true,"values":["付款后确认浏览器自动返回商户结果页,页面可正常展示并通过服务端查询呈现订单状态。","付款后不会自动返回商户网站;请手动返回商户订单查询页并刷新或查询订单状态。"]}],"requiredPolicyIds":["P-SENSITIVE-STATE"],"variants":{"DEFAULT":{"templateLines":["AI 网页应用收款沙箱付款指引","","1. 启动服务:`{{startCommand}}`","2. 在浏览器打开:{{paymentUrl}}","3. 在沙箱收银台使用支付宝开放平台控制台中的沙箱买家账号登录,或仅在 Android 沙箱支付宝中扫描收银台页面二维码。","4. 登录密码和支付密码请直接从本机保存的信息或支付宝开放平台控制台取得,无需再次提供给 Agent。","5. {{resultPageInstruction}}","","沙箱测试环境不稳定,可能出现跳转到支付宝收银台页面后报错,如:504 Gateway Time-out;输入完测试买家账号后展示系统繁忙;输入完测试买家支付密码后展示系统繁忙。您可以回到支付页重新发起支付以完成沙箱测试。","","前台页面和同步回跳参数不是支付成功依据,最终以验签通过的异步通知或交易查询为准。用户暂不付款只记为待体验,不得表述为沙箱测试通过。"]}}},{"messageId":"integration.safety.closeout","owner":"catalog_owned","trigger":"integration.step7.safety","blocking":false,"allowedReplies":[],"variables":[{"name":"acceptanceSummary","type":"singleLine","required":true}],"requiredPolicyIds":["P-SENSITIVE-STATE"],"variants":{"AIPAY":{"templateLines":["【代码开发安全与上线提醒】","","- 上线前必须完成人工代码审查。","- 私钥只保存在商家服务端,禁止写入客户端、日志或公共仓库。","- Java 使用 `PKCS#8` 私钥,非 Java 使用 `PKCS#1` 私钥,格式不匹配时只用支付宝官方密钥工具转换。","- `Payment-Proof` 必须调用 `alipay.aipay.agent.payment.verify` 验证;无效或过期凭证拒绝服务,结果不明时不得要求用户重复付款。","- 资源交付后必须调用 `alipay.aipay.agent.fulfillment.confirm`;履约确认失败必须可重试且保持幂等。","","【线上环境配置替换】","","- 沙箱配置仅用于开发调试,正式上线前必须替换代码中的“支付宝应用配置”为同一套生产 `appId`、应用公钥、应用私钥和支付宝公钥。","- 将 `api_mock_service_id` 替换为真实 `serviceId`。`serviceId` 获取方式:支付宝扫码登录支付宝 AI 付站点 → 控制台 → 服务管理 → 复制审核已通过的服务 ID:https://aipay.alipay.com/?from=alipay-aipay-skill","- 收款商户 PID/2088 用于 AI 按量付费 `seller_id` 和 `seller_unique_id`,不由 Agent 猜测。获取方式:支付宝扫码登录支付宝商家平台 → 点击头像 → 复制账户名下方 2088 开头的商家 ID:https://b.alipay.com/page/portal/home","- 生产环境必须严格校验本地订单、金额与资源关系;正式收款必须完成 `Payment-Proof` 验付和异步履约回执确认。","","当前验收口径:{{acceptanceSummary}}"]},"WEBPAY":{"templateLines":["【代码开发安全与上线提醒】","","- 上线前必须完成人工代码审查。","- 私钥只保存在商家服务端,禁止写入客户端、日志或公共仓库。","- Java 使用 `PKCS#8` 私钥,非 Java 使用 `PKCS#1` 私钥,格式不匹配时只用支付宝官方密钥工具转换。","- 同步回跳和前台结果不作为支付成功依据;必须以验签通过的异步通知或交易查询为准。","","【线上环境配置替换】","","- 沙箱配置仅用于开发调试,正式上线前必须替换代码中的“支付宝应用配置”为同一套生产 `appId`、应用公钥、应用私钥和支付宝公钥。","- AI 网页应用收款生产上线必须配置并联调公网 HTTPS `notify_url`;异步通知必须验签、校验关键字段、幂等处理并返回 `success`,同时配置交易查询补偿。若当前仅完成本地生产参数验收,该项仍需在上线前补齐;localhost、局域网地址或其他不可公网访问的地址不能用于生产异步通知。支付结果不明时不得要求用户重复付款。","","当前验收口径:{{acceptanceSummary}}"]},"APPPAY":{"templateLines":["【代码开发安全与上线提醒】","","- 上线前必须完成人工代码审查。","- 私钥只保存在商家服务端,禁止写入 APP 客户端、日志或公共仓库。","- Java 使用 `PKCS#8` 私钥,非 Java 使用 `PKCS#1` 私钥,格式不匹配时只用支付宝官方密钥工具转换。","- 客户端支付结果不作为成功依据;必须以验签通过的异步通知或服务端交易查询为准。","","【线上环境配置替换】","","- 沙箱配置仅用于开发调试,正式上线前必须替换代码中的“支付宝应用配置”为同一套生产 `appId`、应用公钥、应用私钥和支付宝公钥。","- AI 移动应用收款生产上线必须配置并联调公网 HTTPS `notify_url`;异步通知必须验签、校验关键字段、幂等处理并返回 `success`,同时配置交易查询补偿。若当前仅完成本地生产参数验收,该项仍需在上线前补齐;localhost、局域网地址或其他不可公网访问的地址不能用于生产异步通知。支付结果不明时不得要求用户重复付款。","- 本轮代码开发只覆盖商家服务端;APP 客户端仍需接入支付宝客户端 SDK,使用服务端返回的 `orderStr` 调起支付,并与服务端异步通知或交易查询完成联调。","","当前验收口径:{{acceptanceSummary}}"]}}},{"messageId":"integration.checklist.result","owner":"catalog_owned","trigger":"integration.checklist.finished","blocking":false,"allowedReplies":[],"variables":[{"name":"overallResult","type":"enum","required":true,"values":["通过","部分通过","未通过"]},{"name":"failedItems","type":"singleLine","required":true},{"name":"manualItems","type":"singleLine","required":true},{"name":"sandboxResult","type":"enum","required":false,"values":["AI 按量付费沙箱服务端联调通过","AI 按量付费沙箱服务端联调未通过"]},{"name":"webpayExperienceResult","type":"enum","required":false,"values":["已提供浏览器付款入口和操作指引,实际付款及结果验证仍以用户完成情况为准","未提供浏览器付款入口或完整操作指引,需先补齐","已提供浏览器付款入口和操作指引;用户已完成一笔沙箱付款,结果只按实际核验证据记录"]},{"name":"sandboxConfigState","type":"enum","required":true,"values":["READY","CREATE_PENDING","VERIFY_PENDING"]},{"name":"blockingDefectState","type":"enum","required":true,"values":["NONE","PRESENT"]},{"name":"executionMode","type":"enum","required":true,"values":["仅代码开发","完整接入"]},{"name":"nextFlowReminder","type":"enum","required":true,"values":["正式上线前还需完成支付产品-产品开通。","代码开发校验通过后将自动进入支付产品-产品开通;未通过时停留在代码开发。","沙箱配置尚未完成,但不阻塞本轮继续支付产品-产品开通;完成配置后再进行沙箱测试。","代码开发自动校验已完成,仍有人工待验证项;本轮继续产品开通。"]}],"requiredPolicyIds":[],"variants":{"AIPAY_PASSED":{"templateLines":["AI 按量付费代码开发校验通过。","","{{nextFlowReminder}}"]},"AIPAY_INCOMPLETE":{"templateLines":["AI 按量付费代码开发校验:{{overallResult}}。","","未完成项:{{failedItems}}","人工待验证:{{manualItems}}","","{{nextFlowReminder}}"]},"WEBPAY_PASSED":{"templateLines":["AI 网页应用收款代码开发校验通过。","","{{nextFlowReminder}}"]},"WEBPAY_INCOMPLETE":{"templateLines":["AI 网页应用收款代码开发校验:{{overallResult}}。","","未完成项:{{failedItems}}","人工待验证:{{manualItems}}","","{{nextFlowReminder}}"]},"APPPAY_PASSED":{"maintenanceTodo":"TODO: 后续确定 AI 移动应用收款沙箱测试的对客引导动作后,在本变体补充;同步 integration flow、checklist 和测试。","templateLines":["AI 移动应用收款代码开发校验通过。","","{{nextFlowReminder}}"]},"APPPAY_INCOMPLETE":{"maintenanceTodo":"TODO: 后续确定 AI 移动应用收款沙箱测试的对客引导动作后,在本变体补充;同步 integration flow、checklist 和测试。","templateLines":["AI 移动应用收款代码开发校验:{{overallResult}}。","","未完成项:{{failedItems}}","人工待验证:{{manualItems}}","","{{nextFlowReminder}}"]}}},{"messageId":"auth.pending","owner":"catalog_owned","trigger":"AUTH_FLOW:PENDING","blocking":true,"allowedReplySet":"affirmative","inputHintType":"authorizationComplete","variables":[],"requiredPolicyIds":["P-AUTH-BEFORE-ONBOARDING"],"variants":{"DEFAULT":{"templateLines":["支付宝授权尚未完成,当前流程保持等待,请在已打开的网页二维码页面完成扫码确认后,再回复当前授权提示。"]}}},{"messageId":"auth.expired","owner":"catalog_owned","trigger":"AUTH_FLOW:EXPIRED","blocking":false,"allowedReplies":[],"variables":[],"requiredPolicyIds":["P-AUTH-BEFORE-ONBOARDING"],"variants":{"DEFAULT":{"templateLines":["本次支付宝授权链接已过期,旧链接和旧回复均已失效。正在重新生成授权链接,请使用新的授权页面完成授权。"]}}},{"messageId":"auth.mismatch","owner":"catalog_owned","trigger":"AUTH_FLOW:SCOPE_MISMATCH|MCC_MISMATCH","blocking":false,"allowedReplies":[],"variables":[],"requiredPolicyIds":["P-AUTH-BEFORE-ONBOARDING"],"variants":{"DEFAULT":{"templateLines":["当前授权范围或经营类目不匹配,需要退出当前登录并重新生成授权页面。"]}}},{"messageId":"error.mcp.auth","owner":"catalog_owned","trigger":"error.mcp_auth","blocking":false,"allowedReplies":[],"variables":[{"name":"errorMessage","type":"customerErrorText","required":false}],"requiredPolicyIds":["P-AUTH-BEFORE-ONBOARDING","P-SENSITIVE-STATE"],"variants":{"START":{"templateLines":["🔐 未登录或授权已过期","","当前登录状态已失效,无法继续操作。MCP 调用返回认证错误,正在退出当前登录。"]},"LOGOUT_UNCONFIRMED":{"templateLines":["无法确认退出当前登录结果,已停止重新授权。","","这通常表示当前 Agent 执行环境缺少联网权限、CLI wrapper 混入输出,或 stdout/stderr 无法唯一解析;不代表用户本机 logout 失败,也不能据此判断支付宝业务失败。","","Agent 应申请可联网权限后重试同一动作;不要要求用户手动 logout 代替本轮事实。"]},"LOGOUT_FAILED":{"templateLines":["退出当前登录失败,已停止重新授权。","错误信息:{{errorMessage}}","","请先重试退出登录;确认退出成功后再重新授权。"]},"LOGOUT_SUCCESS":{"templateLines":["已退出登录状态。","","请重新执行登录授权流程:生成授权链接后,使用支付宝扫码授权,授权成功后继续当前操作。","","产品、MCC 和授权范围未变化时,沿用已有确认立即重新生成授权链接;发生变化时先重新确认受影响内容。"]}}},{"messageId":"error.mcp.service","owner":"catalog_owned","trigger":"error.mcp_service","blocking":false,"allowedReplies":[],"variables":[{"name":"errorDetail","type":"customerErrorText","required":false}],"requiredPolicyIds":["P-PARTIAL-RESULT","P-SENSITIVE-STATE"],"variants":{"AGENT_NETWORK":{"templateLines":["MCP 服务暂时不可用。","","当前命令需要访问支付宝服务,但当前 Agent 执行环境可能没有外网权限。Agent 应申请可联网权限后重试同一条命令,不要要求用户排查本机网络,也不要更换业务参数。","","请授权 Agent 联网重试,或稍后重新执行当前命令。"]},"GENERIC":{"templateLines":["MCP 服务暂时不可用。","","无法连接到支付宝服务,请稍后重试。","错误详情:{{errorDetail}}","","当前动作已停止重试;由主流程记录受影响分支,并在不受其依赖的情况下继续其他分支。本轮收口时将一次说明未恢复的动作、受影响分支和后续恢复方式。"]}}},{"messageId":"error.backend","owner":"catalog_owned","trigger":"error.backend_business","blocking":false,"allowedReplies":[],"variables":[{"name":"errorCode","type":"customerErrorText","required":true},{"name":"errorMessage","type":"customerErrorText","required":true},{"name":"errorScene","type":"customerErrorText","required":false},{"name":"errorSpecific","type":"customerErrorText","required":false},{"name":"checkedErrors","type":"customerErrorDetails","required":false},{"name":"bizTips","type":"customerErrorText","required":false},{"name":"appMax","type":"enum","required":true,"values":["YES","NO"]},{"name":"errorSceneLine","type":"string","required":false,"derived":true,"values":["renderer"]},{"name":"checkedErrorsBlock","type":"string","required":false,"derived":true,"values":["renderer"]},{"name":"bizTipsLine","type":"string","required":false,"derived":true,"values":["renderer"]},{"name":"appMaxLine","type":"string","required":false,"derived":true,"values":["renderer"]}],"requiredPolicyIds":["P-SENSITIVE-STATE"],"variants":{"DEFAULT":{"templateLines":["业务处理失败。","","错误码:{{errorCode}}","错误信息:{{errorMessage}}","{{errorSceneLine}}","","{{checkedErrorsBlock}}","","{{bizTipsLine}}","","{{appMaxLine}}","","当前业务错误不会自动重试;请先按以上错误信息修正受影响分支的业务条件。","如需帮助,请联系技术支持并提供以上脱敏错误信息。"]}}},{"messageId":"error.service.unstable","owner":"catalog_owned","trigger":"error.service_unstable","blocking":false,"allowedReplies":[],"variables":[],"requiredPolicyIds":["P-PARTIAL-RESULT"],"variants":{"DEFAULT":{"templateLines":["MCP 服务暂时不稳定。","","当前动作已停止重试;由主流程记录受影响分支,并在不受其依赖的情况下继续其他分支。","本轮收口时将一次说明未恢复的动作、受影响分支和后续恢复方式。"]}}},{"messageId":"error.cli","owner":"catalog_owned","trigger":"error.cli_output","blocking":false,"allowedReplies":[],"variables":[{"name":"errorMessage","type":"customerErrorText","required":true},{"name":"bizTips","type":"customerErrorText","required":false},{"name":"checkedErrors","type":"customerErrorDetails","required":false},{"name":"bizTipsLine","type":"string","required":false,"derived":true,"values":["renderer"]},{"name":"checkedErrorsBlock","type":"string","required":false,"derived":true,"values":["renderer"]}],"requiredPolicyIds":["P-SENSITIVE-STATE"],"variants":{"DEFAULT":{"templateLines":["命令执行失败:{{errorMessage}}","{{bizTipsLine}}","{{checkedErrorsBlock}}"]}}},{"messageId":"integration.service.not_ready","owner":"catalog_owned","trigger":"integration.a2m.service_not_ready","blocking":false,"allowedReplies":[],"variables":[{"name":"recoveryAction","type":"singleLine","required":true}],"requiredPolicyIds":["P-A2M-SUCCESS"],"variants":{"DEFAULT":{"templateLines":["AI 按量付费本地服务尚未达到自动联调前置条件。","","需要处理:{{recoveryAction}}","","该条件未满足前不会运行自动联调,也不会把服务标记为可用。"]}}},{"messageId":"integration.project_path.required","owner":"catalog_owned","trigger":"integration.project_path.unresolved","blocking":true,"allowedReplies":[],"replyMode":"freeform","variables":[],"requiredPolicyIds":[],"variants":{"DEFAULT":{"templateLines":["现有项目及文件保持不变。请在一条回复中说明新项目要放在哪里;可以说“在当前目录新建 pay-demo”、提供当前目录下的新子目录名,或提供电脑上的完整路径。若不想指定位置,可以说“新建项目”或“帮我新建默认项目”,我会在用户目录下选择安全的新目录并告知项目地址。路径解析和确认完成前不会创建或修改文件。"]}}},{"messageId":"integration.context.required","owner":"catalog_owned","trigger":"integration.context.unresolved","blocking":true,"allowedReplies":[],"replyMode":"freeform","variables":[{"name":"missingItems","type":"enumList","required":true,"values":["项目路径","技术栈"]}],"requiredPolicyIds":["P-PROJECT-PROTECT"],"variants":{"DEFAULT":{"templateLines":["为继续代码开发,请先确定:{{missingItems}}。","","- 要新建项目:可以说“在xxx目录新建xx项目”。","- 要复用已有项目:请告诉我项目位置。","- 技术栈:例如 Node.js + Express、Java + Spring Boot、Python + Flask、PHP + Laravel、C# + ASP.NET。","","项目和技术栈明确前,不会创建或修改文件。"]},"PROJECT_PATH_ONLY":{"templateLines":["为继续代码开发,请先确定:{{missingItems}}。","","- 要新建项目:可以说“在xxx目录新建xx项目”。","- 要复用已有项目:请告诉我项目位置。","","项目路径明确前,不会创建或修改文件。"]}}},{"messageId":"integration.project_candidates.select","owner":"catalog_owned","trigger":"integration.project_candidates.located","blocking":true,"allowedReplies":[],"replyMode":"freeform","variables":[{"name":"searchBasePath","type":"existingPath","required":true},{"name":"candidateRows","type":"string","required":true}],"requiredPolicyIds":["P-PROJECT-PROTECT"],"variants":{"DEFAULT":{"templateLines":["我先在 `{{searchBasePath}}` 下做了轻量项目定位;这里只看项目标记文件,不扫描代码内容。","","{{candidateRows}}","","如果要复用已有项目,请回复候选序号或具体项目文件夹。","如果要新建项目,可以回复:“在xxx目录新建一个xx项目”。","","选定具体项目目录前,不会扫描整个大目录,也不会创建或修改文件。"]}}},{"messageId":"integration.local_acceptance.notice","owner":"catalog_owned","trigger":"integration.local_acceptance.enabled","blocking":false,"allowedReplies":[],"variables":[],"requiredPolicyIds":[],"variants":{"DEFAULT":{"templateLines":["当前使用本地生产参数验收模式:本轮可以暂不发起公网异步通知,但生产上线前必须恢复并验证 `notify_url`。这不是生产最终配置,也不能据此宣称生产就绪。"]}}},{"messageId":"application.reuse.no_key","owner":"catalog_owned","trigger":"FLOW:REUSE_NO_KEY","blocking":false,"allowedReplies":[],"variables":[{"name":"appId","type":"singleLine","required":true},{"name":"keyToolManual","type":"string","required":false,"derived":true,"values":["renderer"]},{"name":"keyToolFormatHint","type":"string","required":false,"derived":true,"values":["【密钥格式说明】支付宝开放平台密钥工具“生成密钥”默认生成适用于 Java 编程语言的 PKCS#8 格式应用私钥;非 Java 语言请使用“密钥工具-格式转换”转换获取 PKCS#1 格式的应用私钥。"]}],"requiredPolicyIds":["P-KEY-PUBLIC-USER"],"variants":{"DEFAULT":{"templateLines":["应用 `{{appId}}` 当前为可复用的上线应用,但尚未确认 RSA2 应用公钥,应用分支仍未完成。","","接下来需要为该应用设置【应用公钥】;如果你已经准备好应用公钥,请直接提供。","","本次不会自动下载支付宝开放平台密钥工具。如需我下载请直接说明,或访问官方地址手动下载:{{keyToolManual}}","","{{keyToolFormatHint}}","","只向 Agent 提供【应用公钥】,应用私钥请自行妥善保管。","","如果不想继续复用这个应用,请说明要“重新选择”或“新建应用”。"]}}},{"messageId":"application.candidates.facts","owner":"catalog_owned","trigger":"application.candidates.queried","blocking":false,"allowedReplies":[],"variables":[{"name":"applicationType","type":"enum","required":true,"values":["WEBAPP","MOBILEAPP"]},{"name":"applicationCandidates","type":"applicationCandidates","required":true},{"name":"candidateTable","type":"string","required":false,"derived":true,"values":["renderer"]},{"name":"keyToolManual","type":"string","required":false,"derived":true,"values":["renderer"]},{"name":"keyToolFormatHint","type":"string","required":false,"derived":true,"values":["【密钥格式说明】支付宝开放平台密钥工具“生成密钥”默认生成适用于 Java 编程语言的 PKCS#8 格式应用私钥;非 Java 语言请使用“密钥工具-格式转换”转换获取 PKCS#1 格式的应用私钥。"]}],"requiredPolicyIds":["P-PARTIAL-RESULT","P-KEY-TOOL-DOWNLOAD"],"variants":{"EMPTY":{"templateLines":["📋 暂无 {{applicationType}} 应用。","","支付宝开放平台密钥工具可用于生成应用公私钥对。无论是否需要自动下载,都可以访问官方地址:","{{keyToolManual}}","","{{keyToolFormatHint}}","","只向 Agent 提供【应用公钥】,请勿提供应用私钥。"]},"PENDING_ONLY":{"templateLines":["📋 当前已有以下尚未上线的 {{applicationType}} 应用:","","{{candidateTable}}","","以上应用当前不可复用。"]},"ONLINE_WITH_OPTIONAL_PENDING":{"templateLines":["📋 发现您已有以下上线 {{applicationType}} 应用:","","{{candidateTable}}"]}}},{"messageId":"application.candidate.invalid","owner":"catalog_owned","trigger":"application.candidates.selection_invalid","blocking":false,"allowedReplies":[],"variables":[],"requiredPolicyIds":[],"variants":{"DEFAULT":{"templateLines":["上一次回复未匹配当前应用候选或支持的选择格式。已重新展示当前候选,请按下方方式重新选择。","序号、非上线、历史或候选外 `appId` 均不会触发应用操作。"]}}},{"messageId":"application.candidate.select","owner":"catalog_owned","trigger":"application.candidates.selection_required","blocking":true,"allowedReplies":[],"replyMode":"freeform","variables":[{"name":"keyToolManual","type":"string","required":false,"derived":true,"values":["renderer"]},{"name":"keyToolFormatHint","type":"string","required":false,"derived":true,"values":["【密钥格式说明】支付宝开放平台密钥工具“生成密钥”默认生成适用于 Java 编程语言的 PKCS#8 格式应用私钥;非 Java 语言请使用“密钥工具-格式转换”转换获取 PKCS#1 格式的应用私钥。"]}],"requiredPolicyIds":[],"variants":{"ONLINE_WEB_OR_NEW":{"templateLines":["请选择应用分支下一步:","","- 回复上方事实表中状态为“已上线”的完整 `appId`:复用对应应用。","- 新建应用:在同一条回复中表明要新建并提供【应用公钥】,材料完整后将创建应用、设置公钥并进入公钥确认。","","新建回复示例(请替换为实际内容):","```text","新建","应用公钥:<你自行生成的完整应用公钥>","```","","支付宝开放平台密钥工具可用于生成应用公私钥对;本分支不会自动下载。如需我下载请直接说明,或访问:{{keyToolManual}}","","{{keyToolFormatHint}}","","只向 Agent 提供【应用公钥】,请勿提供应用私钥。"]},"PENDING_WEB_OR_NEW":{"templateLines":["当前同类型应用均未上线,不能复用。","","- 新建应用:在同一条回复中表明要新建并提供【应用公钥】,材料完整后将创建应用、设置公钥并进入公钥确认。","- 回复 `暂不新建`:本轮应用分支保持待办。","","新建回复示例(请替换为实际内容):","```text","新建","应用公钥:<你自行生成的完整应用公钥>","```","","支付宝开放平台密钥工具可用于生成应用公私钥对;本分支不会自动下载。如需我下载请直接说明,或访问:{{keyToolManual}}","","{{keyToolFormatHint}}","","只向 Agent 提供【应用公钥】,请勿提供应用私钥。"]},"ONLINE_MOBILE_OR_NEW":{"templateLines":["请选择应用分支下一步:","","- 【复用】"," - 回复上方事实表中状态为“已上线”的完整 `appId`:复用对应应用。","- 【新建】"," - 如选择 iOS 系统,请回复 --> 新建,我选择 iOS + iOS Bundle ID(bundleId)+【应用公钥】"," - 如选择 Android 系统,请回复 --> 新建,我选择 Android + Android 应用包名(appPackage)+ Android 应用签名摘要(appSign)+【应用公钥】"," - 如选择 iOS + Android 系统,请回复 --> 新建,我要同时支持两类系统 + iOS Bundle ID + Android 应用包名 + Android 应用签名摘要 +【应用公钥】","","支付宝开放平台密钥工具可用于生成应用公私钥对;本分支不会自动下载。如需我下载请直接说明,或访问:{{keyToolManual}}","","{{keyToolFormatHint}}","","只向 Agent 提供【应用公钥】,请勿提供应用私钥。"]},"PENDING_MOBILE_OR_NEW":{"templateLines":["当前同类型应用均未上线,不能复用。","","- 【新建】"," - 如选择 iOS 系统,请回复 --> 新建,我选择 iOS + iOS Bundle ID(bundleId)+【应用公钥】"," - 如选择 Android 系统,请回复 --> 新建,我选择 Android + Android 应用包名(appPackage)+ Android 应用签名摘要(appSign)+【应用公钥】"," - 如选择 iOS + Android 系统,请回复 --> 新建,我要同时支持两类系统 + iOS Bundle ID + Android 应用包名 + Android 应用签名摘要 +【应用公钥】","- 回复 `暂不新建`:本轮应用分支保持待办。","","支付宝开放平台密钥工具可用于生成应用公私钥对;本分支不会自动下载。如需我下载请直接说明,或访问:{{keyToolManual}}","","{{keyToolFormatHint}}","","只向 Agent 提供【应用公钥】,请勿提供应用私钥。"]}}},{"messageId":"application.operation.result","owner":"catalog_owned","trigger":"application.operation.completed","blocking":false,"allowedReplies":[],"variables":[{"name":"appId","type":"singleLine","required":true},{"name":"actualStatus","type":"singleLine","required":true},{"name":"nextAction","type":"singleLine","required":false},{"name":"appKeySavePath","type":"singleLine","required":false},{"name":"appKeySaveLine","type":"string","required":false,"derived":true,"values":["renderer"]},{"name":"manualConfigurationNextAction","type":"string","required":false,"derived":true,"values":["前往支付宝 AI 付站点,进入一站式接入 → 密钥配置,按当前 appId 获取对应的支付宝公钥,并手动配置到项目:https://aipay.alipay.com/?from=alipay-aipay-skill"]}],"requiredPolicyIds":["P-PARTIAL-RESULT"],"variants":{"DEFAULT":{"templateLines":["应用 `{{appId}}` 的实际状态:{{actualStatus}}。","{{appKeySaveLine}}","","下一步:{{nextAction}}","","待审核、待设置公钥或待人工配置时不会表述为应用发布完成。"]},"ALIPAY_PUBLIC_KEY_MANUAL_CONFIGURATION":{"templateLines":["应用 `{{appId}}` 的实际状态:需人工配置。","","下一步:{{manualConfigurationNextAction}}","","待人工配置时不会表述为应用发布完成。"]}}},{"messageId":"application.harmony.manual_create","owner":"catalog_owned","trigger":"application.harmony.manual_create","blocking":true,"allowedReplySet":"affirmative","inputHintType":"complete","variables":[],"requiredPolicyIds":["P-MCP-CONTRACT-FROZEN"],"variants":{"DEFAULT":{"templateLines":["当前 Skill 不支持创建 HarmonyOS 移动应用。","","请前往支付宝开放平台,进入“控制台” → “创建移动应用”,完成平台要求的创建、配置和审核:https://open.alipay.com/","","完成后将重新查询移动应用列表。"]}}},{"messageId":"service.operation.result","owner":"catalog_owned","trigger":"service.operation.completed","blocking":false,"allowedReplies":[],"variables":[{"name":"serviceId","type":"singleLine","required":true},{"name":"actualResult","type":"singleLine","required":true}],"requiredPolicyIds":["P-PARTIAL-RESULT"],"variants":{"DEFAULT":{"templateLines":["服务市场实际结果:{{actualResult}}。","已确认的 `serviceId`:`{{serviceId}}`。","","查看服务状态和服务详情:请前往支付宝 AI 付站点,登录后进入控制台 → 服务管理。","https://aipay.alipay.com/?from=alipay-aipay-skill","","该结果只代表服务分支,不会覆盖签约或应用分支的实际状态。"]}}},{"messageId":"signing.operation.result","owner":"catalog_owned","trigger":"signing.operation.completed","blocking":false,"allowedReplies":[],"variables":[{"name":"actualStatus","type":"singleLine","required":true},{"name":"feeDisplay","type":"singleLine","required":false},{"name":"nextAction","type":"singleLine","required":true}],"requiredPolicyIds":["P-PARTIAL-RESULT"],"variants":{"WITHOUT_FEE":{"templateLines":["产品当前签约状态:{{actualStatus}}。","","下一步:{{nextAction}}"]},"WITH_FEE":{"templateLines":["产品当前签约状态:{{actualStatus}}。","费率:{{feeDisplay}}","","下一步:{{nextAction}}"]}}},{"messageId":"service.candidates.facts","owner":"catalog_owned","trigger":"service.candidates.queried","blocking":false,"allowedReplies":[],"variables":[{"name":"serviceCandidates","type":"serviceCandidates","required":true},{"name":"candidateTable","type":"string","required":false,"derived":true,"values":["renderer"]}],"requiredPolicyIds":["P-PARTIAL-RESULT"],"variants":{"EMPTY":{"templateLines":["📋 暂无已有服务。"]},"DEFAULT":{"templateLines":["📋 发现您已有以下服务:","","{{candidateTable}}"]}}},{"messageId":"service.candidate.invalid","owner":"catalog_owned","trigger":"service.candidates.selection_invalid","blocking":false,"allowedReplies":[],"variables":[],"requiredPolicyIds":[],"variants":{"DEFAULT":{"templateLines":["上一次回复没有匹配到有效的服务操作。","仅回复序号,或提供不在当前事实表中的 `serviceId`,均不会触发服务操作。"]}}},{"messageId":"service.candidate.select","owner":"catalog_owned","trigger":"service.candidates.selection_required","blocking":true,"allowedReplies":[],"replyMode":"freeform","variables":[],"requiredPolicyIds":[],"variants":{"DEFAULT":{"templateLines":["请选择下一步:","","- 回复上方事实表中的完整 `serviceId`:复用对应服务。","- 新建服务:回复 `新建`,并在同一条回复中提供服务名称、服务描述、服务地址、服务单价、请求示例 JSON。","- 回复 `修改:<serviceId>`:修改对应服务。","","- 如果只回复 `新建` 或材料不完整,我会再提示补充缺失项。","","新建回复示例(请替换为实际内容):","```text","新建","服务名称:天气查询","服务描述:按城市查询天气","服务地址:以 http:// 或 https:// 开头的实际服务地址","服务单价:0.08 元/次","请求示例 JSON:{\"city\":\"杭州\"}","```","","如需核对服务状态或服务详情,可前往支付宝 AI 付站点,登录后进入控制台 → 服务管理查看。","https://aipay.alipay.com/?from=alipay-aipay-skill"]}}},{"messageId":"service.id.missing","owner":"catalog_owned","trigger":"service.save.id_missing","blocking":false,"allowedReplies":[],"variables":[{"name":"serviceName","type":"singleLine","required":true}],"requiredPolicyIds":["P-PARTIAL-RESULT"],"variants":{"DEFAULT":{"templateLines":["服务 `{{serviceName}}` 的创建或修改调用已返回成功,但未解析到 `serviceId`,因此服务分支尚未完成。接下来会重新查询完整服务列表,并使用本次实际提交资料与列表可见字段做唯一匹配;没有唯一结果时保持未知。在取得实际 `serviceId` 前不会宣称 AI 按量付费产品开通完成。","","如需自行核对服务状态或服务详情,可前往支付宝 AI 付站点,登录后进入控制台 → 服务管理查看。","https://aipay.alipay.com/?from=alipay-aipay-skill"]}}}]}
@@ -1 +1 @@
1
- {"schemaVersion":1,"rules":[{"policyId":"P-MCP-CONTRACT-FROZEN","scope":"all","severity":"critical","text":"只用当前 Skill 已验证的 MCP 脚本契约;禁止推断、改名或尝试近似方法。","runtimeText":"仅用已验证脚本;禁推断或尝试近似方法。"},{"policyId":"P-AUTH-BEFORE-ONBOARDING","scope":"onboarding","severity":"critical","text":"登录、scope 和 MCC 校验通过前,禁止 onboarding 查询或写入。","runtimeText":"登录/scope/MCC 未通过前禁查询和写入。"},{"policyId":"P-SIGNING-WRITE","scope":"onboarding.signing","severity":"critical","text":"签约材料校验通过后直接提交,不增加确认;缺失或非法时禁止提交。"},{"policyId":"P-SERVICE-WRITE","scope":"onboarding.service","severity":"critical","text":"服务创建摘要送达后直接创建;服务修改须取得绑定当前脱敏摘要的明确确认。"},{"policyId":"P-APPLICATION-WRITE","scope":"onboarding.application","severity":"critical","text":"完整新建材料或非空候选后的明确“新建”已构成创建确认;快照未变时不追加确认,公钥确认后直接提审。"},{"policyId":"P-WRITE-UNKNOWN","scope":"onboarding.write","severity":"critical","text":"非幂等写入结果不明时只读核验;仍无法确认则进入 UNKNOWN,禁止重试写入。"},{"policyId":"P-PARTIAL-RESULT","scope":"onboarding","severity":"critical","text":"签约、服务、应用分支独立记录,失败不回滚或覆盖其他成功结果。"},{"policyId":"P-MATERIAL-CATEGORY","scope":"onboarding.materials","severity":"required","text":"每轮只展示一个材料类别;同类一次收齐,已提供材料不得重复索取。"},{"policyId":"P-KEY-NO-PRIVATE","scope":"onboarding.application","severity":"critical","text":"禁止请求、处理、保存或输出生产私钥,也不提供密钥生成命令。"},{"policyId":"P-KEY-PUBLIC-USER","scope":"onboarding.application","severity":"critical","text":"应用公钥只能由用户提供;缺少时禁止 createKeyConfirmPage,也不得补全、改写或添加 PEM 头尾。"},{"policyId":"P-AUTH-URL","scope":"onboarding.authorization","severity":"critical","text":"授权链接只由 auth.sh 构造并校验固定域名、路径和参数;禁用 verification_url。"},{"policyId":"P-KEY-URL","scope":"onboarding.application","severity":"critical","text":"公钥确认只展示 createKeyConfirmPage 返回并校验的裸 URL;禁止二维码链接和 alipays://。"},{"policyId":"P-AUTH-URL-AUTO-OPEN","scope":"onboarding.authorization","severity":"critical","text":"授权 URL 交付后调用受控 opener;失败时保留同一裸 URL 和复制兜底。"},{"policyId":"P-KEY-URL-AUTO-OPEN","scope":"onboarding.application","severity":"critical","text":"公钥 URL 交付后调用受控 opener;失败时保留同一裸 URL 和复制兜底。"},{"policyId":"P-KEY-TOOL-DOWNLOAD","scope":"onboarding.application","severity":"critical","text":"新建 WEBAPP 或 MOBILEAPP IOS|ANDROID|ALL 在首次等待或写入前必须展示 https://opendocs.alipay.com/isv/02kipk;HarmonyOS 除外。仅空候选且缺公钥时自动下载,非空候选只在用户要求时下载;只下载,不安装、启动或生成密钥。"},{"policyId":"P-A2M-SANDBOX","scope":"integration.aipay","severity":"critical","text":"AI 按量付费沙箱 serviceId 固定为 api_mock_service_id,SDK 使用沙箱网关;生产网关和真实 serviceId 只用于正式配置。","runtimeText":"A2M 沙箱固定 api_mock_service_id 与沙箱网关;生产值仅用于正式配置。"},{"policyId":"P-A2M-SUCCESS","scope":"integration.aipay","severity":"critical","text":"自动联调只有在 HTTP 200、非空可归属资源、无明确业务失败且适用 Payment-Validation 有效时通过。","runtimeText":"联调仅在 HTTP 200、资源可归属、无业务失败且适用回执有效时通过。"},{"policyId":"P-SANDBOX-CREDENTIAL-EXCEPTION","scope":"integration.sandbox","severity":"critical","text":"Unix/macOS/Linux 只允许快速沙箱实际返回且已校验的买家登录/支付密码在沙箱摘要和付款体验中经 stdin 临时渲染。Windows 手工沙箱允许用户在 sandbox.windows.manual_setup 后提供当前沙箱应用的 APPID、支付宝公钥、应用公钥、与当前开发语言匹配的应用私钥和沙箱账号信息;Agent 只能将其用于已确认目标项目的受保护配置,不得在回复、摘要、普通日志或业务状态中复述或另存原文。两类例外均不得扩展到生产环境账号、应用私钥或密码。","runtimeText":"仅登记且已校验的快速沙箱或 Windows 手工沙箱资料可按 flow 用于受保护项目;禁复述、另存或扩展到生产值。"},{"policyId":"P-SENSITIVE-STATE","scope":"all","severity":"critical","text":"用户公钥仅用于当前 app key/verify-key/verify-key-and-audit 调用,禁止在回复、摘要、普通日志、跨会话状态或宽权限临时文件中复述或保存;除登记的沙箱例外外,私钥、token、Payment-Proof、签名串、完整支付表单和未脱敏响应同样不得进入这些位置;临时 URL 仅可由登记动作校验后在该动作正文展示。","runtimeText":"公钥限当前 app 调用且禁复述/保存;敏感值禁入回复/摘要/日志/状态/宽权限文件;临时 URL 仅由登记动作展示。"},{"policyId":"P-PROJECT-PROTECT","scope":"integration","severity":"critical","text":"不得清空、覆盖或删除用户既有项目;只在已确认目标路径和范围内做必要修改。","runtimeText":"禁清空/覆盖/删除既有项目;仅改已确认路径和范围。"},{"policyId":"P-CUSTOMER-OUTPUT-EXCLUSIVE","scope":"all","severity":"critical","text":"登记 runner/script 的 stdout 是唯一对客正文,禁止增删改写;阻塞消息送达后立即等待用户。","runtimeText":"登记 stdout 原文是唯一正文;阻塞送达后立即等待。"},{"policyId":"P-ONBOARDING-CONTROL-CHANNEL","scope":"onboarding","severity":"critical","text":"剔除 ALIPAY_AIPAY_INTERNAL 内部行后再处理 stdout;内部行禁止对客,正文为空时直接转移。","runtimeText":"内部行禁对客;正文为空按唯一终态转移。"},{"policyId":"P-AUTH-PAGE-DELIVERY-BARRIER","scope":"onboarding.authorization","severity":"critical","text":"`auth.page` stdout 必须先独立送达,再 opener 和有限轮询;不得合并 pending 或收口,也不等待确认。"},{"policyId":"P-KEY-PAGE-DELIVERY-BARRIER","scope":"onboarding.application","severity":"critical","text":"`application.key.page` stdout 必须先独立送达,再 opener 和有限轮询;不得合并 pending 或收口,也不等待确认。"},{"policyId":"P-DETERMINISTIC-HANDOFF","scope":"all","severity":"critical","text":"只执行 flow 动作处登记命令并按唯一终态立即转移;禁止追加命令重复解析,失败只走登记恢复。","runtimeText":"仅执行登记命令并按唯一终态转移;禁追加解析;失败只走登记恢复。"}],"officialUrls":{"aipaySite":"https://aipay.alipay.com/","aipaySkillSite":"https://aipay.alipay.com/?from=alipay-aipay-skill","merchantPlatform":"https://b.alipay.com/page/portal/home","openPlatform":"https://open.alipay.com/","openPlatformHome":"https://open.alipay.com","technicalSupport":"https://opensupport.alipay.com/support/intelligent-services?form=payskill","keyToolManual":"https://opendocs.alipay.com/isv/02kipk","keyToolMac":"https://ideservice.alipay.com/ide/getPluginUrl.htm?clientType=assistant&platform=mac&channelType=WEB","keyToolWindows":"https://ideservice.alipay.com/ide/getPluginUrl.htm?clientType=assistant&platform=win&channelType=WEB","androidSandboxAlipay":"https://mdn.alipayobjects.com/sandboxsys/afts/img/_itHRrdOD9oAAAAAAAAAAAAADgSLAQBr/original","sandboxToolFallback":"https://open.alipay.com/develop/sandbox/tool","sandboxGateway":"https://openapi-sandbox.dl.alipaydev.com/gateway.do","productionGateway":"https://openapi.alipay.com/gateway.do","openPlatformPaySkill":"https://open.alipay.com?form=payskill","traditionalPaymentSkill":"https://github.com/alipay/ai/tree/main/skills"},"authorizationProducts":[{"productName":"AI 按量付费","salesCode":"I1080300001000160457","scope":"app:all,machine_pay:write,agmnt:write"},{"productName":"AI 网页应用收款","salesCode":"I1080300001000041203","scope":"app:all,fast_instant_trade_pay:write"},{"productName":"AI 移动应用收款","salesCode":"I1080300001000041313","scope":"app:all,auth_alipay_apppay:write"}],"temporaryUrlAllowlist":{"authorization":{"host":"aipay.alipay.com","path":"/cli-auth","requiredQueryParams":["deviceCode","productCode","mccCode"],"optionalQueryParams":["platform"]},"publicKeyConfirmation":{"host":"aipay.alipay.com","path":"/public-key-confirm","requiredQueryParams":["keyConfirmToken"],"optionalQueryParams":[]},"windowsOnboardingRedirect":{"host":"aipay.alipay.com","path":"/","requiredQueryParams":["from","reason","platform_id"],"optionalQueryParams":[]}}}
1
+ {"schemaVersion":1,"rules":[{"policyId":"P-MCP-CONTRACT-FROZEN","scope":"all","severity":"critical","text":"只用当前 Skill 已验证的 MCP 脚本契约;禁止推断、改名或尝试近似方法。","runtimeText":"仅用已验证脚本;禁推断或尝试近似方法。"},{"policyId":"P-AUTH-BEFORE-ONBOARDING","scope":"onboarding","severity":"critical","text":"登录、scope 和 MCC 校验通过前,禁止 onboarding 查询或写入。","runtimeText":"登录/scope/MCC 未通过前禁查询和写入。"},{"policyId":"P-SIGNING-WRITE","scope":"onboarding.signing","severity":"critical","text":"签约材料校验通过后直接提交,不增加确认;缺失或非法时禁止提交。"},{"policyId":"P-SERVICE-WRITE","scope":"onboarding.service","severity":"critical","text":"服务创建摘要送达后直接创建;服务修改须取得绑定当前脱敏摘要的明确确认。"},{"policyId":"P-APPLICATION-WRITE","scope":"onboarding.application","severity":"critical","text":"完整新建材料或非空候选后的明确“新建”已构成创建确认;快照未变时不追加确认,公钥确认后直接提审。"},{"policyId":"P-WRITE-UNKNOWN","scope":"onboarding.write","severity":"critical","text":"非幂等写入结果不明时只读核验;仍无法确认则进入 UNKNOWN,禁止重试写入。"},{"policyId":"P-PARTIAL-RESULT","scope":"onboarding","severity":"critical","text":"签约、服务、应用分支独立记录,失败不回滚或覆盖其他成功结果。"},{"policyId":"P-MATERIAL-CATEGORY","scope":"onboarding.materials","severity":"required","text":"每轮只展示一个材料类别;同类一次收齐,已提供材料不得重复索取。"},{"policyId":"P-KEY-NO-PRIVATE","scope":"onboarding.application","severity":"critical","text":"禁止请求、处理、保存或输出生产私钥,也不提供密钥生成命令。"},{"policyId":"P-KEY-PUBLIC-USER","scope":"onboarding.application","severity":"critical","text":"应用公钥只能由用户提供;缺少时禁止 createKeyConfirmPage,也不得补全、改写或添加 PEM 头尾。"},{"policyId":"P-AUTH-URL","scope":"onboarding.authorization","severity":"critical","text":"授权链接只由 auth.sh 构造并校验固定域名、路径和参数;禁用 verification_url。"},{"policyId":"P-KEY-URL","scope":"onboarding.application","severity":"critical","text":"公钥确认只展示 createKeyConfirmPage 返回并校验的裸 URL;禁止二维码链接和 alipays://。"},{"policyId":"P-AUTH-URL-AUTO-OPEN","scope":"onboarding.authorization","severity":"critical","text":"授权 URL 交付后调用受控 opener;失败时保留同一裸 URL 和复制兜底。"},{"policyId":"P-KEY-URL-AUTO-OPEN","scope":"onboarding.application","severity":"critical","text":"公钥 URL 交付后调用受控 opener;失败时保留同一裸 URL 和复制兜底。"},{"policyId":"P-KEY-TOOL-DOWNLOAD","scope":"onboarding.application","severity":"critical","text":"新建 WEBAPP 或 MOBILEAPP IOS|ANDROID|ALL 在首次等待或写入前必须展示 https://opendocs.alipay.com/isv/02kipk;HarmonyOS 除外。仅空候选且缺公钥时自动下载,非空候选只在用户要求时下载;只下载,不安装、启动或生成密钥。"},{"policyId":"P-A2M-SANDBOX","scope":"integration.aipay","severity":"critical","text":"AI 按量付费沙箱 serviceId 固定为 api_mock_service_id,SDK 使用沙箱网关;生产网关和真实 serviceId 只用于正式配置。","runtimeText":"A2M 沙箱固定 api_mock_service_id 与沙箱网关;生产值仅用于正式配置。"},{"policyId":"P-A2M-SUCCESS","scope":"integration.aipay","severity":"critical","text":"自动联调只有在 HTTP 200、非空可归属资源、无明确业务失败且适用 Payment-Validation 有效时通过。","runtimeText":"联调仅在 HTTP 200、资源可归属、无业务失败且适用回执有效时通过。"},{"policyId":"P-SANDBOX-CREDENTIAL-EXCEPTION","scope":"integration.sandbox","severity":"critical","text":"Unix/macOS/Linux 只允许快速沙箱实际返回且已校验的买家登录/支付密码在沙箱摘要和付款体验中经 stdin 临时渲染。Windows 手工沙箱允许用户在 sandbox.windows.manual_setup 后提供当前沙箱应用的 APPID、支付宝公钥、应用公钥、与当前开发语言匹配的应用私钥和沙箱账号信息;Agent 只能将其用于已确认目标项目的受保护配置,不得在回复、摘要、普通日志或业务状态中复述或另存原文。两类例外均不得扩展到生产环境账号、应用私钥或密码。","runtimeText":"仅登记且已校验的快速沙箱或 Windows 手工沙箱资料可按 flow 用于受保护项目;禁复述、另存或扩展到生产值。"},{"policyId":"P-SENSITIVE-STATE","scope":"all","severity":"critical","text":"用户公钥仅用于当前 app key/verify-key/verify-key-and-audit 调用,禁止在回复、摘要、普通日志、跨会话状态或宽权限临时文件中复述或保存;除登记的沙箱例外外,私钥、token、Payment-Proof、签名串、完整支付表单和未脱敏响应同样不得进入这些位置;临时 URL 仅可由登记动作校验后在该动作正文展示。","runtimeText":"公钥限当前 app 调用且禁复述/保存;敏感值禁入回复/摘要/日志/状态/宽权限文件;临时 URL 仅由登记动作展示。"},{"policyId":"P-PROJECT-PROTECT","scope":"integration","severity":"critical","text":"不得清空、覆盖或删除用户既有项目;只在已确认目标路径和范围内做必要修改。","runtimeText":"禁清空/覆盖/删除既有项目;仅改已确认路径和范围。"},{"policyId":"P-CUSTOMER-OUTPUT-EXCLUSIVE","scope":"all","severity":"critical","text":"登记 runner/script 的 stdout 是唯一对客正文,禁止增删改写;阻塞消息送达后立即等待用户。","runtimeText":"登记 stdout 原文是唯一正文;阻塞送达后立即等待。"},{"policyId":"P-ONBOARDING-CONTROL-CHANNEL","scope":"onboarding","severity":"critical","text":"剔除 ALIPAY_AIPAY_INTERNAL 内部行后再处理 stdout;内部行禁止对客,正文为空时直接转移。","runtimeText":"内部行禁对客;正文为空按唯一终态转移。"},{"policyId":"P-AUTH-PAGE-DELIVERY-BARRIER","scope":"onboarding.authorization","severity":"critical","text":"`auth.page` stdout 必须先独立送达,再 opener 和有限轮询;不得合并 pending 或收口,也不等待确认。"},{"policyId":"P-KEY-PAGE-DELIVERY-BARRIER","scope":"onboarding.application","severity":"critical","text":"`application.key.page` stdout 必须先独立送达,再 opener 和有限轮询;不得合并 pending 或收口,也不等待确认。"},{"policyId":"P-DETERMINISTIC-HANDOFF","scope":"all","severity":"critical","text":"只执行 flow 动作处登记命令并按唯一终态立即转移;禁止追加命令重复解析,失败只走登记恢复。","runtimeText":"仅执行登记命令并按唯一终态转移;禁追加解析;失败只走登记恢复。"}],"officialUrls":{"aipaySite":"https://aipay.alipay.com/","aipaySkillSite":"https://aipay.alipay.com/?from=alipay-aipay-skill","merchantPlatform":"https://b.alipay.com/page/portal/home","openPlatform":"https://open.alipay.com/","openPlatformHome":"https://open.alipay.com","technicalSupport":"https://opensupport.alipay.com/support/intelligent-services?form=payskill","keyToolManual":"https://opendocs.alipay.com/isv/02kipk","keyToolMac":"https://ideservice.alipay.com/ide/getPluginUrl.htm?clientType=assistant&platform=mac&channelType=WEB","keyToolWindows":"https://ideservice.alipay.com/ide/getPluginUrl.htm?clientType=assistant&platform=win&channelType=WEB","androidSandboxAlipay":"https://mdn.alipayobjects.com/sandboxsys/afts/img/_itHRrdOD9oAAAAAAAAAAAAADgSLAQBr/original","sandboxToolFallback":"https://open.alipay.com/develop/sandbox/tool","sandboxGateway":"https://openapi-sandbox.dl.alipaydev.com/gateway.do","productionGateway":"https://openapi.alipay.com/gateway.do","openPlatformPaySkill":"https://open.alipay.com?form=payskill","traditionalPaymentSkill":"https://github.com/alipay/ai/tree/main/skills","dingtalkSupportGroupQr":"https://mdn.alipayobjects.com/huamei_5fajmi/afts/img/MlFpRKmYyLIAAAAARJAAAAgADlahAQFr/original","wecomCommunityGroupQr":"https://mdn.alipayobjects.com/huamei_5fajmi/afts/img/Cz0TTZVO7_4AAAAAQDAAAAgADlahAQFr/fmt.webp"},"authorizationProducts":[{"productName":"AI 按量付费","salesCode":"I1080300001000160457","scope":"app:all,machine_pay:write,agmnt:write"},{"productName":"AI 网页应用收款","salesCode":"I1080300001000041203","scope":"app:all,fast_instant_trade_pay:write"},{"productName":"AI 移动应用收款","salesCode":"I1080300001000041313","scope":"app:all,auth_alipay_apppay:write"}],"temporaryUrlAllowlist":{"authorization":{"host":"aipay.alipay.com","path":"/cli-auth","requiredQueryParams":["deviceCode","productCode","mccCode"],"optionalQueryParams":["platform"]},"publicKeyConfirmation":{"host":"aipay.alipay.com","path":"/public-key-confirm","requiredQueryParams":["keyConfirmToken"],"optionalQueryParams":[]},"windowsOnboardingRedirect":{"host":"aipay.alipay.com","path":"/","requiredQueryParams":["from","reason","platform_id"],"optionalQueryParams":[]}}}
@@ -1262,10 +1262,17 @@ function runSafetyCloseout(args) {
1262
1262
  }
1263
1263
 
1264
1264
  function runWindowsSandboxSummary(args) {
1265
+ const environmentRows = required(args, 'environment-rows');
1266
+ const passwordSaveHint = '已写入本地配置文件,默认不在对话中展开';
1267
+ const lines = environmentRows.split('\n');
1268
+ if (lines[2] !== `| 沙箱买家登录密码 | ${passwordSaveHint} |`
1269
+ || lines[3] !== `| 沙箱买家支付密码 | ${passwordSaveHint} |`) {
1270
+ throw new Error('Windows 沙箱摘要的两个密码行必须只使用固定本地保存提示');
1271
+ }
1265
1272
  const summary = renderMessage('sandbox.environment.summary', 'DEFAULT', {
1266
1273
  productName: required(args, 'product-name'),
1267
1274
  configPath: required(args, 'config-path'),
1268
- environmentRows: required(args, 'environment-rows')
1275
+ environmentRows
1269
1276
  });
1270
1277
  const reminder = renderMessage('sandbox.environment.reminder', 'WINDOWS', {});
1271
1278
  emitStageMetric('integration.create_sandbox');
@@ -1186,6 +1186,9 @@ function closeoutInputFromArgs(args) {
1186
1186
  'product-name',
1187
1187
  'process-result-title',
1188
1188
  'application-operation-actual-status',
1189
+ 'application-operation-app-id',
1190
+ 'application-operation-next-action',
1191
+ 'application-operation-app-key-save-path',
1189
1192
  'next-flow-reminder'
1190
1193
  ].filter((name) => Object.prototype.hasOwnProperty.call(args, name));
1191
1194
  if (retiredArgs.length > 0) {
@@ -1234,15 +1237,11 @@ function closeoutInputFromArgs(args) {
1234
1237
  };
1235
1238
  const optionalMapping = {
1236
1239
  'sandbox-config-state': 'sandboxConfigState',
1237
- 'manual-verification-items': 'manualVerificationItems',
1238
- 'application-operation-app-id': 'applicationOperationAppId',
1239
- 'application-operation-next-action': 'applicationOperationNextAction',
1240
- 'application-operation-app-key-save-path': 'applicationOperationAppKeySavePath'
1240
+ 'manual-verification-items': 'manualVerificationItems'
1241
1241
  };
1242
1242
  for (const [argName, fieldName] of Object.entries(optionalMapping)) {
1243
1243
  if (Object.prototype.hasOwnProperty.call(args, argName)) input[fieldName] = required(args, argName);
1244
1244
  }
1245
- if (input.applicationOperationAppId) input.applicationOperationActualStatus = applicationResult;
1246
1245
  return input;
1247
1246
  }
1248
1247
 
@@ -764,6 +764,23 @@ function validateIntegrationStart(variantName, variables) {
764
764
  }
765
765
  }
766
766
 
767
+ function validateSandboxEnvironmentRows(variables) {
768
+ const expectedLabels = [
769
+ '沙箱支付宝应用ID(appID)',
770
+ '沙箱买家测试账号',
771
+ '沙箱买家登录密码',
772
+ '沙箱买家支付密码'
773
+ ];
774
+ const rows = variables.environmentRows.split('\n').map((line) => {
775
+ const match = /^\| ([^|]+) \| ([^|]+) \|$/u.exec(line);
776
+ return match ? { label: match[1], value: match[2] } : null;
777
+ });
778
+ if (rows.length !== expectedLabels.length
779
+ || rows.some((row, index) => !row || row.label !== expectedLabels[index] || !row.value.trim())) {
780
+ throw new Error('sandbox.environment.summary 必须按固定顺序传入四项已校验沙箱字段');
781
+ }
782
+ }
783
+
767
784
  function validateWriteConfirmation(variantName, variables, normalized) {
768
785
  const common = ['sessionSummary', 'subjectSummary', 'productName', 'actionTypes'];
769
786
  const service = ['serviceId', 'serviceName', 'serviceDescription', 'serviceUrl', 'servicePricing', 'serviceSchema'];
@@ -790,28 +807,29 @@ function validateWriteConfirmation(variantName, variables, normalized) {
790
807
  function productionSpecificLines(productName) {
791
808
  if (productName === 'AI 按量付费') {
792
809
  return [
793
- '3. AI 按量付费 `serviceId`:把沙箱 `api_mock_service_id` 替换为真实 `serviceId`,`serviceId` 获取方式是:登录支付宝 AI 付站点(https://aipay.alipay.com/?from=alipay-aipay-skill) → 控制台 → 服务管理 → 复制审核已通过的目标服务 ID。',
794
- '4. AI 按量付费商户标识:`seller_id`/`seller_unique_id` 填收款商户 PID/2088,PID 获取方式是:登录支付宝商家平台(https://b.alipay.com/page/portal/home) → 点击头像 → 复制账户名下方 2088 开头的商家 ID;`seller_app_id` 填生产 `appId`。',
795
- '5. AI 按量付费验收:A2M 不使用 `notify_url`;上线前用生产应用私钥重新签名 402 账单,并验证 `Payment-Proof`、金额/订单/资源一致、`trade_no` 防重复履约和 `alipay.aipay.agent.fulfillment.confirm` 异步回执。'
810
+ '4. AI 按量付费 `serviceId`:把沙箱 `api_mock_service_id` 替换为真实 `serviceId`,`serviceId` 获取方式是:登录支付宝 AI 付站点(https://aipay.alipay.com/?from=alipay-aipay-skill) → 控制台 → 服务管理 → 复制审核已通过的目标服务 ID。',
811
+ '5. AI 按量付费商户标识:`seller_id`/`seller_unique_id` 填收款商户 PID/2088,PID 获取方式是:登录支付宝商家平台(https://b.alipay.com/page/portal/home) → 点击头像 → 复制账户名下方 2088 开头的商家 ID;`seller_app_id` 填生产 `appId`。',
812
+ '6. AI 按量付费验收:A2M 不使用 `notify_url`;上线前用生产应用私钥重新签名 402 账单,并验证 `Payment-Proof`、金额/订单/资源一致、`trade_no` 防重复履约和 `alipay.aipay.agent.fulfillment.confirm` 异步回执。'
796
813
  ];
797
814
  }
798
815
  if (productName === 'AI 移动应用收款') {
799
816
  return [
800
- '3. AI 移动应用收款 `notify_url`:生成生产 `orderStr` 时传入商家已部署的公网 HTTPS `notify_url`;未传不会触发异步通知。',
801
- '4. AI 移动应用收款验收:`notify_url` 完成验签,校验 `app_id`/`out_trade_no`/`total_amount`/`trade_status`,幂等处理并返回 `success`;支付结果以异步通知或 `alipay.trade.query` 补偿查询为准。客户端 SDK 使用服务端 `orderStr` 调起支付,客户端结果只做展示,不能作为付款成功依据。'
817
+ '4. AI 移动应用收款 `notify_url`:生成生产 `orderStr` 时传入商家已部署的公网 HTTPS `notify_url`;未传不会触发异步通知。',
818
+ '5. AI 移动应用收款验收:`notify_url` 完成验签,校验 `app_id`/`out_trade_no`/`total_amount`/`trade_status`,幂等处理并返回 `success`;支付结果以异步通知或 `alipay.trade.query` 补偿查询为准。客户端 SDK 使用服务端 `orderStr` 调起支付,客户端结果只做展示,不能作为付款成功依据。'
802
819
  ];
803
820
  }
804
821
  return [
805
- '3. AI 网页应用收款 `notify_url`:生产下单时传入商家已部署的公网 HTTPS `notify_url`;该地址是商家后端通知地址,不是支付宝生成的 URL。',
806
- '4. AI 网页应用收款验收:`notify_url` 完成验签,校验 `app_id`/`out_trade_no`/`total_amount`/`trade_status`,幂等处理并返回 `success`;支付结果以异步通知或 `alipay.trade.query` 补偿查询为准,同步回跳或前台页面不能作为付款成功依据。',
807
- '5. AI 网页应用收款限制:如需解除 AI 网页应用收款的收款限制,请前往 支付宝商家平台 - 签约管理 补全收款信息:https://b.alipay.com/page/ar-center/ar-manage'
822
+ '4. AI 网页应用收款 `notify_url`:生产下单时传入商家已部署的公网 HTTPS `notify_url`;该地址是商家后端通知地址,不是支付宝生成的 URL。',
823
+ '5. AI 网页应用收款验收:`notify_url` 完成验签,校验 `app_id`/`out_trade_no`/`total_amount`/`trade_status`,幂等处理并返回 `success`;支付结果以异步通知或 `alipay.trade.query` 补偿查询为准,同步回跳或前台页面不能作为付款成功依据。',
824
+ '6. AI 网页应用收款限制:如需解除 AI 网页应用收款的收款限制,请前往 支付宝商家平台 - 签约管理 补全收款信息:https://b.alipay.com/page/ar-center/ar-manage'
808
825
  ];
809
826
  }
810
827
 
811
828
  function productionConfigSourceLines() {
812
829
  return [
813
- '1. 确认上线条件:前往支付宝 AI 付站点(https://aipay.alipay.com/?from=alipay-aipay-skill)查看产品开通情况。如本次流程新建应用,进入一站式接入 → 选择产品 → 密钥配置,确认应用“已上线”。',
814
- '2. 替换到项目:把生产环境的应用配置写入业务系统生产环境变量、受保护配置文件或密钥管理系统,确保 `appId`、应用公钥、应用私钥、支付宝公钥同属一套生产应用并修改生产网关为 `https://openapi.alipay.com/gateway.do`。'
830
+ '1. 产品开通确认:前往支付宝 AI 付站点查看产品开通情况(https://aipay.alipay.com/?from=alipay-aipay-skill)。',
831
+ '2. 应用上线确认:前往支付宝 AI 付站点“一站式接入 → 选择产品 → 密钥配置”,确认目标支付宝应用“已上线”。',
832
+ '3. 替换项目中支付宝应用配置为生产:把生产环境的支付宝应用配置写入业务系统环境变量、受保护配置文件或密钥管理系统。确保 appId、应用私钥、支付宝公钥同属一套生产环境支付宝应用,同时修改项目中的支付宝网关为生产网关:https://openapi.alipay.com/gateway.do。'
815
833
  ];
816
834
  }
817
835
 
@@ -837,10 +855,7 @@ function productionReadinessBlock(productName, context) {
837
855
  ...productionSpecificLines(productName),
838
856
  '',
839
857
  '【提示】',
840
- '- 如找不到配置替换位置,可以试试对 Agent 说:“我要上线了,帮我找一下项目里支付宝生产配置应该改哪些地方”。让 Agent 定位文件/变量名,但不要把生产应用私钥、账号密码、支付凭证或未脱敏通知内容直接发给 Agent。',
841
- '',
842
- '【其他】',
843
- '- 生产首单、退款或对账验收由商家在生产环境自行安排。'
858
+ '- 如找不到配置替换位置,可以试试对 Agent 说:“我要上线了,帮我找一下项目里支付宝生产配置应该改哪些地方”。让 Agent 定位文件/变量名,但不要把生产应用私钥、账号密码、支付凭证或未脱敏通知内容直接发给 Agent。'
844
859
  ].join('\n');
845
860
  }
846
861
  return [
@@ -852,10 +867,7 @@ function productionReadinessBlock(productName, context) {
852
867
  ...productionSpecificLines(productName),
853
868
  '',
854
869
  '【提示】',
855
- '- 如找不到配置替换位置,可以试试对 Agent 说:“我要上线了,帮我找一下项目里支付宝生产配置应该改哪些地方”。让 Agent 定位文件/变量名,但不要把生产应用私钥、账号密码、支付凭证或未脱敏通知内容直接发给 Agent。',
856
- '',
857
- '【其他】',
858
- '- 生产首单、退款或对账验收由商家在生产环境自行安排。'
870
+ '- 如找不到配置替换位置,可以试试对 Agent 说:“我要上线了,帮我找一下项目里支付宝生产配置应该改哪些地方”。让 Agent 定位文件/变量名,但不要把生产应用私钥、账号密码、支付凭证或未脱敏通知内容直接发给 Agent。'
859
871
  ].join('\n');
860
872
  }
861
873
 
@@ -992,7 +1004,7 @@ const managedEntrypoints = {
992
1004
  reason: 'runner 绑定服务候选。'
993
1005
  },
994
1006
  'process.partial_result': {
995
- command: 'node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" onboarding-message closeout --product-type <aipay|webpay|apppay> --root-intent <onboarding_only|full_process> --signing-result <result> --application-result <result> --remaining-actions <actions> [--integration-result <result>] [--service-result <result>] [--application-operation-app-key-save-path <path>]',
1007
+ command: 'node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" onboarding-message closeout --product-type <aipay|webpay|apppay> --root-intent <onboarding_only|full_process> --signing-result <result> --application-result <result> --remaining-actions <actions> [--integration-result <result>] [--service-result <result>]',
996
1008
  reason: 'runner 合并最终收口,禁手写。'
997
1009
  },
998
1010
  'sandbox.android.client': {
@@ -1378,6 +1390,7 @@ export function renderMessage(messageId, variantName, variables, telemetryContex
1378
1390
  }
1379
1391
  normalized.appKeySaveLine = appKeySaveLine(normalized.appId, variables.appKeySavePath);
1380
1392
  }
1393
+ if (messageId === 'sandbox.environment.summary') validateSandboxEnvironmentRows(variables);
1381
1394
  if (messageId === 'error.backend') {
1382
1395
  normalized.errorSceneLine = variables.errorScene || variables.errorSpecific
1383
1396
  ? `📋 错误场景:${variables.errorScene ? normalized.errorScene : '未知'} / ${variables.errorSpecific ? normalized.errorSpecific : '未知'}`
@@ -1577,77 +1590,6 @@ export function renderMessage(messageId, variantName, variables, telemetryContex
1577
1590
  typeof variables.manualVerificationItems === 'string' &&
1578
1591
  variables.manualVerificationItems !== '' &&
1579
1592
  variables.manualVerificationItems !== '无';
1580
- const applicationOperationFields = [
1581
- 'applicationOperationAppId',
1582
- 'applicationOperationActualStatus',
1583
- 'applicationOperationNextAction',
1584
- 'applicationOperationAppKeySavePath'
1585
- ];
1586
- const providedApplicationOperationFields = applicationOperationFields.filter((name) =>
1587
- typeof variables[name] === 'string' && variables[name] !== ''
1588
- );
1589
- const hasApplicationOperationAppId = providedApplicationOperationFields.includes('applicationOperationAppId');
1590
- const hasApplicationOperationActualStatus = providedApplicationOperationFields.includes('applicationOperationActualStatus');
1591
- const hasApplicationOperationNextAction = providedApplicationOperationFields.includes('applicationOperationNextAction');
1592
- const hasApplicationOperationAppKeySavePath = providedApplicationOperationFields.includes('applicationOperationAppKeySavePath');
1593
- if (providedApplicationOperationFields.length !== 0 && (!hasApplicationOperationAppId || !hasApplicationOperationActualStatus)) {
1594
- throw new Error('应用分支操作结果必须至少同时传入 appId 和实际状态');
1595
- }
1596
- if (hasApplicationOperationAppId && hasApplicationOperationActualStatus) {
1597
- if (onboardingOnly) {
1598
- throw new Error('onboarding_only 不合并应用操作结果;请按应用模块原规则输出');
1599
- }
1600
- if (variables.applicationOperationActualStatus !== variables.applicationResult) {
1601
- throw new Error('应用分支操作实际状态与应用发布结果不一致');
1602
- }
1603
- if (variables.applicationResult === '需人工配置' && hasApplicationOperationAppKeySavePath) {
1604
- throw new Error('需人工配置表示支付宝公钥未本地保存,禁止传入应用操作保存路径');
1605
- }
1606
- if (variables.applicationResult === '已上线且配置完整' && !hasApplicationOperationAppKeySavePath) {
1607
- throw new Error('process.partial_result 在应用已上线且配置完整时必须传入应用操作保存路径');
1608
- }
1609
- const operationAppKeySaveLine = appKeySaveLine(
1610
- normalized.applicationOperationAppId,
1611
- variables.applicationOperationAppKeySavePath
1612
- );
1613
- if (variables.applicationResult === '已上线且配置完整') {
1614
- normalized.applicationOperationBlock = hasApplicationOperationAppKeySavePath
1615
- ? [
1616
- '应用分支结果:',
1617
- `- 应用 \`${normalized.applicationOperationAppId}\` 的实际状态:${normalized.applicationOperationActualStatus}。`,
1618
- `- ${operationAppKeySaveLine}`
1619
- ].join('\n')
1620
- : '';
1621
- } else if ([
1622
- '已创建,待设置公钥',
1623
- '公钥待确认',
1624
- '已提交审核,等待上线',
1625
- '需人工配置',
1626
- '失败',
1627
- '结果未知'
1628
- ].includes(variables.applicationResult)) {
1629
- if (variables.applicationResult === '需人工配置') {
1630
- if (hasApplicationOperationNextAction) {
1631
- throw new Error('支付宝公钥人工配置下一步由消息目录固定,禁止传入应用操作 nextAction');
1632
- }
1633
- normalized.applicationOperationNextAction = definitions.get('applicationManualConfigurationNextAction')?.values?.[0] || '';
1634
- if (!normalized.applicationOperationNextAction) throw new Error('process.partial_result 缺少支付宝公钥人工配置下一步');
1635
- } else if (!hasApplicationOperationNextAction) {
1636
- throw new Error('非人工配置应用分支操作结果必须传入下一步');
1637
- }
1638
- normalized.applicationOperationBlock = [
1639
- '应用分支结果:',
1640
- `- 应用 \`${normalized.applicationOperationAppId}\` 的实际状态:${normalized.applicationOperationActualStatus}。`,
1641
- operationAppKeySaveLine ? `- ${operationAppKeySaveLine}` : '',
1642
- `- 应用分支下一步:${normalized.applicationOperationNextAction}`,
1643
- '- 待审核、待设置公钥或待人工配置时不会表述为应用发布完成。'
1644
- ].filter((line) => line !== '').join('\n');
1645
- } else {
1646
- throw new Error('当前应用分支结果不允许合并应用操作结果');
1647
- }
1648
- } else {
1649
- normalized.applicationOperationBlock = '';
1650
- }
1651
1593
  if (onboardingOnly) {
1652
1594
  if (variables.sandboxConfigState !== undefined) throw new Error('onboarding_only 禁止传入代码开发沙箱状态');
1653
1595
  if (hasManualVerificationItems) throw new Error('onboarding_only 禁止传入代码开发人工待验证项');
@@ -489,7 +489,7 @@ CLI 权限 marker 在列表或写入调用前按 Step 5 取权并原样重跑一
489
489
 
490
490
  公钥页成功须同时有 `KEY_PAGE_RESULT=READY_TO_OPEN` 与 `KEY_PAGE:READY_TO_OPEN`;stdout 先独立送达,再 opener 和校验,不与 pending/收口合并。自动打开/查询不能替代 URL 交付。最多 20 次、间隔 2 秒,双公钥 guard 通过才提审;耗尽才输出 pending。肯定回复只由 recovery 单查一次,不重启轮询/页面;其他回复不触发。保存失败仅降级 `LINK_ONLY`;仅用户反馈页面问题时重建。
491
491
 
492
- 支付宝公钥导出前 config 探针失败时 stdout 空,仅记录 `APP_FLOW:RETRY_WITH_LOCAL_CONFIG_PERMISSION` 和 `ALIPAY_PUBLIC_KEY_EXPORT_STATUS=RETRY_WITH_LOCAL_CONFIG_PERMISSION`;取得 `${XDG_CONFIG_HOME:-$HOME/.config}` 权限后原样重试当前 `reuse|verify-key|verify-key-and-audit|audit` 一次,不重开页面。拒绝/不支持/仍失败,或实际写文件失败,才降级 `MANUAL_CONFIGURATION_REQUIRED`,记“需人工配置”且不得称完整。下一步由消息目录固定生成,禁传 URL 或手写;`onboarding_only` 单独输出,`full_process` 合入 Step 6。HarmonyOS 不变。
492
+ 支付宝公钥导出前 config 探针失败时 stdout 空,仅记录 `APP_FLOW:RETRY_WITH_LOCAL_CONFIG_PERMISSION` 和 `ALIPAY_PUBLIC_KEY_EXPORT_STATUS=RETRY_WITH_LOCAL_CONFIG_PERMISSION`;取得 `${XDG_CONFIG_HOME:-$HOME/.config}` 权限后原样重试当前 `reuse|verify-key|verify-key-and-audit|audit` 一次,不重开页面。拒绝/不支持/仍失败,或实际写文件失败,才降级 `MANUAL_CONFIGURATION_REQUIRED`,记“需人工配置”且不得称完整。下一步由消息目录固定生成,禁传 URL 或手写;`onboarding_only` 和 `full_process` 都先独立输出应用结果,再进入 Step 6。HarmonyOS 不变。
493
493
 
494
494
  opener 失败时宿主浏览器只开已交付 URL 一次,再失败保留裸 URL 和复制兜底,禁搜索、改写、填写或代扫码。提审成功须同时有 `APPLICATION_AUDIT_RESULT=SUBMITTED` 与 `FLOW:AUDIT_SUBMITTED`;`UNKNOWN` 遵守上表。
495
495
 
@@ -499,6 +499,30 @@ opener 失败时宿主浏览器只开已交付 URL 一次,再失败保留裸 U
499
499
  node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" onboarding-message application-reuse-no-key --app-id "$APP_ID" --agent-platform "<AGENT_PLATFORM>" --session-id "<SESSION_ID>"
500
500
  ```
501
501
 
502
+ **应用分支结果交付(所有三个产品统一)**:AI 按量付费、AI 网页应用收款、AI 移动应用收款在 `onboarding_only` 和 `full_process` 中均遵循同一顺序:应用分支取得本轮可收口的实际结果后,先独立交付 `application.operation.result`,再推进其他分支或进入 Step 6。即使应用操作紧邻总收口,也不得省略或合并这条消息;已在本轮针对同一结果交付过则不重复发送。仍等待材料、公钥确认或权限恢复时按原分支处理,不提前生成结果。
503
+
504
+ 只有本轮实际取得目标 `APP_ID` 时才执行以下命令;没有取得 appId 的创建失败、结果未知或未选择应用场景,不编造 appId,也不重放写操作,保留既有错误/候选正文和实际待办进入总收口。`ACTUAL_STATUS` 和供总收口使用的 `APPLICATION_RESULT` 必须按下表从同一本轮 marker 事实选取,字面值与消息目录一致。非“需人工配置”传入有事实依据的 `NEXT_ACTION`;“需人工配置”省略下一步和保存路径,由消息目录派生。`ALIPAY_PUBLIC_KEY_EXPORT_STATUS=EXPORTED` 时必须传入本轮实际 `APP_KEY_SAVE_PATH`,只展示路径,不复述公钥内容。
505
+
506
+ <!-- APPLICATION_RESULT_MAP:START -->
507
+ | `APPLICATION_RESULT` | 本轮事实判据 |
508
+ |---|---|
509
+ | `待选择` | discovery 已取得应用候选,但用户尚未完成当前候选选择,或明确暂不新建 |
510
+ | `已创建,待设置公钥` | `APPLICATION_CREATE_RESULT=SUCCESS` 后尚未生成有效公钥页,或复用应用返回 `FLOW:REUSE_NO_KEY` |
511
+ | `公钥待确认` | 已取得 `KEY_PAGE_RESULT=READY_TO_OPEN`,但有限轮询或单次恢复返回 `FLOW:KEY_NOT_CONFIRMED` |
512
+ | `HarmonyOS 应用待平台侧创建、配置或上线` | 进入 `application.harmony.manual_create` 分支,尚未重新查询到可复用的 `ON_LINE` 应用 |
513
+ | `已提交审核,等待上线` | `APPLICATION_AUDIT_RESULT=SUBMITTED` / `FLOW:AUDIT_SUBMITTED`,但当前应用尚未满足完整上线条件 |
514
+ | `已上线且配置完整` | 当前应用已确认 `ON_LINE`、RSA2 应用公钥已生效且支付宝公钥已实际导出 |
515
+ | `需人工配置` | 权限恢复后最终仍取得 `ALIPAY_PUBLIC_KEY_EXPORT_STATUS=MANUAL_CONFIGURATION_REQUIRED` |
516
+ | `失败` | 应用创建、公钥页生成或应用提审取得明确 `FAILED`,或组合入口 `CONTRACT_ERROR|PREWRITE_FAILED` 自动重试仍失败,且没有后续成功事实覆盖 |
517
+ | `结果未知` | 应用查询失败,或创建、公钥页、提审取得 `UNKNOWN` 且只读核验仍不能确认 |
518
+ <!-- APPLICATION_RESULT_MAP:END -->
519
+
520
+ ```bash
521
+ node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" onboarding-message application-result --app-id "$APP_ID" --actual-status "$ACTUAL_STATUS" [--next-action "$NEXT_ACTION"] [--app-key-save-path "$APP_KEY_SAVE_PATH"] --agent-platform "<AGENT_PLATFORM>" --session-id "<SESSION_ID>"
522
+ ```
523
+
524
+ 必须取得唯一 `ALIPAY_AIPAY_INTERNAL:CUSTOMER_MESSAGE_DELIVERY_REQUIRED=application.operation.result`,下一动作先把该次 stdout 原文作为独立可见进行中消息送达;送达前禁止加载或执行 closeout、继续工具调用或把结果并入总收口。消息送达后同一工作回合继续,不等待用户确认,不以最终答复结束当前回合。marker 缺失或不唯一时停止并重跑同一登记消息命令,不重跑应用写操作。
525
+
502
526
  <!-- ALIPAY_AIPAY_FLOW:ONBOARDING_APPLICATION:END -->
503
527
 
504
528
  <!-- ALIPAY_AIPAY_FLOW:ONBOARDING_CLOSEOUT:START -->
@@ -510,41 +534,27 @@ node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" onboarding-message appl
510
534
 
511
535
  使用 `../normal/json/customer-messages.json` 的 `process.partial_result` 逐分支收口,必须通过 `onboarding_message_runner.mjs closeout` 托管输出并原文发送 stdout。禁止 Agent 手写短摘要、删减 `productionReadinessBlock`、删减 AI 网页应用收款限制引导或改写后续衔接;AI 网页应用收款收口缺少“【上线前有以下关键点】”和“AI 网页应用收款限制”时视为标准收口未送达,必须重发同一次 stdout。自动重试耗尽、业务错误或查询失败且仍未恢复的动作,统一写入分支结果和 `remainingActions`,只说明一次,不在收口后追问是否重试。必须执行:
512
536
 
513
- `SIGNING_RESULT`、`SERVICE_RESULT`、`APPLICATION_RESULT` 和 `INTEGRATION_RESULT` 必须使用消息目录允许的状态枚举原文,禁止拼接 `appId`、公钥文件路径、错误码、截图证据或其他自由文本;本轮 `ALIPAY_PUBLIC_KEY_EXPORT_STATUS=EXPORTED` 时,`APP_KEY_SAVE_PATH` 或 `APPLICATION_OPERATION_APP_KEY_SAVE_PATH` 必须同时传入结果 runner。这些证据不能污染分支结果枚举。
537
+ `SIGNING_RESULT`、`SERVICE_RESULT`、`APPLICATION_RESULT` 和 `INTEGRATION_RESULT` 必须使用消息目录允许的状态枚举原文,禁止拼接 `appId`、公钥文件路径、错误码、截图证据或其他自由文本;本轮 `ALIPAY_PUBLIC_KEY_EXPORT_STATUS=EXPORTED` 时,`APP_KEY_SAVE_PATH` 必须传入前一步独立应用结果 runner。这些证据不能污染分支结果枚举。
514
538
 
515
- 应用分支单独输出 `application.operation.result` 时,runner 必须输出唯一 `ALIPAY_AIPAY_INTERNAL:CUSTOMER_MESSAGE_DELIVERY_REQUIRED=application.operation.result`。命令后的下一个 Agent 动作必须先将该次 stdout 原文作为独立用户可见消息送达,送达前禁止 closeout、合并或继续工具调用;总收口不能替代这条应用结果消息。该约束只强化消息交付编排,不新增用户确认点;marker 缺失或不唯一时停止并重跑同一登记命令。
539
+ 进入本步骤前,应用分支已按前一步的交付规则独立输出 `application.operation.result`(无实际 appId 的例外沿用前一步),runner 必须输出唯一 `ALIPAY_AIPAY_INTERNAL:CUSTOMER_MESSAGE_DELIVERY_REQUIRED=application.operation.result`。命令后的下一个 Agent 动作必须先将该次 stdout 原文作为独立用户可见消息送达,送达前禁止 closeout、合并或继续工具调用;总收口不能替代这条应用结果消息。该约束只强化消息交付编排,不新增用户确认点;marker 缺失或不唯一时停止并重跑同一登记命令。
516
540
 
517
541
  ```bash
518
- node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" onboarding-message closeout --product-type "$PRODUCT_TYPE" --root-intent "$ROOT_INTENT" --signing-result "$SIGNING_RESULT" --application-result "$APPLICATION_RESULT" --remaining-actions "$REMAINING_ACTIONS" [--integration-result "$INTEGRATION_RESULT"] [--service-result "$SERVICE_RESULT"] [--sandbox-config-state "$SANDBOX_CONFIG_STATE"] [--manual-verification-items "$MANUAL_VERIFICATION_ITEMS"] [--application-operation-app-id "$APPLICATION_OPERATION_APP_ID" [--application-operation-next-action "$APPLICATION_OPERATION_NEXT_ACTION"] [--application-operation-app-key-save-path "$APPLICATION_OPERATION_APP_KEY_SAVE_PATH"]] --telemetry-run-id "$RUN_ID" --telemetry-history-count "$HISTORY_COUNT" --agent-platform "<AGENT_PLATFORM>" --session-id "<SESSION_ID>"
542
+ node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" onboarding-message closeout --product-type "$PRODUCT_TYPE" --root-intent "$ROOT_INTENT" --signing-result "$SIGNING_RESULT" --application-result "$APPLICATION_RESULT" --remaining-actions "$REMAINING_ACTIONS" [--integration-result "$INTEGRATION_RESULT"] [--service-result "$SERVICE_RESULT"] [--sandbox-config-state "$SANDBOX_CONFIG_STATE"] [--manual-verification-items "$MANUAL_VERIFICATION_ITEMS"] --telemetry-run-id "$RUN_ID" --telemetry-history-count "$HISTORY_COUNT" --agent-platform "<AGENT_PLATFORM>" --session-id "<SESSION_ID>"
519
543
  ```
520
544
 
521
545
  用户输入计数严格继承 `runtime-entry.md`:active run 内每条聊天框用户消息先执行唯一 `count-user-input --run-id "$RUN_ID" --input-id "$USER_INPUT_ID"`,不按 Skill 相关性筛选;runner、recovery、renderer 和 closeout 不做隐式计数。closeout 生成最终 summary 前使用当前 `HISTORY_COUNT` 快照,正式值始终由 runtime counter 写入,禁止传入或覆盖 `user_input_after_clarify_intent`。
522
546
 
523
547
  runner 从 `PRODUCT_TYPE` 派生产品名,网站支付/APP 支付派生服务结果“无需处理”,从 `ROOT_INTENT` 派生代码开发栏和后续衔接;标题只按完成条件派生。`onboarding_only` 省略 `--integration-result`、`--sandbox-config-state` 和 `--manual-verification-items`。`full_process`:代码开发通过填“已完成”并传 `READY`;仅沙箱待配置且其余代码与安全检查通过填“部分完成,沙箱配置待完成”并传 `CREATE_PENDING|VERIFY_PENDING`;沙箱 `READY` 且只剩非阻塞人工待验证项时填“部分完成,人工待验证”,传 `READY`,把 checklist `manualItems` 原样作为 `MANUAL_VERIFICATION_ITEMS`,并在 `REMAINING_ACTIONS` 写明实际待办,禁止传“无”。runner 拒绝旧完整参数、stdin JSON、`--input-json`、可派生字段和空字符串伪值。renderer 校验结果与沙箱状态/人工待验证项一致,并派生恢复口令或人工待验证展示;不增加确认点。不得在 stdout 前后追加衔接提醒,不伪造本轮代码修改、沙箱创建或测试结果,也不重复进入 integration。
524
548
 
525
- 若 `full_process` 最后一跳紧接应用创建、审核提交或复用,不再先输出 `application.operation.result` 再立刻 closeout;只记录同一 `APPLICATION_OPERATION_APP_ID`,runner 复用 `APPLICATION_RESULT`,非“需人工配置”还记录 `APPLICATION_OPERATION_NEXT_ACTION`;“需人工配置”的下一步由 runner 派生。若本轮 `ALIPAY_PUBLIC_KEY_EXPORT_STATUS=EXPORTED`,必须同时传 `APPLICATION_OPERATION_APP_KEY_SAVE_PATH`,收口必须展示“当前 appId: xxx 对应的支付宝公钥保存在:xxx”;“需人工配置”禁止传该路径。已上线且无保存路径时不展开“应用分支结果”;已上线且有保存路径时只展开 appId、状态和路径;其他应用结果合并展示并保留完成态红线。`onboarding_only`、应用分支仍需用户补材料/确认,或应用操作结果不是紧邻 Step 6 收口时,仍按应用模块输出 `application.operation.result`。合并展示不得改写完成条件,待审核、待设置公钥或待人工配置仍不得表述为应用发布完成。
549
+ 三个产品的总收口只保留分支状态表中的应用发布结果和实际待办,不再重复输出应用结果详情、appId、支付宝公钥保存路径或应用结果专属下一步。应用详情仅由前一步 `application.operation.result` 独立交付;`closeout` 拒绝旧 `--application-operation-*` 参数,禁止把详情改塞入 `remainingActions` 或其他字段。应用创建、提审、复用和人工配置的事实判据保持不变。
526
550
 
527
551
  当且仅当签约结果为“已提交,等待生效”且应用结果为“已提交审核,等待上线”时,renderer 从消息目录自动在 `remainingActions` 后追加状态查询提示;该提示不是 flow 入参,Agent 禁止自行传入、拼接或在模板外重复输出。其他结果组合不展示该提示。
528
552
 
529
- renderer 还会按 `productName` 和分支完成条件自动派生上线前检查块。Agent 不传入、不改写该字段,也不得在模板外补第二份生产上线清单。该检查使用“【当前状态】/【上线前有以下关键点】/【提示】/【其他】”结构,不单列“相关站点”,也不在模板尾部追加第二个查询入口;必要 URL 只放在具体操作步骤中。完成态只能表述为代码开发和产品开通流程已完成,不得替用户确认生产配置已替换、产品真实可收款或应用页面状态;上线条件固定引导用户前往支付宝 AI 付站点,进入一站式接入 → 选择产品 → 密钥配置查看产品开通和应用上线情况;正式参数以生产 `appId`、应用公钥、应用私钥、支付宝公钥和生产网关为核心;AI 网页应用收款和 AI 移动应用收款必须完成公网 HTTPS `notify_url` 的验签、关键字段校验、幂等、`success` 回写和补偿查询;AI 按量付费必须把沙箱 `api_mock_service_id` 替换为服务市场真实 `serviceId`,A2M 示例中的 `sellerId` 来自商户 PID/2088,由商家自行在支付宝平台确认,不由 Agent 猜测、生成或代填。生产环境应用私钥、账号密码、支付凭证和未脱敏通知内容仍禁止提供给 Agent。分支未完成时,该派生块必须明确上表待办完成前不能正式收款。该提示只在消息目录维护,不增加用户确认点,Agent 不得在模板外重复输出或改写。
553
+ renderer 还会按 `productName` 和分支完成条件自动派生上线前检查块。Agent 不传入、不改写该字段,也不得在模板外补第二份生产上线清单。该检查使用“【当前状态】/【上线前有以下关键点】/【提示】”结构,不单列“相关站点”,也不在模板尾部追加第二个查询入口;必要 URL 只放在具体操作步骤中。完成态只能表述为代码开发和产品开通流程已完成,不得替用户确认生产配置已替换、产品真实可收款或应用页面状态;通用上线提醒固定分为三点:前往支付宝 AI 付站点查看产品开通情况;进入一站式接入 → 选择产品 → 密钥配置确认目标支付宝应用已上线;将项目中的支付宝应用配置替换为生产配置,确保 appId、应用私钥、支付宝公钥同属一套生产环境支付宝应用并使用生产网关。三个产品的专属提醒从第 4 点开始;AI 网页应用收款和 AI 移动应用收款必须完成公网 HTTPS `notify_url` 的验签、关键字段校验、幂等、`success` 回写和补偿查询;AI 按量付费必须把沙箱 `api_mock_service_id` 替换为服务市场真实 `serviceId`,A2M 示例中的 `sellerId` 来自商户 PID/2088,由商家自行在支付宝平台确认,不由 Agent 猜测、生成或代填。生产环境应用私钥、账号密码、支付凭证和未脱敏通知内容仍禁止提供给 Agent。分支未完成时,该派生块必须明确上表待办完成前不能正式收款。该提示只在消息目录维护,不增加用户确认点,Agent 不得在模板外重复输出或改写。
530
554
 
531
- 签约、服务和应用分别按本轮脚本实际结果表达:签约提交成功但未生效时,`signingResult` 固定使用“已提交,等待生效”;服务创建或修改成功且取得 `serviceId`、但未取得服务状态时,`serviceResult` 分别固定使用“创建成功,状态未取得”或“修改成功,状态未取得”。任一分支失败或结果未知不清除其他分支成功,也不能概括为“全部失败”。`APPLICATION_RESULT` 只按下表从本轮实际 marker 选择,字面值必须与消息目录逐字一致:
532
-
533
- <!-- APPLICATION_RESULT_MAP:START -->
534
- | `APPLICATION_RESULT` | 本轮事实判据 |
535
- |---|---|
536
- | `待选择` | discovery 已取得应用候选,但用户尚未完成当前候选选择,或明确暂不新建 |
537
- | `已创建,待设置公钥` | `APPLICATION_CREATE_RESULT=SUCCESS` 后尚未生成有效公钥页,或复用应用返回 `FLOW:REUSE_NO_KEY` |
538
- | `公钥待确认` | 已取得 `KEY_PAGE_RESULT=READY_TO_OPEN`,但有限轮询或单次恢复返回 `FLOW:KEY_NOT_CONFIRMED` |
539
- | `HarmonyOS 应用待平台侧创建、配置或上线` | 进入 `application.harmony.manual_create` 分支,尚未重新查询到可复用的 `ON_LINE` 应用 |
540
- | `已提交审核,等待上线` | `APPLICATION_AUDIT_RESULT=SUBMITTED` / `FLOW:AUDIT_SUBMITTED`,但当前应用尚未满足完整上线条件 |
541
- | `已上线且配置完整` | 当前应用已确认 `ON_LINE`、RSA2 应用公钥已生效且支付宝公钥已实际导出 |
542
- | `需人工配置` | 权限恢复后最终仍取得 `ALIPAY_PUBLIC_KEY_EXPORT_STATUS=MANUAL_CONFIGURATION_REQUIRED` |
543
- | `失败` | 应用创建、公钥页生成或应用提审取得明确 `FAILED`,或组合入口 `CONTRACT_ERROR|PREWRITE_FAILED` 自动重试仍失败,且没有后续成功事实覆盖 |
544
- | `结果未知` | 应用查询失败,或创建、公钥页、提审取得 `UNKNOWN` 且只读核验仍不能确认 |
545
- <!-- APPLICATION_RESULT_MAP:END -->
555
+ 签约、服务和应用分别按本轮脚本实际结果表达:签约提交成功但未生效时,`signingResult` 固定使用“已提交,等待生效”;服务创建或修改成功且取得 `serviceId`、但未取得服务状态时,`serviceResult` 分别固定使用“创建成功,状态未取得”或“修改成功,状态未取得”。任一分支失败或结果未知不清除其他分支成功,也不能概括为“全部失败”。`APPLICATION_RESULT` 沿用应用阶段上述唯一状态映射和本轮实际 marker,字面值必须与消息目录逐字一致。
546
556
 
547
- `APP_FLOW:RETRY_WITH_LOCAL_CONFIG_PERMISSION` / `ALIPAY_PUBLIC_KEY_EXPORT_STATUS=RETRY_WITH_LOCAL_CONFIG_PERMISSION` 是恢复中间态,不得提前 closeout 为“需人工配置”;取得权限后只重试当前 app 命令一次,最终仍失败才按上表收口。
557
+ `APP_FLOW:RETRY_WITH_LOCAL_CONFIG_PERMISSION` / `ALIPAY_PUBLIC_KEY_EXPORT_STATUS=RETRY_WITH_LOCAL_CONFIG_PERMISSION` 是恢复中间态,不得提前 closeout 为“需人工配置”;取得权限后只重试当前 app 命令一次,最终仍失败才按应用阶段的状态映射收口。
548
558
 
549
559
  只输出实际取得且有判断依据的费率、`serviceId`、`appId`、应用状态和公钥导出状态;没有取得的字段进入确定的下一步,不使用占位值、空值或推断值。只有签约为“已生效”、按量付费服务已复用或保存成功并取得实际 `serviceId`(消息值为“已复用”“创建成功,状态未取得”“修改成功,状态未取得”或“已完成”;网站支付和 APP 支付固定为“无需处理”)、应用为“已上线且配置完整”、剩余待办为“无”且没有人工待验证项时,runner 才派生“支付产品-产品开通已完成”;否则派生“流程进展”。“状态未取得”只表示保存响应未提供服务状态,不得改写为保存失败;renderer 会交叉校验这些条件,禁止在模板外另写相反结论。
550
560
 
@@ -77,12 +77,12 @@ RSA2 状态只看应用公钥字段,支付宝公钥不能反证。`verify-key|
77
77
 
78
78
  `APPLICATION_CREATE_RESULT=SUCCESS|FAILED|UNKNOWN` 区分创建;未知只刷新列表事实,不归因候选差异。`KEY_PAGE_RESULT=FAILED|UNKNOWN` 在调用后都只用同一公钥执行一次 `reconcile-key`,不生成第二页;`CONFIRMED` 才提审。权限/授权恢复后只做阶段允许的最新只读动作。`APPLICATION_AUDIT_RESULT=SUBMITTED|FAILED|UNKNOWN` 区分提审,未知不重提;`FLOW:AUDIT_SUBMITTED` 仅来自成功或只读核验。config 探针失败输出 `APP_FLOW:RETRY_WITH_LOCAL_CONFIG_PERMISSION` 和 `ALIPAY_PUBLIC_KEY_EXPORT_STATUS=RETRY_WITH_LOCAL_CONFIG_PERMISSION`,取权重试一次且不重开页面;仍失败输出 `ALIPAY_PUBLIC_KEY_EXPORT_STATUS=MANUAL_CONFIGURATION_REQUIRED`,由 `customer-messages.json` 的应用人工配置目录文案引导。
79
79
 
80
- 应用分支对客结果只使用:
80
+ 三个产品在 `onboarding_only` 和 `full_process` 中,应用分支取得本轮可收口结果后均先独立交付应用结果,再进入总收口;紧邻总收口也不合并,同一结果已交付则不重复。总收口仅保留应用发布状态和待办,不重复应用详情。仍在等待材料、公钥或恢复时沿用原分支;未取得实际 appId 的失败/未知不得编造 appId,保留错误和待办收口。应用分支对客结果只使用:
81
81
 
82
82
  ```bash
83
83
  node "<SKILL_DIR>/references/normal/scripts/runtime.mjs" onboarding-message application-result --app-id "$APP_ID" --actual-status "$ACTUAL_STATUS" [--next-action "$NEXT_ACTION"] [--app-key-save-path "$APP_KEY_SAVE_PATH"] --agent-platform "<AGENT_PLATFORM>" --session-id "<SESSION_ID>"
84
84
  ```
85
85
 
86
- 单独执行该命令时,只要 stdout 非空,必须同时取得唯一 `ALIPAY_AIPAY_INTERNAL:CUSTOMER_MESSAGE_DELIVERY_REQUIRED=application.operation.result`,并在下一步先将 stdout 原文作为独立用户可见消息送达;送达前禁止执行 closeout 或把应用结果并入总收口。该交付屏障不增加用户确认点。`需人工配置` 分支同样必须交付,但禁止传公钥保存路径。
86
+ 执行该命令时,只要 stdout 非空,必须同时取得唯一 `ALIPAY_AIPAY_INTERNAL:CUSTOMER_MESSAGE_DELIVERY_REQUIRED=application.operation.result`,并在下一步先将 stdout 原文作为独立用户可见消息送达;送达前禁止执行 closeout 或把应用结果并入总收口。送达后同一工作回合继续,不等待用户确认,不以最终答复结束当前回合。`需人工配置` 分支同样必须交付,但禁止传公钥保存路径。
87
87
 
88
88
  输出实际 appId、状态和下一步;若本轮 `ALIPAY_PUBLIC_KEY_EXPORT_STATUS=EXPORTED`,必须把该路径原样作为 `APP_KEY_SAVE_PATH` 传入,runner 会对客展示“当前 appId: xxx 对应的支付宝公钥保存在:xxx”。只展示路径,禁止复述支付宝公钥内容。待审核、待设钥、需人工配置、失败或未知不得称发布完成。`APP_FLOW:RETRY_WITH_LOCAL_CONFIG_PERMISSION` 不渲染结果;`MANUAL_CONFIGURATION_REQUIRED` 固定传“需人工配置”且省略 `--next-action` 和 `--app-key-save-path`,由目录派生。写操作仅 `NOT_SENT` 自动重试;`MAYBE_SENT` 查询核验,无法确认进入 `UNKNOWN`,禁止同名猜测或重复创建/提审。