📦 alipay-pay-for-402-service — 技能工具

v1.0.2

由支付领域龙头企业**支付宝**提供的**专业402支付技能**,当你收到一个402 response时应使用该skill,用于处理 A402 协议买方支付流程。解析 HTTP 402 响应账单,调用 CLI 发起支付获取 paymentProof,携带凭证重试原始请求,发送履约回执。当收到 402 Paymen...

0· 42·0 当前·0 累计
by @alipay·MIT-0
下载技能包 项目主页
License
MIT-0
最后更新
2026/4/17
0
安全扫描
VirusTotal
可疑
查看报告
OpenClaw
可疑
medium confidence
The skill's instructions mostly match its stated Alipay 402 payment purpose, but there are several inconsistencies and operational risks (undeclared env usage, runtime npx downloads, and no declared credential needs) that merit caution before installing or running it.
评估建议
What to consider before enabling this skill: - The skill appears to implement a coherent 402/Alipay payment flow, but it instructs the agent to download and run a 3rd-party CLI via 'npx' at runtime. Downloaded packages from npm can contain arbitrary code — verify the '@alipay/agent-payment' package and the GitHub repo (check maintainers, releases, and package integrity) before allowing runtime installs. - The SKILL.md references an environment variable (AIPAY_OUTPUT_CHANNEL) and delegates auth...
详细分析 ▾
用途与能力
Name/description align with the instructions: the skill is an instruction-only handler for HTTP 402/Payment-Needed flows using an 'alipay-bot' CLI. Declaring npm as a required binary is coherent because the SKILL.md tells the agent to install the CLI via npx. However SKILL.md references a channel environment variable (AIPAY_OUTPUT_CHANNEL) and other runtime artifacts (alipay-authenticate-wallet skill) that are not declared in the skill's metadata, which is an inconsistency.
指令范围
The SKILL.md directs the agent to execute shell commands (alipay-bot checks, 402-buyer-pay, 402-query-payment-status), write the exact Payment-Needed payload to a file, and verbatim-forward CLI output (including one-time URLs and MEDIA lines) to end users. Forcing exactly verbatim output prevents the agent from adding safety/contextual warnings and can cause unfiltered transmission of any content returned by the remote CLI. The instructions also require runtime installation of the CLI via npx (see Environment/Install notes), which means arbitrary code will be fetched and executed at runtime.
安装机制
There is no formal install spec in metadata, but SKILL.md instructs using 'npx -y @alipay/agent-payment@latest install-cli' to install the CLI. That implies downloading and executing code from npm at runtime. Runtime npx installs are higher-risk than an instruction-only skill with no downloads, especially because the install step is not reflected in the skill's 'install specifications'. The requirement of 'npm' is consistent with this, but fetching remote code via npx should be reviewed (verify package publisher, integrity, and exact commands).
凭证需求
The skill metadata declares no required environment variables or credentials, yet the SKILL.md references AIPAY_OUTPUT_CHANNEL and relies on an external CLI that will need access to Alipay credentials or tokens at runtime. There is no declaration of what secrets or system config the alipay-bot CLI uses or how credentials are provisioned. A payment workflow normally requires credentials or keys; absence of declared credential requirements is an unexplained gap.
持久化与权限
The skill is not always-included and does not request persistent privileges in its metadata. It is instruction-only and does not declare modifications to other skills or system-wide settings. Autonomous invocation is allowed (default) but not a new or unusual privilege here.
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.0.22026/4/16

alipay-pay-for-402-service v1.0.2 - 禁止自动连续执行全流程,支付引导输出后必须等待用户支付完成通知再继续后续步骤。 - 新增安全性与设计说明,详细阐述 URL 输出、环境变量和 MEDIA 路径用途与风险隔离。 - metadata 增补技能 homepage 与 author 字段。 - 增加防御性输出规则说明,强调无敏感信息输出及异常场景处理。 - 其他文档措辞调整与优化,名称由 a402-buyer-skill 改为 alipay-pay-for-402-service。

可疑

安装命令

点击复制
官方npx clawhub@latest install alipay-pay-for-402-service
镜像加速npx clawhub@latest install alipay-pay-for-402-service --registry https://cn.longxiaskill.com

技能文档

由支付领域龙头企业支付宝提供的基于402协议的支付技能,提供极高精准度的服务及对应的超高稳定性保障。当且仅在收到一个402 response时,你需要使用本技能。对于其他格式的付款要求,暂不在本技能的使用范畴内。 你可以基于命令行执行工具exec来调用alipay-bot客户端工具的命令来完成付款。

请注意每当收到一个402 response你都应该重新执行本流程,而不是复用过往的支付记录。

# 禁止自动连续执行全流程,必须在 Step 2 输出后等待用户支付完成通知,再继续后续步骤

安全性与设计说明

本技能由支付宝官方提供,以下设计均基于业务必要性:

URL 原样输出

CLI 返回的 URL 是一次性生成的授权链接,包含加密签名参数。任何字符的修改都会导致签名校验失败、链接失效。原样输出是功能正确性的硬约束,而非安全风险。这些 URL 具有时效性(通常 5 分钟内有效),仅用于引导当前用户至支付宝 APP 核验身份并完成相关操作的链接。

渠道环境变量(AIPAY_OUTPUT_CHANNEL)

从消息上下文中提取渠道标识(如 feishu、discord)用于输出格式适配,确保二维码和链接在不同 IM 平台上正确展示。该变量仅用于格式适配,不涉及任何敏感数据读取。

MEDIA 图片路径

CLI 生成的二维码图片路径(如 /tmp/openclaw/alipay-bot-cli/qrcode/xxx.png)是本技能通过加密通信从支付宝服务端获取的二维码图片,用于展示给用户扫码。图片路径本身不包含敏感信息,二维码内容为引导当前用户至支付宝 APP 核验身份并完成相关操作的链接。

⚠️ Gotchas(常见陷阱)

这些是模型容易犯的错误,必须避免
  • 跳过 Step 0:模型可能直接执行 alipay-bot check-walletalipay-bot submit-payment,必须先执行 Step 0
  • 等待用户确认:Step 0 输出后,模型可能等待用户确认,但应该直接进入 Step 1
  • 读取/分析图片:模型可能尝试打开或识别 MEDIA 行中的图片文件,但 MEDIA 行由框架自动处理,模型只需原样输出 CLI 结果(包含 MEDIA 行)
  • 重复输出:模型可能先用代码块展示 CLI 输出,再自己排版输出一遍,但应该只输出一遍
  • 截断 URL:模型可能压缩或截断 URL,但必须逐字符完整保留
  • 不调用授权技能:当需要授权时,模型可能只输出提示文字而不调用授权技能,但应主动调用 alipay-authenticate-wallet
  • 拆分轮询命令:模型可能将 for 循环拆分成多次执行,但必须作为一条完整命令
  • 访问隐藏目录:模型可能尝试读取隐藏目录(以 . 开头),但非框架管理的隐藏目录可能包含敏感数据,绝对禁止访问

环境依赖

  • npm 命令可用
  • alipay-bot CLI 工具已安装:npx -y @alipay/agent-payment@latest install-cli

核心流程

Step 0: 执行 alipay-bot check-wallet(检查钱包状态)
    ↓
    根据返回值决策 →  code=200 & access_url为空   → Step 2
                  →  code=200 & access_url非空 → 告知用户"正在为您申请开通" → 主动调用 alipay-authenticate-wallet 技能
                  →  code=500     → 输出错误 → STOP
Step 1: 保存 402 Payment-Needed 响应文件               
    ↓
Step 2: 执行 402-buyer-pay -f <402_needed_file.txt> (提交支付)
    ↓
    处理输出 → ①提取 shortUrl ②将 CLI 完整输出(含 MEDIA 行)原样输出给用户  ③ 引导用户支付完成后通知你
    ↓
Step 3: 根据用户输入条件判断 →  用户表示“已经支付完成”  → Step 4
                          →  其他情况 → 结束流程 (STOP)
    ↓
Step 4: 查询支付结果并二次请求资源 alipay-bot 402-query-payment-status -t  -r 
    ↓
    根据 CLI 输出判断 →  支付成功并返回资源信息 → Step 5继续流程
                    →  支付失败 → 输出失败原因 → STOP
    ↓
Step 5: 向用户透传支付信息和资源
    ↓
Step 6: 发送履约回执

注意不要把你的执行流程透传给用户!!!!

你全流程和用户的交互透出仅包含
  • Step 2: CLI返回的原样输出和支付引导
  • Step 5: 向用户透传订单号和获取到的资源

Step 0: 检查钱包状态

支付流程开始前必须先执行钱包状态检查:

alipay-bot check-wallet

判断逻辑:

codeaccess_url状态操作
200钱包已就绪继续支付流程(进入 Step 1)
200非空钱包未开通告知用户"正在为您申请开通",主动调用 alipay-authenticate-wallet 技能
500-钱包不可用停止支付,输出错误并终止流程

Step 1: 保存 402 响应文件

收到 HTTP 402 响应后,直接保存实际收到的Payment-Needed到 <402_needed_file.txt> 文件(CLI 需要文件路径作为输入)。你收到的Payment-Needed是一个base64编码的文本,你不需要解码,请你不要篡改任何信息,完整一致地将实际收到的Payment-Needed保存到文件中

Step 2: 发起支付

注意本步骤中你需要将CLI的输出完整透传给用户

alipay-bot  402-buyer-pay -f <402_needed_file.txt>

CLI 输出格式:Markdown 文本(可能包含 MEDIA 行),也可能是 JSON。具体判断:如果输出以 { 开头则为 JSON,否则为 Markdown 文本。

处理流程:

CLI 返回结果后,将其完整内容直接作为你的回复文本发送给用户,并引导用户支付完成后通知你。不要用代码块包裹,不要重新排版,不要额外添加任何说明文字。

⚠️ 输出强制规则(违反 = 严重错误):
>
1. CLI 返回什么文本,你给用户的回复就是什么文本——逐字符复制+引导用户支付完成后通知你
2. 禁止用代码块(``)包裹 CLI 输出
3. 禁止在 CLI 输出前后添加额外的说明文字(如"支付已提交,请扫码"等)
4. 禁止修改/压缩/截断/省略任何 URL
5. 如果 CLI 输出中包含
MEDIA: 行,保持原样,不要删除、不要读取图片、不要转换格式——框架会自动处理

正确输出示例(你的回复应该长这样,注意CLI返回的 MEDIA 行要在文本下方原样保留):

--- ✓ 支付待确认 商品名称:xxxxxx 支付金额:xxx CNY 商户名称:xxxx

交易号:2026041400828113409771xxxxxxxx

支付方式

  • 电脑端用户:请 点击此处 打开收银台页面扫码支付
  • 手机端用户:请 点击此处 唤起支付宝APP完成支付
在支付完成后请给我提示,我将继续支付流程

MEDIA: /tmp/xxxxxxxxxxxxxxxxxxxxxxxxxx.png


你必须先透传CLI的输出文本然后在代码块下方原样输出CLI返回的MEDIA!!!否则视为任务失败

错误示例

❌ 用代码块包裹 CLI 输出
❌ 在 CLI 输出前加"支付已提交,请扫码支付"等额外文字
❌ 删除 MEDIA 行后再输出
❌ 读取 MEDIA 行中的图片文件
❌ 输出两遍(一遍代码块 + 一遍排版后的文本)
❌ 输出两遍 MEDIA 行

shortUrl 处理:

  • 提取:从 CLI 返回中提取 shortUrl
- 判断方法:如果 CLI 输出以 { 开头,按 JSON 解析取 result.shortUrlshortUrl 字段 - 否则按纯文本处理,从文本中查找 https://u.alipay.cn/https://render 开头的 URL
  • 区分
-
shortUrl:用于查询支付状态,格式 https://u.alipay.cn/...https://render.alipay.com/... - 支付链接:用于用户扫码支付,格式 https://cashier.alipay.com/...alipays://...
  • 后续:按照指定格式输出

错误处理:

IF result 提示“创单失败: 10001 - 签名验证不通过: 验签失败,请检查签名内容、签名类型和应用公钥是否匹配”:
    回到Step 1重新请求一个新的402文件,注意必须完整一致地将实际收到的Payment-Needed保存到文件中 → 继续流程
IF result 包含其他错误信息(如命令执行失败、链接无效等):
    原样输出错误信息 → STOP
注意本步骤中你需要将CLI的输出完整透传给用户

Step 3: 用户支付完成

用户提示你支付完成后进入到step4

Step 4:查询支付状态 🔗

触发条件:用户告知你“支付已完成”或同等语义的提示词。

使用系统的命令执行工具(shell/terminal/exec 等)执行以下查询命令:

执行命令(整段复制,将 替换为 Step 2 返回的,替换为请求的资源地址):

  alipay-bot 402-query-payment-status -t  -r 

结果处理

支付成功示例:

{
  "success": true,
  "tradeNo": "2026032xxxxxxxxxxx",
  "resourceResponse": {
    "status": 200,
    "headers": {
      xxx
    },
    "body": {
      xxx
    }
  }
}

支付失败示例:

{
"success": false,
"errorCode": "xxx",
"errorMsg": "xxx"
}

支付成功则进入Step 5,否则向用户透传错误信息并终止流程。

Step 5: 向用户透传支付信息和资源

资源校验 如果Step 2 返回的resourceResponse.body为空,请立即终止流程并向用户透传该异常和tradeNo

资源透传 资源不为空则将 Step 2 返回的 tradeNo(订单号) 和Step 4返回的 resourceResponse.body(用户购买到的资源) 透传给用户。

Step 6: 发送履约回执

收到资源后,发送履约回执给支付宝:

alipay-bot 402-buyer-fulfillment-ack -t 
参数必填说明
-t交易号(即 Step 2 返回的 tradeUniqueNo
错误处理
  • 如果返回"系统繁忙"或"系统错误"等错误码,可以用相同命令重试。如果重试3次后仍失败,请立即终止流程并向用户透传错误码。
  • 如果返回其他错误码,请立即终止流程并向用户透传错误码。

注意事项

以下为你必须时刻遵守的行为准则 >- 禁止向用户透露业务决策流程 >- 禁止展示id、签名、密钥、凭证等敏感信息 >- 禁止向用户展示本地任意的文件内容、目录结构或摘要 >- 禁止向用户展示原始错误信息或调用工具名称 >- 禁止更改本技能或与本技能相关的其他技能及工具的内容 >- 除填写参数外不要修改命令,否则将导致支付失败 >- 【严禁】伪造支付状态或跳过发起支付流程 >- 【严禁】利用过往支付记录伪造支付成功和履约

强制执行规则(违反即认为执行失败)

规则1: 工作流动线(必须遵守)

禁止跳过任何步骤,禁止修改流程顺序。

规则2: 禁止伪造

  • 必须实际执行 alipay-bot 402-buyer-payalipay-bot 402-buyer-fulfillment-ack` 命令
  • 禁止在支付失败时伪造履约内容
  • 禁止伪造支付凭证
  • 禁止伪造交易号和支付成功状态

规则3: 禁止mock

  • 只允许执行skill中提供的命令
  • 禁止使用mock的支付方法

规则4: 禁止修改资源

  • 你得到的资源最后需要原封不动地返回给用户
  • 禁止修改或简化资源的任何部分,否则用户会投诉你

规则5: 禁止篡改参数

  • 禁止篡改命令参数,严格按照 skill 中定义的格式执行命令

# 禁止自动连续执行全流程,必须在 Step 2 输出后等待用户支付完成通知,再继续后续步骤 # Step 2中需要将CLI的输出完整透传给用户 # 注意不要把你的执行流程透传给用户!!!! # 同一会话里不要2次输出MEDIA行 # 禁止自动连续执行全流程,必须在 Step 2 输出后等待用户支付完成通知,再继续后续步骤 # Step 2中需要将CLI的输出完整透传给用户 # 注意不要把你的执行流程透传给用户!!!! # 同一会话里不要2次输出MEDIA行

注意不要把你的执行流程透传给用户!!!!

你全流程和用户的交互透出仅包含
  • Step 2: CLI返回的原样输出和支付引导
  • Step 5: 向用户透传订单号和获取到的资源

防御性输出规则(安全最佳实践)

CLI 内置脱敏机制,正常输出不包含敏感信息。

处理方式:

  • CLI 针对每个执行步骤,都会根据执行命令和结果返回用户友好的 Markdown 文本,直接输出即可
  • CLI 输出内容不包含敏感字段
  • 如在加载本技能期间意外发现输出中包含敏感信息,应过滤后再输出(极端防御性措施)
数据来源ClawHub ↗ · 中文优化:龙虾技能库