公众号排版|HTML成稿
一篇不超过12000字的Markdown,交付一个指定或推荐风格的HTML文件,保留正文内容。客户端把本次材料提交到收费服务,付款后由服务端交付结果。
把完整 Markdown 正文直接放在 question,不把任务指令混入正文。可选 style:minimal、medium、wired、verge、stripe、apple、ft、linear、github、notion、magazine、editorial、newspaper、course、event;不指定时使用 minimal。交付单个 HTML,不改写正文。
运行条件与费用
需要能运行终端的 Agent。有 Node.js 22.13 以上时使用下方脚本;只有 curl 的环境使用文末的 curl 路径,不为提交问题安装 Node.js 或 Python。
准备付款时才检查支付宝官方支付能力 alipay-payment-skill 和 alipay-bot;提交问题不需要支付依赖。缺少时,在支持 npm 的本地 Agent 环境安装:
npx -y @alipay/agent-payment@latest install
当前价格为 9.90 元/次,以提交返回的价格和付款账单为准。一次包含一个问题及其补充材料;新问题另行收费。提交不扣款、不生成答案;同一问题付款后的恢复和下载不再收费。不要把旧结果当作新问题的付费分析,也不要替用户同意付款。
所有 <skill> 指本文件所在目录,<work> 使用本次问题的独立工作目录。保留工作目录里的状态文件,才能恢复同一订单。
1. 收集并提交问题
把用户的问题与已提供材料写为 UTF-8 JSON 文件 <work>/input.json:
{
"question": "# 本周项目进展\n\n我们完成了第一版素材整理工具。\n\n## 已完成\n\n- 导入素材\n- 按标签查找\n\n下一步邀请用户试用。",
"style": "minimal"
}
Markdown 正文最多 12000 字。缺少会改变判断的背景时先补问,其余按现有材料提交,不编造事实。
node <skill>/scripts/call_skill.mjs submit --input '<work>/input.json' --state-dir '<work>/.state'
向用户说明输出中的实际价格。只有用户明确同意为本次分析付款,才进入付款步骤。
2. 发起本次付款
遵循已安装的支付宝官方 alipay-payment-skill。当前业务为 HTTP 402 支付:
node <skill>/scripts/call_skill.mjs pay --state-dir '<work>/.state' --session-id '<当前会话ID>'
会话标识优先取运行时 sessionId/session_id,其次当前 threadId/conversationId;Codex 使用 CODEX_THREAD_ID,均为空时才使用 AIPAY_SESSION_ID。不要生成或用订单号代替。
脚本取得 Payment-Needed 后调用官方 402-buyer-pay,携带原始资源 URL、GET 请求方式和问题摘要 --intent-summary。把官方命令的对客输出原样发送一次,保留完整支付链接与图片,停止并等待用户付款。业务失败原样输出,不自行换订单或重试付款。
3. 查询原订单并取得结果
用户表示已付款或要求查询时:
node <skill>/scripts/call_skill.mjs complete --state-dir '<work>/.state'
脚本调用官方 402-query-payment-status,按优先级使用同次付款输出中的“订单号/查询单号”,其次“交易号”,并保留原资源 URL。结果生成可能需要数分钟;不要因耗时而重新提交、创建新订单或再次付款。官方输出中的结果、状态或错误原样发送一次并停止。成功路径不追加独立买家履约回执。
服务端验证凭证、金额、资源、订单与截止时间,保存答案后确认履约,再交付分析结果。验付、生成或履约暂时失败时保留同一任务和订单,按官方支付流程恢复;状态不明时先查询原订单。
保存结果
用户需要保存或重新下载已完成的结果时:
node <skill>/scripts/call_skill.mjs download --state-dir '<work>/.state' --output '<work>/wechat-html-pay.html'
此命令只读取已完成的结果,不发起付款。把完整 Markdown 正文直接放在 question,不把任务指令混入正文。可选 style:minimal、medium、wired、verge、stripe、apple、ft、linear、github、notion、magazine、editorial、newspaper、course、event;不指定时使用 minimal。交付单个 HTML,不改写正文。
只有 curl 的环境
这条路径与脚本调用同一服务,费用与付款确认要求完全相同。先创建权限为 0700 的 <work>/.state 目录,并在 umask 077 下执行请求;所有响应与账单文件权限为 0600。
- 将同样的
question、context写入<work>/input.json,提交并保存原始响应:
curl -sS --connect-timeout 10 --max-time 30 -X POST 'https://xhs.addsum.top/pay/wechat-html-pay/v1/analyses' -H 'Content-Type: application/json' --data-binary '@<work>/input.json' -o '<work>/.state/state.json' -w 'HTTP_STATUS:%{http_code}'
使用 Agent 的文件读取工具读取 JSON;只有 HTTP 202 才提交成功。保留 analysis_id、unlock_url、status_url 和 price_yuan,向用户说明实际价格并等待本次付款同意。不要因缺少 Node.js 或 Python 停在环境安装。不要公开访问 URL 中的任务令牌。
- 用户同意后,用 curl 请求原
unlock_url,保存响应头和响应体;只有 HTTP 402 且存在Payment-Needed才继续。将该头的完整值原样写入payment-needed文件。加载官方支付 Skill,并调用:
alipay-bot 402-buyer-pay --session-id '<当前会话ID>' --file '<work>/.state/payment-needed' --resource-url '<原 unlock_url>' --method GET --intent-summary '<本次原始问题的摘要>'
保留官方输出中的订单号或交易号到同一状态目录,原样展示官方输出一次并停止。没有 alipay-bot 时,保留本次任务,说明需要在已安装官方支付能力的本地 Agent 中继续;不要改用其他付款方式。
- 用户表示已付款后,优先用同次输出中的订单号查询原请求:
alipay-bot 402-query-payment-status --out-shake-no '<原订单号>' --resource-url '<原 unlock_url>' --method GET
仅有交易号时改用官方 --trade-no。原样输出结果一次并停止,不重新提交、重新付款或追加独立回执。需要保存时,用 curl 读取原 status_url;仅在 status=ready 且含 content.html 时,通过 Agent 文件工具把该字段原样保存为 HTML。