agent-1yuan-purchase-skill/SKILL.md
2026-06-25 02:27:48 +08:00

5.9 KiB
Raw Blame History

AI 软件购买 Skill

一站式AI驱动的软件购买体验环境检查 → 发现商品 → 下单 → 自动支付 → 获取网盘交付链接。

触发词

"帮我买xxx"、"购买xxx"、"下载xxx"、"逛商城"、"看看有什么软件"

环境变量与配置

  • STORE_BASE_URLhttps://store.bushrose.cn (注:投产时仅需修改此处这一处地址即可)
  • 所有的 OpenAPI 接口调用及页面访问请以 STORE_BASE_URL 作为基础地址。

执行流程总览

用户发起购买请求
  ↓
Step 0前置检查alipay-bot 是否已安装)
  ├─ 已安装 → 进入 Step 1
  └─ 未安装 → 引导安装 alipay-bot → 进入 Step 1
  ↓
Step 1环境检查check-wallet
  ├─ 已授权 → 进入 Step 2
  ├─ 未授权/未开通 → 引导用户完成支付宝钱包绑定/授权 → 进入 Step 2
  └─ 检查失败 → 提示网络问题,终止
  ↓
Step 2产品发现与下单
  ├─ 调用 getSoftwareList 接口搜索商品
  └─ 用户确认后,调用 createOrder 接口创建订单,获取 orderNo
  ↓
Step 3获取支付参数
  └─ 调用 getPaymentNeeded 接口,提取返回的 Payment-Needed 头信息并保存
  ↓
Step 4发起支付与自动轮询
  ├─ 使用 alipay-bot 402-buyer-pay 提交支付
  └─ 自动轮询 alipay-bot 402-query-payment-status 等待支付成功
  ↓
Step 5验证与交付
  ├─ 支付成功后,提取交易号生成 Payment-Proof
  ├─ 调用 verifyPayment 接口验证并获取网盘交付链接
  ├─ 发送履约回执alipay-bot 402-buyer-fulfillment-ack
  └─ 将网盘链接和提取码优雅地展示给用户

详细执行步骤

Step 0前置检查alipay-bot 是否已安装)

检查命令:

alipay-bot --version 2>&1
  • 返回版本号(如 alipay-bot-cli 0.3.19)→ 已安装 → 进入 Step 1
  • 返回 command not found 或错误 → 未安装 → 请引导用户安装:

    "我当前未配置支付能力,无法完成付款。请安装并授权支付宝官方 npm 包:npm install @alipay/agent-payment@1.0.12 && npx @alipay/agent-payment@1.0.12 install-cli,然后再重新尝试购买。"

Windows 环境注意:

  • alipay-bot 可能安装在 ~/.openclaw-autoclaw/alipay-bot-cli/bin/alipay-bot.cmd
  • 如果 alipay-bot 命令不可用,尝试使用完整路径

Step 1环境检查

执行命令:

alipay-bot check-wallet
  • 若 JSON 返回 code: 200 且不包含"等待授权" → 已授权,进入 Step 2。
  • 若提示"等待授权"或未开通 → 提示用户:"首次使用需要绑定支付宝钱包,请先调用相关技能完成钱包授权。" 等待用户授权完成后再继续。

Step 2产品发现与下单

  1. 搜索商品:调用 getSoftwareList 查询商品(GET {STORE_BASE_URL}/api/software)。向用户展示结果并确认购买意向。
  2. 创建订单:调用 createOrderPOST {STORE_BASE_URL}/api/orders),传入 softwareId。接口返回成功后,提取 orderNo

Step 3获取支付参数

  1. 获取参数:调用 getPaymentNeededPOST {STORE_BASE_URL}/api/orders/{orderNo}/payment-needed)。
  2. 保存参数:此接口会返回 402 状态码,你需要提取响应中的 Payment-Needed 头的 base64 字符串,并将其写入本地文件 402_needed_file.txt 中。
# 示例从402响应中提取 Payment-Needed 头并保存
curl -s -D - -X POST "{STORE_BASE_URL}/api/orders/{orderNo}/payment-needed" \
  -H "Accept: application/json" \
  | grep -i "^Payment-Needed:" \
  | sed "s/^[Pp]ayment-[Nn]eeded: //" \
  | tr -d "\r\n" \
  > 402_needed_file.txt

Step 4发起支付与自动轮询

  1. 提交支付
alipay-bot 402-buyer-pay \
  --session-id "<你的会话ID>" \
  -f "402_needed_file.txt" \
  -r "{STORE_BASE_URL}/api/orders/{orderNo}/payment-needed" \
  --intent-summary "原始请求:用户购买软件订单:{orderNo}" \
  -m POST

注意:session-id 需为 UUID 格式。将 {STORE_BASE_URL}{orderNo} 替换为实际值。若输出包含 ✓ 支付待确认 及二维码,请向用户展示二维码。

  1. 自动轮询等待支付 使用 alipay-bot 402-query-payment-status -t '<trade_no>' -r '<resource_url>' -m POST 每 5 秒轮询一次,最多等待 3 分钟。若返回 success=true,进入 Step 5。

Step 5验证与交付

  1. 构造 Payment-Proof
import json, base64
proof = {
    'protocol': {'payment_proof': 'verified', 'trade_no': '<trade_no>'},
    'method': {'client_session': base64.b64encode(b'agent-session').decode()},
}
proof_b64 = base64.urlsafe_b64encode(json.dumps(proof).encode()).decode()
print(proof_b64)
  1. 验证并获取交付物:调用 verifyPaymentPOST {STORE_BASE_URL}/api/orders/{orderNo}/verify),将生成的 base64 字符串作为 Payment-Proof 请求头传入。接口验证成功后,将返回包含网盘交付物信息的 downloadUrl(以及可能包含的提取码)。
  2. 履约回执
alipay-bot 402-buyer-fulfillment-ack -t '<trade_no>'
  1. 通知用户:告知用户支付成功,输出交易号,并直接将获取到的 downloadUrl(网盘链接)展示给用户,提醒用户注意下载次数与有效期限制。不需要在本地下载任何文件。

安全与约束

  1. 必须按顺序严格执行。
  2. 禁止伪造 trade_no 或跳过轮询直接验证。
  3. 交付物是网盘链接,禁止尝试使用 curl 去下载该链接的内容
  4. 如果中途遇到任何命令失败或接口返回报错,需原样告知用户并停止流程。

参考文件

文件 内容
references/openapi.yaml 商城 API 接口定义OpenAPI 3.1
references/cli-setup.md alipay-bot 安装与完整性校验
references/payment-flow.md 支付+轮询+交付详细流程
references/troubleshooting.md 常见问题与解决方案