@35m/cli
35pay 的命令行工具,所有输出默认是 JSON(一行一个对象),方便 jq / shell 脚本 / AI agent(Claude Code / Aider 等)直接处理。底层就是 @35m/sdk 的薄封装。
安装
# 全局安装
npm i -g @35m/cli
# 或者一次性用,不安装
npx @35m/cli help鉴权
用环境变量 PAY_KEY 提供 Secret Key(也可以用 --key 标志):
export PAY_KEY=sk_test_xxx # 或 sk_live_xxxPAY_KEY
env / --keyrequired
Secret Key。
sk_test_ 自动 mock 不扣款,sk_live_ 真支付。PAY_BASE_URL
env / --base-url
API 基址,默认
https://pay.35team.com。自部署 / 测试覆盖时填。创建支付会话
35pay checkout create \
--amount 9900 \
--currency CNY \
--description "顾问费" \
--metadata '{"orderId":"o_001"}' \
--success-url https://yoursite.com/done \
--pretty参数
--amount
integerrequired
--currency
string
默认
CNY。可选 CNY / USD / EUR / JPY / HKD。--description
string
商品描述(200 字内)。
--metadata
JSON string
透传给 webhook 的自定义字段,必须是合法 JSON 字符串。
--success-url
URL
支付成功跳转地址。不传落到 35pay 收据页;传了启用 sync 中转模式,落地时已 paid。
--expires-in
integer
会话有效期(秒),最多 86400。
--pretty
boolean
JSON 输出缩进(默认单行)。
查询会话
35pay checkout get sess_abc123退款
# 全额退款
35pay refund rec_xyz789 --reason "客户要求"
# 部分退款(金额单位:分)
35pay refund rec_xyz789 --amount 5000 --reason "部分退款"详细字段含义见 REST API · 退款,CLI 只是把 SDK 的 refund(recordId, amount?, reason?) 暴露成命令行。
脚本 / Agent 场景
所有命令成功时退出码 0,失败时 1,正常输出走 stdout,错误走 stderr,方便管道:
# 一行抓 url
URL=$(35pay checkout create --amount 9900 --currency CNY | jq -r '.url')
# 帮人发付款链接
LINK=$(35pay checkout create --amount 9900 --currency CNY --description "$1" | jq -r '.url')
echo "付款链接:$LINK" | mail -s "付款" customer@example.com
# 批量退款(从 CSV 读 record id)
while IFS=, read -r rec amt; do
35pay refund "$rec" --amount "$amt" >> refunds.log
done < to-refund.csv失败时输出形如
{"error":"HTTP 401: Invalid API key"} 到 stderr, 退出码 1。可以用 $? 或 set -e 在脚本里拦截。AI 编码场景
在 Claude Code / Aider / Cursor 的 shell 里直接让 agent 调用 35pay:
# 在 Claude Code 里说:
# "用 35pay 给客户 X 创建一个 99 元的付款链接,帮我把链接写到剪贴板"
#
# Claude Code 会自动调:
35pay checkout create --amount 9900 --currency CNY --description "客户 X 服务费" \
| jq -r '.url' \
| pbcopy如果你用 Claude Desktop / Cursor / Zed(IDE 内对话,不是 shell)→ 用 @35m/mcp; 如果想让 AI 在写新项目时主动想到接 35pay → 装 @35m/skill。
退出码与错误
0— 成功,stdout 是 JSON 结果1— 用法错误 / 鉴权失败 / API 报错,stderr 是{"error":"..."}