<!-- unified-payment-template: 1.0.4 -->
支付依赖与恢复 / Payment runtime and recovery
运行时需要 Node.js 20+ 和宿主的支付宝官方 alipay-payment-skill、alipay-bot。宿主不同不代表钱包授权可以搬运。正常第一条支付宝业务命令是官方 buyer-pay 或原单查询,不能加通用 check-wallet 前检。
只有真实业务命令无法找到/执行 alipay-bot 时,才加载官方技能的 references/command-recovery.md:取得外部安装授权,核对指定版本 @alipay/agent-payment@1.0.23 的官方完整性后安装,再重试原命令一次。不能每次调用都安装 latest,不能把卖家部署工具当作买方依赖;已启动但业务失败时原样展示并停止。
English: Use the current host's official Alipay buyer runtime. Only an actual command-not-found failure enters the official pinned-version installation recovery. Do not reinstall on every call, precheck wallets generically, or install merchant tooling in the buyer path.
仅在上述恢复条件成立且已获外部安装授权时执行下列两步。先查询完整性,必须逐字符等于下面的指定值;不一致或查不到则停止,不能继续安装:
npm view '@alipay/agent-payment@1.0.23' dist.integrity --registry 'https://registry.npmjs.org'
sha512-7OGSHhPnuKsyENpivpY60NgE77ktKtWTP8UBtmizeB1Et44KHFFIjDcSRIFpitEdKAC7uMBx3Mp1Zg/wbYmYCQ==
核对一致后才执行安装,并仅重试原先无法执行的命令一次:
npx -y --registry=https://registry.npmjs.org @alipay/agent-payment@1.0.23 install
这里的命令是依赖恢复说明,不是正常付款前置;官方技能版本更新时须重新对照其 command-recovery.md,不沿用过期完整性值。
本包现行支付流程 / Registered checkout
本包支付配置为 payment-contract.json:资源 s069-powerbi-modeling、单价 ¥0.10 / CNY、支付宝服务 ID API_FC3B91AF109D47C8、完整服务地址 https://fwskillpay-api.cn/v1/pay/skills/s069-powerbi-modeling/invoke。配置与 SKILL/助手哈希不符即停止。平台展示价须在提交后单独回读,不能从本包检查推定平台价已经一致。
- 调用前披露输入范围、接收方、用途、留存及 ¥0.10,取得本次数据传输和该金额的付款授权。已有授权不再二次询问;价格一致也不能代替授权。
- 在包外私有目录准备 payload.json,按本 Skill 的输入契约执行 probe。400、503、429、未知网络状态或未付款的 200 都停止,不能本地代做付费结果。
- 只核对网关公开 JSON 摘要中的金额、币种、商户订单号、资源 ID、服务 ID 和有效期;任一字段缺失、类型错误、过期或与登记不符都停止,不进入 pay。不解码 Payment-Needed 或 amtPaymentLink,不自行验签;公开摘要不能证明签名、实际付款或到账。
- 本次唯一非空 amtPaymentLink 优先,并原样交给官方
--amt-payment-link,不写付款材料文件;链接缺失才使用原值保存的 Payment-Needed 文件。空、多个或歧义链接停止,两种参数互斥,不能补造或从历史输出补齐。 - 已有该金额授权时立即准备 pay,宿主在返回的 workingDirectory 实际用 executable 与参数数组运行官方 buyer-pay。参数 JSON 不算弹码。会话按下表取值,保持本次原请求与幂等键。
- 原样输出当前官方对客文本一次,完整展示全部 MEDIA 图片;不复用旧图、不绘制替代二维码。链接生成、success:true、OPEN_LINK_CREATED 不代表付款或交付。
- 宿主把刚执行的官方对客文本保存在包外私有文件,用本次 handoffId 执行 record-official。只从“订单号/查询单号/交易号”标签提取标识;拒绝原始 JSON、其他交接或冲突标识。观察分类由宿主依据真实输出选择,不是 helper 验付。
- 用户表示付好或要求查询时,complete 按已绑定标识查询原单:有效 32 位、11–14 位为 8282 的查询号优先;否则用本次交易号。查询不附加 session-id、账单文件或付款链接。未绑定原单停止,不能猜测。
- 只交付官方实际返回的非空验付后资源。成功交付、业务失败、资源为空、身份不符或查询失败后停止;仅命令超时/网络失败允许按官方规则重试原命令一次。不能从 success 字样认定收款。
English: Obtain data-transfer and price authorization before probe. Compare the public checkout summary while passing payment material unchanged to the official runtime. A unique amtPaymentLink takes priority over an opaque Payment-Needed file. Actually execute the returned argument array, show all current official media, then bind the current official customer-facing output to its handoff. Query only the bound original order. Deliver only actual nonempty official resources. Offline helper checks and host observations are not proof of payment or settlement.
当前会话 / Current session
取首个非空来源,高优先级不能被低优先级覆盖:
| 优先级 | 当前运行时来源 |
|---|---|
| 1 | sessionId / session_id 元数据 |
| 2 | threadId / thread_id / conversationId / conversation_id / agentContextId;Codex 使用 CODEX_THREAD_ID |
| 3 | 前两级都为空才用 AIPAY_SESSION_ID |
不能生成会话 ID,不能用订单号、交易号、用户/钱包 ID、URL、测试名或历史会话代替;陈旧环境变量不能覆盖当前显式会话。官方订单号形状(32 位数字且第 11–14 位为 8282)只用于查询,任何符合该形状的串都不是会话,宿主号码仍按逐级取值。全部为空则停止。The current runtime identity takes precedence over inherited environment values.
助手调用 / Helper calls
node scripts/skill-paid.mjs probe --state-dir "<包外私有目录>" --payload-file "<包外私有目录>/payload.json" --confirm-data-transfer
node scripts/skill-paid.mjs pay --state-dir "<同一目录>" --session-id "<当前真实会话>" --intent-summary "原始请求:<本次业务目的摘要>" --confirm-payment
node scripts/skill-paid.mjs record-official --state-dir "<同一目录>" --handoff-id "<刚输出的交接ID>" --official-output-file "<刚执行的官方对客文本文件>" --confirm-current-output --outcome pending
node scripts/skill-paid.mjs complete --state-dir "<同一目录>"
链接分支 pay 额外带 --amt-payment-link "<本次 probe 原样返回的值>";不能从扫码图片或用户操作链接取替代值。每次实际官方命令后都记录本次 handoff。官方资源文件只存私有目录;资源已交付时可记录 resource_delivered。ack_failed 还须同次真实输出明确回执失败、非空资源文件和已交付确认。无把握时记录 unknown 并停止。
大输入、中断及回执 / Large inputs and recovery
大载荷只走同域 /stage 短引用,失败停止,不把大 JSON 塞回命令行。原文恢复副本存在包外私有目录。只有绑定的本次官方输出明确报告引用过期,用户在后续要求恢复并同意再次传输时,才可 restage --confirm-ref-expired --confirm-data-transfer --confirm-recovery-requested 一次;核对原文 SHA-256,保留原订单和幂等键,之后只恢复原单。
正常官方资源交付会自动处理回执。独立 ACK 只恢复已绑定的同次回执失败,且用户后续要求恢复;不重新请求资源。助手使用单次交接标记和锁拒绝重复/并发 ACK。没有真实证据不填确认标志。
付款启动未知不能删状态、换幂等键或再付一笔。已付款但业务失败保留原单,联系运营者核对恢复或退款;退款没有公开命令时不能自行构造。需要官方反馈时加载 alipay-payment-skill 的 references/feedback.md,先向用户确认脱敏内容后提交,不自动发送。
Windows 的文件 mode 不能保证 ACL;宿主须使用当前用户私有目录并核对访问范围。付款材料、当前官方文本、业务原文、资源文件、Cookie 和钱包凭据都不进入发布包或跨宿主同步。
Power BI 语义模型草案 / Power BI Model Blueprint
触发词 / Triggers
中文:当用户提出「输出星型模型结构、关系建议、DAX 骨架、RLS 提醒与性能检查清单;所有字段映射需在 Power BI 中核验」类需求时使用本技能;可直接以技能名「Power BI 语义模型草案 / Power BI Model Blueprint」或标识 s069-powerbi-modeling 指代。
English: Use this skill when the user asks to 输出星型模型结构、关系建议、DAX 骨架、RLS 提醒与性能检查清单;所有字段映射需在 Power BI 中核验. Referred to as s069-powerbi-modeling.
<!-- 迁移器据本技能自身元数据(name/description/tags)生成,未引入外部事实;业务方如认为不适配可改写。 -->
业务依赖 / Business dependencies
中文:本技能的业务能力不依赖额外的第三方服务、账户或凭据;包内离线脚本仅需宿主提供的 Node.js。付费调用所需的支付宝买方官方组件由本包统一支付说明提供。
English: The business capability needs no extra third-party service, account or credential; the bundled offline script only needs the host's Node.js. The official Alipay buyer component for paid calls is provided by this package's unified payment section.
<!-- 迁移器注入的统一最低声明;如本技能确有额外业务依赖,业务方必须改写此节。 -->
输入契约
{"facts":["销售订单"],"dimensions":["日期","客户","产品"],"measures":["销售额","订单数"],"needsRls":true}
服务实际交付
接收 facts(1–20 个名称)、dimensions(至少 1 个名称)以及可选 measures、needsRls,返回星型模型草案、关系建议、DAX 骨架、RLS 提醒和性能检查清单。输入只有名称,没有列定义、粒度、样本行或连接信息;DAX 仅为模板,必须按真实字段人工校验。本服务不连接 Power BI、不读取本地文件、不生成或修改 .pbix。
输入无效应返回 400 且不建单;未付款时不提供结果。用户拒绝传输或付款、服务异常、未收到 402 账单或金额/资源不符时立即停止,不得用本地生成、缓存或模型猜测冒充已付费结果。
买方支付步骤
状态目录与 JSON 输入文件必须放在包外的本机私有目录,不得上传或分享。先用 本技能包内的买方核对脚本 probe --state-dir <私有目录> --payload-file <JSON文件> --confirm-data-transfer获取本次 402 账单,核对金额、资源和有效期;取得用户单独付款同意后,运行pay --state-dir <私有目录> --session-id <会话ID> --intent-summary <非敏感用途摘要> --confirm-payment,并由宿主实际执行脚本输出的官方alipay-bot 官方买方付款指令命令。**只有实际运行官方命令并显示付款二维码,才可称为“已弹码”**;只有官方验付后同一订单的complete` 返回非空结果,才可交付。脚本只编排订单并打印官方 CLI 参数,本身不弹码、不代表已付款。
发生取消、超时或网络结果不明时,不重复 probe、不新建订单、不重新付款;使用同一私有状态目录查询原订单。付款完成后按交易号执行 complete。不得把本地提示词、草稿或结构模板当作已付款交付。
Service contract (English)
The operator is the Skill publisher (ICP filing: 赣ICP备2026015653号). The service is not operated by Alipay or Tencent. Endpoint: https://fwskillpay-api.cn; price: CNY 0.10 per call; service ID: API_FC3B91AF109D47C8. Only the declared JSON fields are sent; no file or undeclared field is uploaded. Staging references default to 2 hours (hard limit 24 hours, swept every 5 minutes). Inputs are cleared after successful processing enters fulfillment; results expire after 24 hours. Automatic deletion timing for unpaid/failed inputs and retention of logs, backups, and metadata are not verified. Obtain separate consent for data transfer and payment. Execute the official buyer CLI for checkout, then deliver only the non-empty result returned after verification of the same order. This package never renders media or creates a Power BI project file.
- Service URL:
https://fwskillpay-api.cn/v1/pay/skills/s069-powerbi-modeling/invoke - Resource ID:
s069-powerbi-modeling - Gateway service ID:
API_FC3B91AF109D47C8 - Price:¥0.10 / call
Allowed request fields
Only these top-level fields may be sent: facts, dimensions, measures, needsRls. 本技能包内的买方核对脚本 rejects undeclared keys and wrong JSON types before it contacts the service. Do not add attachments or extra context fields.
已核对的输入示例 / Registered input example
{
"facts": [
"销售订单"
],
"dimensions": [
"日期",
"客户",
"产品"
],
"measures": [
"销售额",
"订单数"
],
"needsRls": true
}