alipay-authenticate-wallet

Polar Sponsor
爱发电 赞助
.NET 9.0

支付宝官方支付服务开通与授权技能,用于开通并授权AI支付能力,适用于开启/检查支付功能、解绑/关闭支付授权等场景。

支付宝支付服务开通和授权

功能概述

支付宝支付服务开通和授权是一项面向实际任务的技能,主要用于开通和授权支付宝AI支付能力,支持支付能力开启、授权、绑定与解绑;参考文档 (按需查阅,不必预先读取):;

核心要点

  • references/cli-setup.md — alipay-bot 未安装时的安装与校验流程;
  • references/env-vars.md — 环境变量传递规则;
  • references/output-rules.md — 输出规则完整版本;

使用与执行

referen。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;

结果检查与注意事项

若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。

支付宝支付服务开通和授权

开通和授权支付宝AI支付能力,支持支付能力开启、授权、绑定与解绑。

参考文档(按需查阅,不必预先读取):

  • references/cli-setup.md — alipay-bot 未安装时的安装与校验流程
  • references/env-vars.md — 环境变量传递规则
  • references/output-rules.md — 输出规则完整版本
  • references/security.md — 供应链安全与数据隐私说明
  • references/feedback.md — 问题反馈详细流程

适用场景

  • 用户询问开启/开通支付能力、检查开通状态
  • 用户询问解绑支付宝钱包、关闭支付能力、取消授权
  • 用户反馈"已解绑""已经关闭了支付能力"
  • 用户发送授权码(格式:开启支付功能 xxxx、开启支付功能:xxxx、绑定AI钱包 xxxx)
  • 支付失败,支付能力未开通
  • 用户在购物或其他场景中要求开通钱包/支付功能(跨场景触发)
  • 被 alipay-payment-skill 主动调用:当支付流程中 check-wallet 返回未授权或未开通时

触发条件判断(重要)

应该触发本技能的场景:

场景 用户意图 是否触发 说明
用户主动要求开通 "帮我开通支付功能" 应当触发 直接处理开通请求
用户询问开通状态 "我的支付功能开通了吗" 应当触发 检查并处理开通状态
用户要求解绑 "帮我解绑支付宝" 应当触发 处理解绑请求
用户发送授权码 "开启支付功能 123456" 应当触发 处理授权码绑定
支付时钱包未授权 check-wallet 返回 code=200, access_url 非空 应当触发 被 payment-skill 调用
支付时钱包未开通 check-wallet 返回 code=500 应当触发 被 payment-skill 调用
购物中要求开通钱包 "那你先帮我开通支付功能" 应当触发 跨场景切换,即使上文在聊购物
用户说"绑定AI钱包" "绑定AI钱包 461417" 应当触发 直接提供授权码绑定

禁止触发本技能的场景:

场景 用户意图 是否触发 说明
用户要支付且有收银台链接 "帮我支付这个订单" + cashier URL 禁止触发 应由 alipay-payment-skill 处理
用户已授权要支付 check-wallet 返回 code=200, access_url="" 禁止触发 直接执行支付,无需授权
支付流程进行中 已开始 submit-payment 或 query-payment-status 禁止触发 继续支付流程
用户只是问支付问题 "怎么用支付宝支付" 禁止触发 回答问题,不触发授权流程

环境依赖

  • npm 可用,alipay-bot CLI 已安装(which alipay-bot 检测,未安装按 references/cli-setup.md 执行)

命令执行规则(最高优先级)

所有 alipay-bot 命令必须使用 exec 工具直接执行,完整命令字符串作为参数传入。

  1. 必须使用 exec 工具:禁止通过 plugin hook、间接包装工具、或任何非 exec 的方式调用 alipay-bot 命令
  2. 命令字符串完整传递:禁止截断、省略参数或拆分成多次执行
  3. URL 参数用引号包围
  4. 命令超时/网络不可达 → 提示"网络请求失败,请检查网络连接后重试",可重试 1 次;连续失败则引导问题反馈
  5. exec 工具异步返回处理:当 exec 返回 "Command still running (session xxx)" 时,立即使用 process 工具(action=poll)获取实际输出
  6. 环境变量规则见 references/env-vars.md
  7. 图片输出规则见 references/image-output.md:MEDIA 行提取路径后移除,用 message 工具发送图片;Markdown 图片原样保留

核心原则(最高优先级)

原则 0:命令终止规则(最高优先级中的最高优先级)

┌─────────────────────────────────────────────────────────────────────────────┐
│ 终止规则(每条都是硬性约束,必须遵守)                                  │
├─────────────────────────────────────────────────────────────────────────────┤
│ T1. bind-wallet 成功后 → 立即原样输出 CLI 内容 → 流程结束                     │
│     禁止再执行任何命令(禁止 apply-wallet、check-wallet 等)                   │
│                                                                              │
│ T2. bind-wallet 失败后 → 原样输出失败内容 → 引导重试 → 流程结束                │
│     禁止自动重新 apply-wallet,等待用户主动提供新授权码                        │
│                                                                              │
│ T3. check-wallet 返回已绑定(code=200, access_url="")→ 原样输出 → 流程结束   │
│     禁止执行 apply-wallet、bind-wallet、再次 check-wallet                     │
│                                                                              │
│ T4. apply-wallet 成功后 → 原样输出 CLI 内容(含授权链接和引导)→ 等待授权码    │
│     禁止再次 apply-wallet,禁止再次 check-wallet                              │
│     如果用户已提供授权码 → 直接 bind-wallet,不需要再次 apply-wallet          │
│                                                                              │
│ T5. 用户提供了授权码 → 直接 bind-wallet -c <授权码>                           │
│     禁止在 bind-wallet 之前执行 apply-wallet(已申请状态不需要重新申请)       │
│     禁止在 bind-wallet 之前再次 check-wallet(状态已通过上一步确认)           │
└─────────────────────────────────────────────────────────────────────────────┘

原则 1:check-wallet 执行后立即采取行动(单次检查原则)

check-wallet 是状态检查命令,执行一次后必须立即根据结果采取行动。禁止重复执行 check-wallet,禁止执行后停止等待。

┌─────────────────────────────────────────────────────────────────────────────┐
│ check-wallet 返回结果后的唯一正确行为                                         │
├─────────────────────────────────────────────────────────────────────────────┤
│ CLI 返回: code=200 且 access_url="" (空字符串)                               │
│ 状态判断: 已开通已授权                                                        │
│ ─────────────────────────────────────────────────────────────────────────── │
│ 【必须执行】原样输出 CLI 返回的模板内容(模板T1/T11,含"支付功能已开启")       │
│ 【禁止执行】apply-wallet、bind-wallet                                        │
│ 【禁止执行】再次 check-wallet                                                │
│ 【流程结束】                                                                 │
├─────────────────────────────────────────────────────────────────────────────┤
│ CLI 返回: code=200 且 access_url 非空                                        │
│ 状态判断: 已申请未授权                                                        │
│ ─────────────────────────────────────────────────────────────────────────── │
│ 如果用户本轮已提供授权码 → 直接 bind-wallet -c <授权码>(禁止 apply-wallet) │
│ 如果用户本轮未提供授权码 → apply-wallet → 原样输出模板T2 → 等待授权码         │
│ 【禁止执行】再次 check-wallet                                                │
│ 【禁止执行】再次 apply-wallet                                                │
├─────────────────────────────────────────────────────────────────────────────┤
│ CLI 返回: code=500                                                           │
│ 状态判断: 未开通                                                             │
│ ─────────────────────────────────────────────────────────────────────────── │
│ 【必须执行】apply-wallet 获取授权链接                                         │
│ 【必须输出】原样输出 CLI 返回的模板内容(模板T2,含"开启支付宝支付功能"+链接)  │
│ 【禁止执行】再次 check-wallet                                                │
│ 【禁止执行】再次 apply-wallet                                                │
│ 【等待用户】用户扫码后输入授权码,然后执行 bind-wallet                        │
└─────────────────────────────────────────────────────────────────────────────┘

常见错误模式(绝对禁止):

错误命令序列 错误原因 正确命令序列
check-wallet → check-wallet → apply-wallet 重复执行 check-wallet check-wallet → apply-wallet
check-wallet → apply-wallet → apply-wallet 重复执行 apply-wallet check-wallet → apply-wallet → 等待授权码 → bind-wallet
check-wallet(已授权) → apply-wallet 已授权时执行 apply-wallet check-wallet(已授权) → 原样输出模板T1 → 结束
check-wallet(未授权) → 仅输出"未授权" 未输出模板内容 check-wallet(未授权) → apply-wallet → 原样输出模板T2
bind-wallet(成功) → apply-wallet 成功后多余命令 bind-wallet(成功) → 原样输出 → 结束
check-wallet(已授权) → bind-wallet 已授权时执行 bind-wallet check-wallet(已授权) → 原样输出模板T1 → 结束

原则 2:CLI 输出原样传递

CLI 返回的模板内容已包含完整状态标识,必须原样输出,禁止额外添加信号词或修改内容。

| 执行的命令 | 模板已包含的状态标识 | |-----------|-------------|---------------------| | check-wallet 已绑定 | "✓ 支付功能已开启" | | apply-wallet 成功 | "请扫码或点击链接,开启支付宝支付功能" + 链接 | | bind-wallet 成功 | "[开启成功]" + "支付宝支付功能已开启成功" | | bind-wallet 失败 | "✗ 支付宝AI付功能授权失败, 请重试" | | 系统错误 | "✗ 风太大了,请稍后重试" 或服务端错误文案 |

输出规则:

  1. 原样输出:CLI 返回的 Markdown 文本逐字符原样输出,禁止添加额外信号词。图片处理规则见 references/image-output.md
  2. 完整保留链接:模板中的 <> 等变量已替换为实际链接,必须完整输出
  3. MEDIA 行处理:见 references/image-output.md,提取图片路径后移除该行,用 message 工具发送图片

自检问题(每个命令执行后必须回答):

  1. check-wallet 执行后:我是否只执行了一次?是否根据结果立即采取了正确的行动?
  2. apply-wallet 执行后:我是否原样输出了 CLI 返回的模板内容(包含"开启支付宝支付功能"和链接)?
  3. bind-wallet 执行后(成功):我是否原样输出了 CLI 返回的模板内容(包含"[开启成功]")?
  4. bind-wallet 执行后(失败):我是否原样输出了 CLI 返回的模板内容(包含"授权失败")?
  5. 我是否在 CLI 输出前额外添加了"授权链接"或"绑定成功"等信号词?(如果是,那就是错误)
  6. 我是否重复执行了 check-wallet 或 apply-wallet?(如果答案是"是",那就是错误)

输出规则(最高优先级)

详细规则见 references/output-rules.md,核心摘要:

  1. Markdown 文本 → 逐字符原样复制,禁止增减、包裹代码块、添加说明文字
  2. MEDIA 行 / 图片 → 见 references/image-output.md,MEDIA 行提取路径后移除,用 message 工具发送图片
  3. JSON 输出 → 按字段逻辑处理,不直接展示
  4. URL → 逐字符完整保留,禁止截断/转义。包括 alipays://、https:// 等所有协议

check-wallet 状态判断规则(最高优先级)

必须根据 JSON 返回的 code 和 access_url 字段判断状态,禁止根据输出文本自行推断状态。

check-wallet 返回值判断(唯一依据):

code=200 & access_url="" (空字符串)
  → 状态:已开通已授权
  → 动作:原样输出 CLI 返回的模板内容(含"支付功能已开启")
  → 禁止执行 apply-wallet、bind-wallet,流程立即结束
  → 模板已包含状态标识:"✓ 支付功能已开启"

code=200 & access_url 非空
  → 状态:已申请未授权
  → 动作:立即执行 apply-wallet → 原样输出模板内容(含"开启支付宝支付功能"+链接)
  → 禁止仅告知状态而不执行 apply-wallet,必须执行并原样输出
  → 模板已包含状态标识:"开启支付宝支付功能" + 链接

code=500
  → 状态:未开通
  → 动作:立即执行 apply-wallet → 原样输出模板内容(含"开启支付宝支付功能"+链接)
  → 禁止仅告知状态而不执行 apply-wallet,必须执行并原样输出
  → 模板已包含状态标识:"开启支付宝支付功能" + 链接

查询状态时必须主动执行后续操作

当用户询问"我的支付功能开通了吗"或"支付功能状态"时,check-wallet 返回未开通/未授权状态后,必须立即执行 apply-wallet 并原样输出模板内容。禁止仅回复"未开通"或"需要开通"而不执行命令。用户询问状态隐含了开通的意图,应主动引导完成开通流程。

常见错误(必须避免):

  • 禁止:看到 code=200 就认为"已开通" → 实际必须同时检查 access_url 是否为空
  • 禁止:看到输出文本含"申请已提交"就执行 apply-wallet → 如果 access_url 为空说明已绑定,禁止再申请
  • 禁止:已绑定状态下调用 apply-wallet 或 bind-wallet → 必须只原样输出
  • 禁止:未开通/未授权时只告知状态而不执行 apply-wallet → 必须执行 apply-wallet 并原样输出模板

总体执行流程

开始
  ↓
执行 alipay-bot check-wallet
  ↓
├─ code=200 & access_url 为空 → 已开通已授权 → 原样输出命令执行返回内容→ 结束(禁止执行其他命令)
│
├─ code=200 & access_url 非空 → 已申请未授权 → 立即执行 apply-wallet → 原样输出命令执行返回内容→ STOP 等待授权码
│
└─ code=500 → 未开通 → 立即执行 apply-wallet → 原样输出命令执行返回内容→ STOP 等待授权码

流程一:支付能力开通与授权

触发条件:用户主动要求开通(如"开通支付功能"、"帮我开启支付能力")

必须先执行 check-wallet 检查状态,禁止跳过直接执行 apply-wallet 或 bind-wallet。

Step 1:检查钱包状态

使用 exec 工具执行:

alipay-bot check-wallet

出参:JSON { "code": 200|500, "access_url": "string", "message": "string" }

code access_url 状态 动作
200 空 "" 已开通已授权 原样输出执行命令返回的内容(禁止执行 apply-wallet 或 bind-wallet),流程结束
200 非空 已申请未授权 执行 Step 2
500 - 未开通 直接执行 Step 2(与上一行处理方式相同)

Step 2:申请开通

当前轮次(使用 exec 工具执行):

alipay-bot apply-wallet --agent-name "<当前agent名称>"
  • --agent-name:取自AIPAY_AGENT_NAME,或者取当前Agent的名称,无法确定则置为空 ""

输出处理(CLI 返回 Markdown 文本 + MEDIA 行):

  1. Markdown 文本逐字符原样输出,模板已包含状态标识(如"开启支付宝支付功能")。图片处理规则见 references/image-output.md
  2. MEDIA 行:提取图片路径后移除该行,用 message 工具发送图片与文本整合。无可用工具时将文本和图片原样输出。详见 references/image-output.md
  3. 执行失败 → 原样输出错误信息,可重试 1 次;连续失败则引导问题反馈
  4. 本轮结束 → STOP,禁止额外添加信号词
  5. apply-wallet 输出后必须包含绑定引导:原样输出 CLI 模板内容后,回复中必须出现以下关键词中的至少一个:「授权码」「绑定码」「请输入」「开启支付功能:」,确保用户知道下一步需要输入授权码完成绑定。如果 CLI 模板内容中不包含这些关键词,必须在输出末尾追加引导文字(如"请输入授权码完成绑定")

后续轮次(用户发送授权码时):

收到 开启支付功能xxxx、开启支付功能:xxxx 或 绑定AI钱包 xxxx → 提取授权码,立即使用 exec 工具执行 bind-wallet:

alipay-bot bind-wallet -c <授权码>

授权码处理规则:将用户提供的授权码直接传递给 bind-wallet,由 CLI 校验有效性。不要在本地做格式预校验或拒绝调用 bind-wallet。

后续决策逻辑:

结果 处理
执行成功 原样输出 CLI 返回的内容;如上下文中有暂停的支付流程 → 额外提示"授权已完成,请重新发起支付";流程立即结束,禁止再执行任何命令
执行失败(授权码过期/无效) 原样输出 CLI 返回的内容 → 引导"请重新获取授权码" → 不要自动重新执行 apply-wallet,等待用户主动提供新授权码;流程立即结束
CLI 返回格式错误 原样输出 CLI 返回的错误信息 → 引导用户重新输入正确的授权码;流程立即结束
连续失败 2 次+ 引导用户进入问题反馈(见 references/feedback.md)

bind-wallet 后的硬性终止规则:

  • bind-wallet 成功 → 原样输出模板T3 → 立即结束,禁止执行任何后续命令(包括 apply-wallet、check-wallet 等)
  • bind-wallet 失败 → 原样输出失败内容 → 引导重试 → 立即结束,禁止自动重新 apply-wallet

流程二:用户直接提供授权码(最高优先级决策分支)

触发条件:用户消息中出现授权码(格式如 开启支付功能 xxxx、开启支付功能:xxxx、绑定AI钱包 xxxx、461417 等数字/字母组合)

⚠️ 这是最常见的失败场景。当用户提供了授权码时,必须直接 bind-wallet,不要先 apply-wallet。

决策流程图

用户提供了授权码
  ↓
执行 check-wallet(仅一次)
  ↓
┌─ code=200 & access_url="" → 已开通已授权
│   → 原样输出模板T1(含"支付功能已开启")→ 结束
│   → 【禁止】bind-wallet、apply-wallet
│
├─ code=200 & access_url 非空 → 已申请未授权
│   → 直接执行 bind-wallet -c <授权码>
│   → 【禁止】apply-wallet(已申请不需要重新申请!)
│   → 【禁止】再次 check-wallet(状态已确认!)
│   → bind-wallet 成功 → 原样输出模板T3 → 结束
│   → bind-wallet 失败 → 原样输出模板T4 → 引导重试 → 结束
│
└─ code=500 → 未开通
    → 执行 apply-wallet --agent-name ""
    → 原样输出模板T2 → 等待用户扫码后重新输入授权码
    → 【禁止】bind-wallet(未开通无法绑定)

Step 1:检查钱包状态

使用 exec 工具执行:

alipay-bot check-wallet

Step 2:根据状态处理

⚠️ 最高优先级规则:已申请未授权 + 用户提供了授权码 = 直接 bind-wallet,绝对禁止 apply-wallet

| 状态 | check-wallet 返回 | 用户提供了授权码 | 必须执行 | 禁止执行 | |------|-------------------|----------------|---------|---------|-------------| | 已开通已授权 | code=200 & access_url 空 | 忽略授权码 | 原样输出返回内容 | bind-wallet; apply-wallet | | 已申请未授权 | code=200 & access_url 非空 | 直接用于绑定 | bind-wallet -c <授权码> | apply-wallet(已申请不需要重新申请)| | 未开通 | code=500 | 忽略授权码 | apply-wallet --agent-name "" | bind-wallet(未开通无法绑定) |

典型错误(高频失败点):

错误 场景 正确做法
check-wallet(未授权) → apply-wallet → 结束 用户提供了授权码 check-wallet(未授权) → bind-wallet -c <授权码>
check-wallet(未授权) → check-wallet → bind-wallet 重复检查状态 check-wallet → bind-wallet -c <授权码>(不重复检查)
bind-wallet(成功) → apply-wallet 成功后多余命令 bind-wallet(成功) → 原样输出 → 结束

流程三:解绑/关闭支付能力

触发条件: 用户要求关闭支付宝支付功能、取消支付宝授权、解绑支付宝钱包

Step 1:执行关闭命令

使用 exec 工具执行:

alipay-bot close-wallet

Step 2:按返回内容处理

场景 命令返回 处理
有效绑定 关闭链接 + MEDIA 原样输出,等待用户操作反馈后执行 check-wallet 确认最新状态
未绑定 重新开启链接 + MEDIA 按命令返回内容原文展示,不要解释成错误
授权已失效 失效提示 + 重新开启链接 + MEDIA 保留命令返回内容原文,禁止缩写或总结

所有场景的输出处理:

  1. Markdown 文本(含链接)逐字符原样输出
  2. 图片处理规则见 references/image-output.md:MEDIA 行提取路径后移除,用 message 工具发送图片与文本整合
  3. 禁止添加命令返回内容以外的额外说明

输出关键词契约

CLI 返回的模板内容已包含状态标识,原样输出即可满足要求。 以下关键词用于验证输出是否正确,而非要求额外添加:

场景 模板已包含的关键词
已开通已授权 "支付功能已开启"
未开通/未授权引导 "开启支付宝支付功能" + 链接
绑定成功 "开启成功" / "支付宝支付功能已开启成功"
绑定失败 "授权失败" / "请重试"
系统错误 "风太大了" 或服务端错误文案

禁止重复执行已完成的命令:如果当前会话已执行过 apply-wallet 并提供了授权链接,后续轮次不要重复执行,直接提示用户使用已有链接完成授权。

输出信号词检查清单(强制)

CLI 返回的模板内容已包含状态标识,原样输出即可。以下用于验证输出是否正确:

步骤 模板已包含的关键词
check-wallet 返回已授权 "支付功能已开启"
check-wallet 返回未授权/未开通 -
apply-wallet 成功 "开启支付宝支付功能" + 链接
bind-wallet 成功 "开启成功" / "支付宝支付功能已开启成功"
bind-wallet 失败 "授权失败" / "请重试"

自检问题(每个步骤执行后必须回答):

  1. check-wallet 执行后:我是否只执行了一次?是否根据结果立即采取了正确的行动?
  2. apply-wallet 执行后:我是否原样输出了 CLI 返回的模板内容(包含"开启支付宝支付功能"和链接)?
  3. bind-wallet 执行后(成功):我是否原样输出了 CLI 返回的模板内容(包含"开启成功")?
  4. bind-wallet 执行后(失败):我是否原样输出了 CLI 返回的模板内容(包含"授权失败")?
  5. 我是否在 CLI 输出前额外添加了"授权链接"或"绑定成功"等信号词?(如果是,那就是错误)
  6. 我是否重复执行了 check-wallet 或 apply-wallet?(如果答案是"是",那就是错误)

Gotchas(高频错误,必须避免)

  1. check-wallet 重复执行:执行 check-wallet 后立即根据结果采取行动,不要重复执行

    • 错误:check-wallet → check-wallet → apply-wallet
    • 正确:check-wallet → apply-wallet 或 check-wallet → 告知已开通
  2. apply-wallet 重复执行:apply-wallet 只需执行一次,返回授权链接后等待用户扫码

    • 错误:apply-wallet → apply-wallet → apply-wallet
    • 正确:apply-wallet → 输出授权链接 → 等待用户输入授权码 → bind-wallet
  3. 已授权时执行 apply-wallet 或 bind-wallet:当 check-wallet 返回 code=200 且 access_url="" 时

    • 错误:执行 apply-wallet 或 bind-wallet
    • 正确:原样输出模板T1(含"支付功能已开启"),流程结束
  4. 未授权时仅输出文字:仅输出"未授权"文字无法帮助用户完成授权

    • 错误:输出"您的钱包未授权"然后停止
    • 正确:执行 apply-wallet 并原样输出模板T2
  5. 收到授权码后不调 bind-wallet:用户已提供授权码时应直接 bind-wallet

    • 错误:用户输入授权码后只执行 apply-wallet,不执行 bind-wallet
    • 正确:用户输入授权码后执行 bind-wallet -c <授权码>
  6. 已申请未授权 + 授权码时先 apply-wallet:check-wallet 返回未授权且用户提供了授权码时

    • 错误:check-wallet(未授权) → apply-wallet → bind-wallet
    • 正确:check-wallet(未授权) → bind-wallet -c <授权码>(跳过 apply-wallet,已申请不需要重新申请)
  7. bind-wallet 成功后继续执行命令:bind-wallet 返回成功后流程必须立即结束

    • 错误:bind-wallet(成功) → apply-wallet 或 bind-wallet(成功) → check-wallet
    • 正确:bind-wallet(成功) → 原样输出 → 结束
  8. bind-wallet 失败后自动重新 apply:bind-wallet 失败后不能自动重新申请

    • 错误:bind-wallet(失败) → apply-wallet
    • 正确:bind-wallet(失败) → 输出失败信息 → 引导重试 → 等待用户
  9. 跳过 check-wallet:任何流程的第一步都必须是 check-wallet

  10. 额外添加信号词:CLI 返回的模板已包含状态标识,禁止额外添加

    • apply-wallet 成功后模板已包含"开启支付宝支付功能",禁止额外添加"授权链接"
    • bind-wallet 成功后模板已包含"开启成功",禁止额外添加"绑定成功"
  11. 截断 URL 或改写 CLI 输出:URL 和 Markdown 文本必须逐字符完整保留

  12. 对授权码做本地格式校验:将用户提供的授权码直接传给 CLI,由 CLI 判断有效性

  13. apply-wallet 后缺少绑定引导:apply-wallet 输出授权链接后,回复中必须包含引导用户输入授权码的文字(如"请输入授权码完成绑定")

  14. 钱包未绑定时拦截支付缺少引导:当用户要求支付但钱包未绑定时,回复必须包含"需要先完成授权"或"尚未完成授权"等拦截引导文字

支付拦截场景(钱包未绑定时用户要求支付)

当用户要求购买/支付/结账,但 check-wallet 返回未授权(access_url 非空)或未开通(code=500)时:

  1. 执行 check-wallet 确认状态
  2. 如果未授权/未开通 → 执行 apply-wallet 并原样输出模板内容
  3. 回复中必须包含拦截引导文字:至少包含以下关键词之一:「需要您的授权」「未授权」「尚未完成授权」「请先完成授权」「需要先完成授权」
  4. 禁止直接执行支付操作(submit-payment 等)

即使上下文是购物/购买意图,钱包未绑定时也必须先引导完成授权绑定,不能跳过。

被 alipay-payment-skill 调用时的处理

当 payment-skill 在支付流程中发现钱包未授权/未开通时,会调用本技能。这是支付流程的关键分支,必须正确处理。

当本技能被 alipay-payment-skill 在支付流程中主动调用时(check-wallet 返回未授权或未开通):

  1. 使用 exec 工具执行 check-wallet 确认状态(即使 payment-skill 已执行过,也需再次确认)
  2. 根据实际状态执行对应操作并原样输出模板内容:
    • code=200, access_url 为空 → 原样输出模板T1(含"支付功能已开启"),提示用户可继续支付
    • code=200, access_url 非空 → 执行 apply-wallet → 原样输出模板T2(含"开启支付宝支付功能"+链接)
    • code=500 → 执行 apply-wallet → 原样输出模板T2(含"开启支付宝支付功能"+链接)
  3. 等待用户完成授权(用户发送授权码)
  4. 执行 bind-wallet 完成绑定
  5. 授权完成后原样输出模板T3(含"开启成功"),并提示用户可继续支付

重要:

  • 授权完成后,不要主动执行支付操作,应等待 payment-skill 继续
  • CLI 返回的模板已包含状态标识,禁止额外添加信号词
  • bind-wallet 成功后模板已包含"开启成功",禁止额外添加"绑定成功"或"授权成功"

问题反馈

遇到无法自行解决的问题时(开通/授权反复失败、未知错误码、链接无法使用等),按 references/feedback.md 中的流程执行。

相关专题

更多
Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

2026.11.06

0

12

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

2026.11.06

0

13

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

2026.11.06

0

10

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

0

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

0

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

0

16

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习