@alipay/alipay-aipay 1.4.9 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +5 -2
- package/skill/SKILL.md +2 -2
- package/skill/VERSION +1 -1
- package/skill/references/integration/flow.md +109 -41
- package/skill/references/integration/modules/checklist.md +25 -17
- package/skill/references/integration/modules/code-examples/csharp/1-/351/200/232/347/224/250/346/216/245/345/217/243//345/274/202/346/255/245/351/200/232/347/237/245/345/244/204/347/220/206/344/273/243/347/240/201/347/244/272/344/276/213.md +1 -1
- package/skill/references/integration/modules/code-examples/java/1-/351/200/232/347/224/250/346/216/245/345/217/243//345/274/202/346/255/245/351/200/232/347/237/245/345/244/204/347/220/206/344/273/243/347/240/201/347/244/272/344/276/213.md +1 -1
- package/skill/references/integration/modules/code-examples/nodejs/1-/351/200/232/347/224/250/346/216/245/345/217/243//345/274/202/346/255/245/351/200/232/347/237/245/345/244/204/347/220/206/344/273/243/347/240/201/347/244/272/344/276/213.md +1 -1
- package/skill/references/integration/modules/code-examples/php/1-/351/200/232/347/224/250/346/216/245/345/217/243//345/274/202/346/255/245/351/200/232/347/237/245/345/244/204/347/220/206/344/273/243/347/240/201/347/244/272/344/276/213.md +1 -1
- package/skill/references/integration/modules/code-examples/python/1-/351/200/232/347/224/250/346/216/245/345/217/243//345/274/202/346/255/245/351/200/232/347/237/245/345/244/204/347/220/206/344/273/243/347/240/201/347/244/272/344/276/213.md +1 -1
- package/skill/references/integration/modules/interface-contract/aipay-interface-contract.md +3 -4
- package/skill/references/integration/modules/interface-contract/apppay-interface-contract.md +4 -4
- package/skill/references/integration/modules/interface-contract/common-trade-contract.md +1 -1
- package/skill/references/integration/modules/interface-contract/notify-url-contract.md +4 -4
- package/skill/references/integration/modules/interface-contract/webpay-interface-contract.md +4 -4
- package/skill/references/integration/modules/interface-guide.md +15 -13
- package/skill/references/integration/modules/product-decision.md +13 -13
- package/skill/references/integration/modules/sandbox/a2m-sandbox-test.md +2 -2
- package/skill/references/integration/modules/scripts/local_402_sandbox_pay.py +1 -1
- package/skill/references/integration/modules/scripts/sandbox_config.sh +1 -1
- package/skill/references/integration/modules/troubleshooting-flow.md +3 -3
- package/skill/references/normal/alipay-cli-env.md +2 -2
- package/skill/references/normal/full-process-routing.md +7 -5
- package/skill/references/normal/json/customer-messages.json +56 -51
- package/skill/references/normal/json/policy-rules.json +6 -6
- package/skill/references/normal/rejection-guide.md +1 -1
- package/skill/references/normal/scripts/alipay_cli_env.mjs +6 -2
- package/skill/references/normal/scripts/alipay_cli_env.sh +36 -2
- package/skill/references/normal/scripts/common.sh +64 -0
- package/skill/references/normal/scripts/flow_loader.mjs +241 -0
- package/skill/references/normal/scripts/integration_context_runner.mjs +166 -0
- package/skill/references/normal/scripts/integration_message_runner.mjs +237 -15
- package/skill/references/normal/scripts/interaction_reply.mjs +133 -0
- package/skill/references/normal/scripts/onboarding_discovery_runner.mjs +224 -0
- package/skill/references/normal/scripts/onboarding_message_runner.mjs +27 -12
- package/skill/references/normal/scripts/onboarding_recovery_runner.mjs +96 -0
- package/skill/references/normal/scripts/project_route_inspector.sh +3 -3
- package/skill/references/normal/scripts/python_script_runner.mjs +1 -1
- package/skill/references/normal/scripts/render_customer_message.mjs +67 -42
- package/skill/references/normal/scripts/telemetry.mjs +54 -5
- package/skill/references/normal/telemetry.md +26 -0
- package/skill/references/onboarding/flow.md +166 -152
- package/skill/references/onboarding/modules/app-release.md +39 -386
- package/skill/references/onboarding/modules/authorization.md +25 -270
- package/skill/references/onboarding/modules/error-handling.md +50 -253
- package/skill/references/onboarding/modules/product-sign.md +24 -289
- package/skill/references/onboarding/modules/scripts/app.sh +58 -21
- package/skill/references/onboarding/modules/scripts/ar_sign_apply.sh +15 -12
- package/skill/references/onboarding/modules/scripts/auth.sh +6 -1
- package/skill/references/onboarding/modules/scripts/error_handler.sh +1 -0
- package/skill/references/onboarding/modules/scripts/query_sign_status.sh +5 -3
- package/skill/references/onboarding/modules/scripts/service.sh +3 -2
- package/skill/references/onboarding/modules/scripts/upload_screenshots.sh +24 -12
- package/skill/references/onboarding/modules/service-registration.md +20 -312
- package/skill/references/runtime-entry.md +17 -16
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
<!-- ALIPAY_AIPAY_CHECKLIST_PRODUCTS:aipay,webpay,apppay -->
|
|
7
8
|
## 一、密钥与安全校验
|
|
8
9
|
|
|
9
10
|
| 校验项 | 校验要求 | 说明 |
|
|
@@ -17,6 +18,7 @@
|
|
|
17
18
|
|
|
18
19
|
---
|
|
19
20
|
|
|
21
|
+
<!-- ALIPAY_AIPAY_CHECKLIST_PRODUCTS:webpay,apppay -->
|
|
20
22
|
## 二、异步通知校验
|
|
21
23
|
|
|
22
24
|
先区分两种验收层级,再判断是否通过:
|
|
@@ -35,36 +37,39 @@
|
|
|
35
37
|
| 重定向 | notify_url 不能重定向 | 重定向会导致支付宝收不到 success |
|
|
36
38
|
| 外网可访问 | 真实生产上线时,notify_url 必须外网可访问;本地生产参数验收模式下标记为人工待验证 | 需确保支付宝服务器可访问;本地 `localhost`、局域网地址或 TLS 未就绪域名不阻塞本地正式验收 |
|
|
37
39
|
|
|
40
|
+
<!-- ALIPAY_AIPAY_CHECKLIST_PRODUCTS:aipay,webpay,apppay -->
|
|
38
41
|
## 三、适用接口覆盖校验
|
|
39
42
|
|
|
40
43
|
| 校验项 | 校验要求 | 说明 |
|
|
41
44
|
|----------|----------|----------|
|
|
42
|
-
|
|
|
43
|
-
| 按量付费 | 已实现 402 协议、`alipay.aipay.agent.payment.verify` 和 `alipay.aipay.agent.fulfillment.confirm` |
|
|
45
|
+
| AI 网页应用收款/AI 移动应用收款 | 已实现产品下单、交易查询、退款、退款查询、关闭交易和异步通知处理代码 | 以产品和接口文档为准;缺少本地示例不得作为省略理由。公网通知联调是否完成单独在上一节判断 |
|
|
46
|
+
| AI 按量付费 | 已实现 402 协议、`alipay.aipay.agent.payment.verify` 和 `alipay.aipay.agent.fulfillment.confirm` | 不使用 AI 网页应用收款/AI 移动应用收款的通用收单接口 |
|
|
44
47
|
| 限定范围 | 用户明确排除的适用接口已列为待办 | 存在未实现的适用接口时不得判定完整集成 |
|
|
45
48
|
|
|
46
49
|
---
|
|
47
50
|
|
|
51
|
+
<!-- ALIPAY_AIPAY_CHECKLIST_PRODUCTS:webpay,apppay -->
|
|
48
52
|
## 四、支付结果处理校验
|
|
49
53
|
|
|
50
54
|
| 校验项 | 校验要求 | 说明 |
|
|
51
55
|
|----------|----------|----------|
|
|
52
56
|
| 前台同步结果防范 | 前台同步跳转结果仅作通知,**不能作为支付成功的依据** | 必须以异步通知或查询接口结果为准 |
|
|
53
|
-
|
|
|
54
|
-
|
|
|
55
|
-
|
|
|
56
|
-
|
|
|
57
|
+
| AI 网页应用收款回跳默认行为 | 用户未明确关闭同步回跳时,已配置项目实际 `return_url` | 地址不得包含示例域名、占位符、猜测端口或未实现路由 |
|
|
58
|
+
| AI 网页应用收款回跳页可用性 | 启动服务后 GET 访问精确 `return_url`,并在 Agent 具备浏览器/UI 能力时验证页面正常渲染;当前环境无法取得 UI 证据时标记人工待验证 | 不得出现 404、500、空白页、可见报错、认证循环或重定向循环;单页应用直接刷新路由也必须可用 |
|
|
59
|
+
| AI 网页应用收款回跳状态展示 | 先验证同步参数签名,或使用与当前用户会话绑定的服务端订单标识;再通过服务端查询或已验签通知状态展示最终支付结果 | 同步回跳参数不得直接改写订单或作为支付成功依据,不得使用可任意修改的订单号访问其他订单 |
|
|
60
|
+
| AI 网页应用收款关闭同步回跳 | 仅当用户已明确表示不使用同步回跳时适用;SDK 请求未传 `return_url` | 用户未明确关闭时,缺少 `return_url` 必须修复为默认同步回跳分支;关闭分支必须保留异步通知、交易查询和商户订单查询页,且沙箱提示不得声称付款后会自动返回商户网站 |
|
|
57
61
|
| 支付成功判断 | 仅 `trade_status` 为 `TRADE_SUCCESS` 或 `TRADE_FINISHED` 时才认定付款成功 | 其他状态不算支付成功 |
|
|
58
62
|
| 主动查询兜底 | 主动查询订单状态必须作为支付结果确认的兜底逻辑 | 无论异步通知是否到达,都应具备主动查询订单状态的能力,防止因网络抖动、通知延迟或丢失导致的状态不一致 |
|
|
59
63
|
| 未知异常处理 | 网络超时或未知异常时,必须调用查询接口确认 | 不能简单推断为成功或失败 |
|
|
60
64
|
| 商家资损防范 | 不依赖前台同步结果,以异步通知或查询为准 | 防止用户未付款但商家判定成功 |
|
|
61
65
|
| 用户资损防范 | 未确认支付结果前不要求用户再次付款 | 防止用户已付款但商家判定失败导致重复扣款 |
|
|
62
66
|
|
|
63
|
-
> 按量付费不使用前台同步跳转结果和异步通知作为支付成功依据,需按下一节专项校验。
|
|
67
|
+
> AI 按量付费不使用前台同步跳转结果和异步通知作为支付成功依据,需按下一节专项校验。
|
|
64
68
|
|
|
65
69
|
---
|
|
66
70
|
|
|
67
|
-
|
|
71
|
+
<!-- ALIPAY_AIPAY_CHECKLIST_PRODUCTS:aipay -->
|
|
72
|
+
## 五、AI 按量付费专项校验
|
|
68
73
|
|
|
69
74
|
| 校验项 | 校验要求 | 说明 |
|
|
70
75
|
|----------|----------|----------|
|
|
@@ -83,6 +88,7 @@
|
|
|
83
88
|
|
|
84
89
|
---
|
|
85
90
|
|
|
91
|
+
<!-- ALIPAY_AIPAY_CHECKLIST_PRODUCTS:webpay,apppay -->
|
|
86
92
|
## 六、退款校验
|
|
87
93
|
|
|
88
94
|
| 校验项 | 校验要求 | 说明 |
|
|
@@ -93,6 +99,7 @@
|
|
|
93
99
|
|
|
94
100
|
---
|
|
95
101
|
|
|
102
|
+
<!-- ALIPAY_AIPAY_CHECKLIST_PRODUCTS:aipay,webpay,apppay -->
|
|
96
103
|
## 七、上线前校验
|
|
97
104
|
|
|
98
105
|
| 校验项 | 校验要求 | 说明 |
|
|
@@ -102,7 +109,7 @@
|
|
|
102
109
|
| 密钥切换 | 使用生产环境的应用私钥和支付宝公钥 | 与沙箱密钥不同 |
|
|
103
110
|
| 生产密钥对应关系 | `appId`、应用公钥、应用私钥属于同一套生产应用密钥 | 不得混用沙箱应用、其他生产应用或另一套重新生成的密钥 |
|
|
104
111
|
| 生产私钥格式 | 应用私钥格式与项目语言 SDK 匹配 | Java 使用 PKCS#8;非 Java 使用 PKCS#1。格式不匹配时使用支付宝开放平台密钥工具转换 |
|
|
105
|
-
| 按量付费 serviceId 替换 | 生产配置中不得保留 `api_mock_service_id` | 上线前替换为服务市场实际返回的真实 `serviceId` |
|
|
112
|
+
| AI 按量付费 serviceId 替换 | 生产配置中不得保留 `api_mock_service_id` | 上线前替换为服务市场实际返回的真实 `serviceId` |
|
|
106
113
|
| 证书切换 | 公钥证书模式需切换为生产环境证书 | 应用公钥证书、支付宝公钥证书、支付宝根证书 |
|
|
107
114
|
| 产品开通状态 | 确认产品已在生产环境开通 | 沙箱无需开通,生产环境需要申请开通 |
|
|
108
115
|
| 私钥安全 | 私钥不在代码、日志、公共仓库中明文存储 | 使用安全的方式管理私钥 |
|
|
@@ -111,6 +118,7 @@
|
|
|
111
118
|
|
|
112
119
|
---
|
|
113
120
|
|
|
121
|
+
<!-- ALIPAY_AIPAY_CHECKLIST_PRODUCTS:aipay,webpay,apppay -->
|
|
114
122
|
## 八、代码开发结果输出
|
|
115
123
|
|
|
116
124
|
> 内部逐项判断使用以下状态:
|
|
@@ -126,15 +134,15 @@ Unix/macOS/Linux 的 `sandboxConfigState` 必须复用 integration flow 的固
|
|
|
126
134
|
|
|
127
135
|
```bash
|
|
128
136
|
printf '%s' "$CHECKLIST_RESULT_JSON" \
|
|
129
|
-
| node ../../normal/scripts/integration_message_runner.mjs checklist-result --variant <AIPAY|WEBPAY|APPPAY>
|
|
137
|
+
| node ../../normal/scripts/integration_message_runner.mjs checklist-result --variant <AIPAY|WEBPAY|APPPAY> --project-path "$PROJECT_PATH" --scope-receipt "$CHECKLIST_SCOPE_RECEIPT"
|
|
130
138
|
```
|
|
131
139
|
|
|
132
140
|
上方 stdin 命令保持用于 Unix/macOS/Linux。Windows 不使用管道或续行符,按当前产品执行对应 PowerShell 单行命令:
|
|
133
141
|
|
|
134
142
|
```powershell
|
|
135
|
-
node ../../normal/scripts/integration_message_runner.mjs checklist-result --variant AIPAY --overall-result "$OVERALL_RESULT" --failed-items "$FAILED_ITEMS" --manual-items "$MANUAL_ITEMS" --sandbox-result "$SANDBOX_RESULT" --sandbox-config-state "$SANDBOX_CONFIG_STATE" --blocking-defect-state "$BLOCKING_DEFECT_STATE" --execution-mode "$EXECUTION_MODE" --next-flow-reminder "$NEXT_FLOW_REMINDER"
|
|
136
|
-
node ../../normal/scripts/integration_message_runner.mjs checklist-result --variant WEBPAY --overall-result "$OVERALL_RESULT" --failed-items "$FAILED_ITEMS" --manual-items "$MANUAL_ITEMS" --webpay-experience-result "$WEBPAY_EXPERIENCE_RESULT" --sandbox-config-state "$SANDBOX_CONFIG_STATE" --blocking-defect-state "$BLOCKING_DEFECT_STATE" --execution-mode "$EXECUTION_MODE" --next-flow-reminder "$NEXT_FLOW_REMINDER"
|
|
137
|
-
node ../../normal/scripts/integration_message_runner.mjs checklist-result --variant APPPAY --overall-result "$OVERALL_RESULT" --failed-items "$FAILED_ITEMS" --manual-items "$MANUAL_ITEMS" --sandbox-config-state "$SANDBOX_CONFIG_STATE" --blocking-defect-state "$BLOCKING_DEFECT_STATE" --execution-mode "$EXECUTION_MODE" --next-flow-reminder "$NEXT_FLOW_REMINDER"
|
|
143
|
+
node ../../normal/scripts/integration_message_runner.mjs checklist-result --variant AIPAY --project-path "$PROJECT_PATH" --scope-receipt "$CHECKLIST_SCOPE_RECEIPT" --overall-result "$OVERALL_RESULT" --failed-items "$FAILED_ITEMS" --manual-items "$MANUAL_ITEMS" --sandbox-result "$SANDBOX_RESULT" --sandbox-config-state "$SANDBOX_CONFIG_STATE" --blocking-defect-state "$BLOCKING_DEFECT_STATE" --execution-mode "$EXECUTION_MODE" --next-flow-reminder "$NEXT_FLOW_REMINDER"
|
|
144
|
+
node ../../normal/scripts/integration_message_runner.mjs checklist-result --variant WEBPAY --project-path "$PROJECT_PATH" --scope-receipt "$CHECKLIST_SCOPE_RECEIPT" --overall-result "$OVERALL_RESULT" --failed-items "$FAILED_ITEMS" --manual-items "$MANUAL_ITEMS" --webpay-experience-result "$WEBPAY_EXPERIENCE_RESULT" --sandbox-config-state "$SANDBOX_CONFIG_STATE" --blocking-defect-state "$BLOCKING_DEFECT_STATE" --execution-mode "$EXECUTION_MODE" --next-flow-reminder "$NEXT_FLOW_REMINDER"
|
|
145
|
+
node ../../normal/scripts/integration_message_runner.mjs checklist-result --variant APPPAY --project-path "$PROJECT_PATH" --scope-receipt "$CHECKLIST_SCOPE_RECEIPT" --overall-result "$OVERALL_RESULT" --failed-items "$FAILED_ITEMS" --manual-items "$MANUAL_ITEMS" --sandbox-config-state "$SANDBOX_CONFIG_STATE" --blocking-defect-state "$BLOCKING_DEFECT_STATE" --execution-mode "$EXECUTION_MODE" --next-flow-reminder "$NEXT_FLOW_REMINDER"
|
|
138
146
|
```
|
|
139
147
|
|
|
140
148
|
只有 `AIPAY` 传入独立 `sandboxResult`;`WEBPAY` 必须按步骤 6 的实际证据传入消息目录登记的 `webpayExperienceResult` 枚举。禁止跨产品传入其他产品结论。这些字段只用于校验代码开发总结果与实际沙箱事实一致,不在最终精简消息中重复展示。内部必须保留所有适用项的检查结论和依据;用户要求完整明细时,再从实际证据输出逐项表格,不维护第二份固定模板。
|
|
@@ -143,15 +151,15 @@ node ../../normal/scripts/integration_message_runner.mjs checklist-result --vari
|
|
|
143
151
|
|
|
144
152
|
| 产品 | checklist 内部校验事实 | 实际待办来源 |
|
|
145
153
|
|---|---|---|
|
|
146
|
-
| `AIPAY` |
|
|
154
|
+
| `AIPAY` | 代码开发通过必须绑定本轮 AI 按量付费沙箱服务端联调通过 | checklist 失败/部分通过项、人工待验证项和联调恢复动作 |
|
|
147
155
|
| `WEBPAY` | 未提供浏览器付款入口或完整指引时不得标记代码开发通过 | checklist 失败/部分通过项、人工待验证项和待用户体验事项 |
|
|
148
156
|
| `APPPAY` | 当前没有沙箱付款验证结论,不据此生成通过或失败事实 | checklist 失败/部分通过项和人工待验证项 |
|
|
149
157
|
|
|
150
|
-
`APPPAY` 变体在 `customer-messages.json` 保留不渲染的维护 TODO。后续确定
|
|
158
|
+
`APPPAY` 变体在 `customer-messages.json` 保留不渲染的维护 TODO。后续确定 AI 移动应用收款沙箱测试动作时,只修改该变体仍不够,必须同步 integration flow、本文适用校验项和自动化测试;在此之前 Agent 禁止临场补充沙箱付款步骤。
|
|
151
159
|
|
|
152
|
-
|
|
160
|
+
代码开发校验结论必须与沙箱测试结论分开:沙箱配置字段完整、配置后置校验通过、AI 网页应用收款付款指引已提供或 AI 移动应用收款不适用步骤 6,都不得表述为“沙箱测试通过”或“沙箱环境测试通过”。只有 AI 按量付费步骤 6 已自动完成 402 Payment-Needed、沙箱收银、Payment-Proof 重试和资源交付全链路并取得成功证据时,才可在本摘要中复用“AI 按量付费沙箱测试通过”的结论。
|
|
153
161
|
|
|
154
|
-
|
|
162
|
+
涉及 AI 网页应用收款或 AI 移动应用收款时,校验结论还必须显式区分:
|
|
155
163
|
- “本地正式验收完成 / 本地生产参数验收完成,公网异步通知待补齐”
|
|
156
164
|
- “真实生产上线条件已满足”
|
|
157
165
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# 按量付费本地接口契约
|
|
1
|
+
# AI 按量付费本地接口契约
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
本文是 AI 按量付费代码开发的默认本地依据。在线文档只在本地契约或示例缺失、字段不确定、排查官方错误码、用户明确要求或官方能力变化时作为 fallback 读取。
|
|
4
4
|
|
|
5
5
|
sourceUrl:
|
|
6
6
|
|
|
@@ -10,7 +10,7 @@ sourceUrl:
|
|
|
10
10
|
|
|
11
11
|
## 默认范围
|
|
12
12
|
|
|
13
|
-
按量付费只实现 HTTP 402、`Payment-Needed`、`Payment-Proof`、`alipay.aipay.agent.payment.verify` 和 `alipay.aipay.agent.fulfillment.confirm
|
|
13
|
+
AI 按量付费只实现 HTTP 402、`Payment-Needed`、`Payment-Proof`、`alipay.aipay.agent.payment.verify` 和 `alipay.aipay.agent.fulfillment.confirm`。不得混入 AI 网页应用收款或 AI 移动应用收款的统一收单接口、异步通知或 `notify_url`。
|
|
14
14
|
|
|
15
15
|
## 402 与账单
|
|
16
16
|
|
|
@@ -50,4 +50,3 @@ sourceUrl:
|
|
|
50
50
|
## 履约确认
|
|
51
51
|
|
|
52
52
|
资源生成后调用 `alipay.aipay.agent.fulfillment.confirm`,业务入参只有 `trade_no`。必须在履约确认成功后再把订单标记为最终完成。确认失败时允许同一 `Payment-Proof` 重试确认,避免资源已生成但平台未记录履约。
|
|
53
|
-
|
package/skill/references/integration/modules/interface-contract/apppay-interface-contract.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
#
|
|
1
|
+
# AI 移动应用收款本地接口契约
|
|
2
2
|
|
|
3
|
-
本文是
|
|
3
|
+
本文是 AI 移动应用收款服务端下单接口的默认本地依据。在线文档只在本地契约或示例缺失、字段不确定、排查官方错误码、用户明确要求或官方能力变化时作为 fallback 读取。
|
|
4
4
|
|
|
5
5
|
sourceUrl:
|
|
6
6
|
|
|
@@ -10,11 +10,11 @@ sourceUrl:
|
|
|
10
10
|
|
|
11
11
|
## 默认范围
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
AI 移动应用收款必须覆盖:`alipay.trade.app.pay`、交易查询、退款、退款查询、关闭交易、异步通知和服务端订单查询链路。
|
|
14
14
|
|
|
15
15
|
查询、退款、退款查询、关闭交易读取 `common-trade-contract.md`;异步通知读取 `notify-url-contract.md`。
|
|
16
16
|
|
|
17
|
-
本 Skill 默认只改商家服务端,不替用户实现 APP 客户端 SDK。HarmonyOS
|
|
17
|
+
本 Skill 默认只改商家服务端,不替用户实现 APP 客户端 SDK。HarmonyOS AI 移动应用收款代码开发仍可覆盖服务端能力;平台侧移动应用创建边界以 onboarding 应用发布模块为准。
|
|
18
18
|
|
|
19
19
|
官方目录中的 `alipay.data.dataservice.bill.downloadurl.query` 不是当前 Skill 默认交付项。用户明确要求对账时再按在线文档 fallback 处理,不能加入默认 checklist。
|
|
20
20
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 异步通知本地契约
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
本文是 AI 网页应用收款和 AI 移动应用收款共用的异步通知实现依据。AI 按量付费不使用本契约。在线文档只在本地契约或示例缺失、字段不确定、排查官方错误码、用户明确要求或官方能力变化时作为 fallback 读取。
|
|
4
4
|
|
|
5
5
|
sourceUrl:
|
|
6
6
|
|
|
@@ -13,9 +13,9 @@ sourceUrl:
|
|
|
13
13
|
|
|
14
14
|
| 产品 | 是否适用 | 说明 |
|
|
15
15
|
| --- | --- | --- |
|
|
16
|
-
|
|
|
17
|
-
|
|
|
18
|
-
| 按量付费 | 否 | 使用 `Payment-Proof` 验付和履约确认,不使用统一收单异步通知 |
|
|
16
|
+
| AI 网页应用收款 | 是 | `alipay.trade.page.pay` 下单时通过公共参数 `notify_url` 指定 |
|
|
17
|
+
| AI 移动应用收款 | 是 | `alipay.trade.app.pay` 下单时通过公共参数 `notify_url` 指定 |
|
|
18
|
+
| AI 按量付费 | 否 | 使用 `Payment-Proof` 验付和履约确认,不使用统一收单异步通知 |
|
|
19
19
|
|
|
20
20
|
`notify_url` 是商家服务端接收支付宝 POST 表单通知的地址,不是前端页面地址,也不是支付宝生成的 URL。
|
|
21
21
|
|
package/skill/references/integration/modules/interface-contract/webpay-interface-contract.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
#
|
|
1
|
+
# AI 网页应用收款本地接口契约
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
本文是 AI 网页应用收款专用下单接口的默认本地依据。在线文档只在本地契约或示例缺失、字段不确定、排查官方错误码、用户明确要求或官方能力变化时作为 fallback 读取。
|
|
4
4
|
|
|
5
5
|
sourceUrl:
|
|
6
6
|
|
|
@@ -9,7 +9,7 @@ sourceUrl:
|
|
|
9
9
|
|
|
10
10
|
## 默认范围
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
AI 网页应用收款必须覆盖:`alipay.trade.page.pay`、交易查询、退款、退款查询、关闭交易、异步通知和默认同步回跳结果页。
|
|
13
13
|
|
|
14
14
|
查询、退款、退款查询、关闭交易读取 `common-trade-contract.md`;异步通知读取 `notify-url-contract.md`。
|
|
15
15
|
|
|
@@ -17,7 +17,7 @@ sourceUrl:
|
|
|
17
17
|
|
|
18
18
|
## 下单接口
|
|
19
19
|
|
|
20
|
-
`alipay.trade.page.pay`
|
|
20
|
+
`alipay.trade.page.pay` 是AI 网页应用收款唯一默认下单接口,电脑网页、手机浏览器网页和 H5 场景均使用该接口,不改用其他网页支付产品接口。
|
|
21
21
|
|
|
22
22
|
公共参数:
|
|
23
23
|
|
|
@@ -2,15 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
本文件只做本地接口契约和代码示例路由。正常代码开发默认读取本地契约与当前语言示例;在线文档只作为 `sourceUrl` 和 fallback,不作为默认运行时必读材料。
|
|
4
4
|
|
|
5
|
-
本文中的 `./code-examples/...` 路径一律相对本文件所在目录 `references/integration/modules/` 解析。从 `references/integration/flow.md` 所在目录读取示例时,实际路径必须写成 `modules/code-examples/...`;例如 Node.js 按量付费示例是 `modules/code-examples/nodejs/4-按量付费/A2MPaymentDemo.js`。禁止查找不存在的 `references/integration/code-examples/...`。
|
|
5
|
+
本文中的 `./code-examples/...` 路径一律相对本文件所在目录 `references/integration/modules/` 解析。从 `references/integration/flow.md` 所在目录读取示例时,实际路径必须写成 `modules/code-examples/...`;例如 Node.js AI 按量付费示例是 `modules/code-examples/nodejs/4-按量付费/A2MPaymentDemo.js`。禁止查找不存在的 `references/integration/code-examples/...`。
|
|
6
6
|
|
|
7
7
|
## 默认读取路由
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
|
12
|
-
|
|
|
13
|
-
|
|
|
9
|
+
下表同时是 `integration_context_runner.mjs` 的产品路由事实源。修改产品契约、示例或沙箱验收边界时只改本表,不在 runner 中维护副本。
|
|
10
|
+
|
|
11
|
+
| productType | 产品 | 必读本地契约 | 必读示例目录 | 沙箱验收动作 | 沙箱参考 |
|
|
12
|
+
| --- | --- | --- | --- | --- | --- |
|
|
13
|
+
| `aipay` | AI 按量付费 | `interface-contract/aipay-interface-contract.md` | `4-按量付费` | `A2M_AUTO_COMPLETE` | `sandbox/a2m-sandbox-test.md` |
|
|
14
|
+
| `webpay` | AI 网页应用收款 | `interface-contract/webpay-interface-contract.md`、`interface-contract/common-trade-contract.md`、`interface-contract/notify-url-contract.md` | `2-网站支付`、`1-通用接口` | `WEB_PAYMENT_EXPERIENCE` | `sandbox/sandbox-setup-guide.md` |
|
|
15
|
+
| `apppay` | AI 移动应用收款 | `interface-contract/apppay-interface-contract.md`、`interface-contract/common-trade-contract.md`、`interface-contract/notify-url-contract.md` | `3-APP支付`、`1-通用接口` | `NOT_APPLICABLE` | - |
|
|
14
16
|
|
|
15
17
|
fallback 仅在本地契约或示例缺失、字段不确定、排查官方错误码、用户明确要求或官方能力变化时触发。触发后只读取当前产品和当前接口直接相关页面,不递归抓取无关文档。
|
|
16
18
|
|
|
@@ -18,7 +20,7 @@ fallback 仅在本地契约或示例缺失、字段不确定、排查官方错
|
|
|
18
20
|
|
|
19
21
|
语言目录固定为:`java`、`python`、`nodejs`、`php`、`csharp`。选择当前项目服务端语言对应目录,禁止混用不同语言。
|
|
20
22
|
|
|
21
|
-
### 按量付费
|
|
23
|
+
### AI 按量付费
|
|
22
24
|
|
|
23
25
|
| 语言 | 示例 |
|
|
24
26
|
| --- | --- |
|
|
@@ -28,25 +30,25 @@ fallback 仅在本地契约或示例缺失、字段不确定、排查官方错
|
|
|
28
30
|
| PHP | `./code-examples/php/4-按量付费/A2MPaymentDemo.php` |
|
|
29
31
|
| C# | `./code-examples/csharp/4-按量付费/A2MPaymentDemo.cs` |
|
|
30
32
|
|
|
31
|
-
按量付费使用 402、`Payment-Needed`、`Payment-Proof`、验付和履约确认;不读取通用收单接口或异步通知示例。示例包含 TODO、内存模拟或占位函数时,必须替换为项目真实订单持久化、本地订单匹配、金额一致性、资源防串、幂等履约和履约确认失败重试逻辑,不得原样宣称生产完成。
|
|
33
|
+
AI 按量付费使用 402、`Payment-Needed`、`Payment-Proof`、验付和履约确认;不读取通用收单接口或异步通知示例。示例包含 TODO、内存模拟或占位函数时,必须替换为项目真实订单持久化、本地订单匹配、金额一致性、资源防串、幂等履约和履约确认失败重试逻辑,不得原样宣称生产完成。
|
|
32
34
|
|
|
33
|
-
###
|
|
35
|
+
### AI 网页应用收款
|
|
34
36
|
|
|
35
37
|
- 专用下单示例:`./code-examples/<语言>/2-网站支付/统一收单下单并支付页面接口代码示例.md`
|
|
36
38
|
- 通用接口示例:读取下方“通用收单示例”
|
|
37
39
|
|
|
38
|
-
|
|
40
|
+
AI 网页应用收款覆盖 PC 网页和手机浏览器网页/H5,底层接口固定 `alipay.trade.page.pay`。用户未明确关闭同步回跳时,还必须按 `alipay-sdk-reminder.md` 实现并验证同步回跳结果页;支付成功仍以验签通过的异步通知或交易查询为准。
|
|
39
41
|
|
|
40
|
-
###
|
|
42
|
+
### AI 移动应用收款
|
|
41
43
|
|
|
42
44
|
- 专用下单示例:`./code-examples/<语言>/3-APP支付/APP支付接口代码示例.md`
|
|
43
45
|
- 通用接口示例:读取下方“通用收单示例”
|
|
44
46
|
|
|
45
|
-
|
|
47
|
+
AI 移动应用收款默认完成商家服务端能力,返回 `orderStr` 给 APP 客户端;客户端 SDK 接入不属于本 Skill 默认服务端改造范围。客户端同步结果只作支付结束通知,不能作为付款成功依据。
|
|
46
48
|
|
|
47
49
|
### 通用收单示例
|
|
48
50
|
|
|
49
|
-
|
|
51
|
+
AI 网页应用收款和 AI 移动应用收款必须读取当前语言目录下的通用示例:
|
|
50
52
|
|
|
51
53
|
| 接口 | 文件 |
|
|
52
54
|
| --- | --- |
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
# 产品决策
|
|
2
2
|
|
|
3
|
-
用于用户集成支付宝支付产品时的产品决策。**本 Skill
|
|
3
|
+
用于用户集成支付宝支付产品时的产品决策。**本 Skill 仅支持 AI 按量付费、AI 网页应用收款、AI 移动应用收款三种产品**。
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
## 支持的产品
|
|
8
8
|
|
|
9
|
-
> 术语说明:本 Skill
|
|
9
|
+
> 术语说明:本 Skill 对客统一使用“AI 网页应用收款”,覆盖电脑网页和手机浏览器网页/H5 场景;“网站支付”“电脑网站支付”“PC网站支付”“手机网站支付”“H5支付”均作为输入别名路由到该产品。底层接口固定使用 `alipay.trade.page.pay`,即使是手机浏览器/H5 场景,也不得改用或推荐其他网页支付接口。
|
|
10
10
|
|
|
11
11
|
| 产品 | 定义 | 适用场景 |
|
|
12
12
|
|------|------|----------|
|
|
13
|
-
|
|
|
14
|
-
|
|
|
15
|
-
| **
|
|
13
|
+
| **AI 按量付费** | 面向 AI 智能体的机器支付收款产品 | API、数字内容、算力资源、智能体按调用付费、402 协议收款 |
|
|
14
|
+
| **AI 网页应用收款** | 用户在电脑网页或手机网页发起支付 | PC 官网、电商网站、在线教育、政务缴费网站、手机 H5 页面 |
|
|
15
|
+
| **AI 移动应用收款** | 原生 App 内调起支付宝支付 | iOS/Android/鸿蒙原生 App 内支付 |
|
|
16
16
|
|
|
17
17
|
---
|
|
18
18
|
|
|
@@ -22,14 +22,14 @@
|
|
|
22
22
|
用户咨询支付宝接入
|
|
23
23
|
|
|
|
24
24
|
+-- 面向 AI 智能体收款?402 协议?
|
|
25
|
-
| +-- 按量付费
|
|
25
|
+
| +-- AI 按量付费
|
|
26
26
|
|
|
|
27
27
|
+-- 线上网页支付?
|
|
28
|
-
| +-- 电脑浏览器网页 -->
|
|
29
|
-
| +-- 手机浏览器 H5 -->
|
|
28
|
+
| +-- 电脑浏览器网页 --> AI 网页应用收款
|
|
29
|
+
| +-- 手机浏览器 H5 --> AI 网页应用收款
|
|
30
30
|
|
|
|
31
31
|
+-- 原生 APP 支付?
|
|
32
|
-
+-- iOS/Android/鸿蒙 -->
|
|
32
|
+
+-- iOS/Android/鸿蒙 --> AI 移动应用收款
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
---
|
|
@@ -40,9 +40,9 @@
|
|
|
40
40
|
|
|
41
41
|
| 关键词 | 路由产品 |
|
|
42
42
|
| --- | --- |
|
|
43
|
-
| 402协议、Agent收款、A2A、ACT协议、A2M、AI支付、Agent支付、智能体、API收费、按调用付费、机器支付 |
|
|
44
|
-
| PC支付、电脑网站、网页支付、电脑端支付、PC网页、电脑浏览器、网站支付、传统网页支付、网页收银台、H5支付、手机网页 |
|
|
45
|
-
| APP 支付、移动应用支付、iOS支付、Android支付、鸿蒙支付、App内支付、原生 APP 支付、手机 APP 支付、移动端App、SDK支付、客户端支付 | **
|
|
43
|
+
| 402协议、Agent收款、A2A、ACT协议、A2M、AI支付、Agent支付、智能体、API收费、按调用付费、机器支付 | **AI 按量付费** |
|
|
44
|
+
| PC支付、电脑网站、网页支付、电脑端支付、PC网页、电脑浏览器、网站支付、传统网页支付、网页收银台、H5支付、手机网页 | **AI 网页应用收款** |
|
|
45
|
+
| APP 支付、移动应用支付、iOS支付、Android支付、鸿蒙支付、App内支付、原生 APP 支付、手机 APP 支付、移动端App、SDK支付、客户端支付 | **AI 移动应用收款** |
|
|
46
46
|
|
|
47
47
|
---
|
|
48
48
|
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
|
|
63
63
|
## 产品澄清
|
|
64
64
|
|
|
65
|
-
用户描述模糊或关键词匹配不明确时,执行下列命令固定渲染 `product.clarify
|
|
65
|
+
用户描述模糊或关键词匹配不明确时,执行下列命令固定渲染 `product.clarify`,等待用户以自然语言回复产品名称和业务需求。本模块不维护第二份澄清模板;不得临场增加不支持产品、改写 AI 网页应用收款接口或省略三种支持产品。
|
|
66
66
|
|
|
67
67
|
```bash
|
|
68
68
|
node ../../normal/scripts/integration_message_runner.mjs product-clarify
|
|
@@ -106,7 +106,7 @@ Windows 使用 `node ../../../normal/scripts/python_script_runner.mjs ../scripts
|
|
|
106
106
|
|
|
107
107
|
**⚠️ 脚本的收银接口地址和付款链接前缀已硬编码在脚本中(`PAY_ENDPOINT`、`PAY_URL_PREFIX`),执行时无需额外指定。**
|
|
108
108
|
|
|
109
|
-
|
|
109
|
+
先按 `../../../normal/scripts/integration_message_runner.mjs a2m-execution-guard` 的当前会话 receipt 契约校验项目快照、服务 URL、HTTP 方法和可选 POST body。只有 `decision=RUN` 才使用 `../../../normal/json/customer-messages.json` 的 `a2m.test.start` 渲染固定联调说明并立即运行脚本;`REUSE_PASSED|BLOCK_UNCHANGED|UNKNOWN_PREVIOUS_EXECUTION` 均不得重复发起完整联调。服务地址和 HTTP 方法只用于实际命令,不在开始消息中展示。
|
|
110
110
|
|
|
111
111
|
```bash
|
|
112
112
|
node ../../../normal/scripts/integration_message_runner.mjs a2m-test-start
|
|
@@ -170,7 +170,7 @@ node ../../../normal/scripts/python_script_runner.mjs ../scripts/local_402_sandb
|
|
|
170
170
|
- 如果未找到 `Payment-Needed` 响应头,确认服务端是否实现了 402 协议
|
|
171
171
|
- 如果收银接口返回 `PARAM_INVALID: protocol.sellerSignature不能为空`,回到预检步骤检查 `protocol.seller_signature` 是否为空、缺失或仍是占位符
|
|
172
172
|
- 如果 `pay_before` 相关参数报错,检查是否使用 ISO 8601 带时区格式
|
|
173
|
-
- 如果收银接口返回 `PAY_SUBMIT_FAILED`、`系统繁忙`
|
|
173
|
+
- 如果收银接口返回 `PAY_SUBMIT_FAILED`、`系统繁忙` 等已识别临时错误,脚本只在同一次命令内按既有预算自动重试;仍失败时清理本轮敏感产物并停止。Agent 不得通过重复执行 `run --auto-complete`、追加 `--pay-retries`/`--pay-retry-delay` 或手工复用上轮 Payment-Needed 扩大远程写动作;只有联网权限恢复后重试同一未发出命令,或代码、配置、URL、方法、POST body 实际变化并由 guard 产生新 `RUN` receipt 时才能重新发起完整联调。
|
|
174
174
|
|
|
175
175
|
### 第三步:连续验证 Payment-Proof 重试
|
|
176
176
|
|
|
@@ -63,7 +63,7 @@ CONFIG_PATH="${PROJECT_PATH}/.alipay-sandbox.json"
|
|
|
63
63
|
GITIGNORE_PATH="${PROJECT_PATH}/.gitignore"
|
|
64
64
|
|
|
65
65
|
if [ "$MODE" = "summary" ]; then
|
|
66
|
-
case "$PRODUCT_TYPE" in aipay) PRODUCT_NAME="按量付费" ;; webpay) PRODUCT_NAME="
|
|
66
|
+
case "$PRODUCT_TYPE" in aipay) PRODUCT_NAME="AI 按量付费" ;; webpay) PRODUCT_NAME="AI 网页应用收款" ;; apppay) PRODUCT_NAME="AI 移动应用收款" ;; *) echo "SANDBOX_ERROR:产品非法,仅支持 aipay|webpay|apppay" >&2; exit 2 ;; esac
|
|
67
67
|
fi
|
|
68
68
|
case "$PROJECT_PATH" in /*) ;; *) echo "SANDBOX_ERROR:项目路径必须为绝对路径" >&2; exit 2 ;; esac
|
|
69
69
|
[ -d "$PROJECT_PATH" ] && [ ! -L "$PROJECT_PATH" ] || { echo "SANDBOX_ERROR:项目目录不可访问或不安全" >&2; exit 2; }
|
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
|
|
11
11
|
| 产品 | 常见问题文档 |
|
|
12
12
|
|---|---|
|
|
13
|
-
| 按量付费 | [按量付费常见问题](https://ideservice.alipay.com/cms/site/0j7uos) |
|
|
14
|
-
|
|
|
15
|
-
|
|
|
13
|
+
| AI 按量付费 | [AI 按量付费常见问题](https://ideservice.alipay.com/cms/site/0j7uos) |
|
|
14
|
+
| AI 网页应用收款 | [AI 网页应用收款常见问题](https://ideservice.alipay.com/cms/site/0j3kh1) |
|
|
15
|
+
| AI 移动应用收款 | [AI 移动应用收款常见问题](https://ideservice.alipay.com/cms/site/0j3pih) |
|
|
16
16
|
|
|
17
17
|
没有确定依据时明确说明无法确认,禁止编造;引导用户查阅[支付宝开放平台](https://open.alipay.com?form=payskill)或咨询[支付宝技术支持](https://opensupport.alipay.com/support/intelligent-services?form=payskill)。
|
|
18
18
|
|
|
@@ -166,12 +166,12 @@ source ~/.bashrc # Linux/bash
|
|
|
166
166
|
|
|
167
167
|
> ⚠️ **强制规范:检测结果仅供内部使用,禁止向用户输出!**
|
|
168
168
|
|
|
169
|
-
AI 编程工具检测使用通用脚本 `scripts/detect_dev_tool.sh`。shell 脚本通过 `scripts/common.sh` 提供的 `init_alipay_cli_context` 初始化 `DEV_TOOL_NAME`、`PLATFORM` 和 `PLATFORM_ID`;其中 `PLATFORM_ID` 取当前 telemetry `run_id`,用于把同一流程的 Skill 时间戳事件和 alipay-cli
|
|
169
|
+
AI 编程工具检测使用通用脚本 `scripts/detect_dev_tool.sh`。shell 脚本通过 `scripts/common.sh` 提供的 `init_alipay_cli_context` 初始化 `DEV_TOOL_NAME`、`PLATFORM` 和 `PLATFORM_ID`;其中 `PLATFORM_ID` 取当前 telemetry `run_id`,用于把同一流程的 Skill 时间戳事件和 alipay-cli 上报关联起来。Onboarding 在产品确认后还通过同一公共脚本把 `aipay|webpay|apppay` 严格映射为 CLI 环境变量 `PRODUCT=AIPAY|WEBPAY|APPPAY`,所有环境检查、登录、查询、写入和文件上传调用都必须携带当前值;该字段不进入 MCP 请求 JSON。Integration 的产品确定前环境检查和快速沙箱仍不传 `PRODUCT`。若宿主环境提供 `COZE_PROJECT_ID`、`MEOO_PROJECT_ID`,或 `MIAODA` 环境下的 `VITE_APP_ID`/`PLATFORM_ID`,telemetry 新建 run 时直接使用该项目 ID 作为 `run_id`,脚本也会将同一值作为 `PLATFORM_ID`。文档示例或非 shell 流程可直接参考 `detect_dev_tool.sh` 的输出。
|
|
170
170
|
|
|
171
171
|
```
|
|
172
172
|
❌ 禁止:向用户输出"环境检查完成,检测到您正在使用 Claude Code 环境"等检测结果
|
|
173
173
|
❌ 禁止:向用户透出任何关于 AI 编程工具检测的信息
|
|
174
|
-
✅ 正确:检测结果仅供内部使用,只用于脚本设置 `PLATFORM`;`PLATFORM_ID` 由脚本从当前 `run_id`
|
|
174
|
+
✅ 正确:检测结果仅供内部使用,只用于脚本设置 `PLATFORM`;`PLATFORM_ID` 由脚本从当前 `run_id` 派生,Onboarding 的 `PRODUCT` 由已确认产品映射
|
|
175
175
|
✅ 正确:静默完成检测,直接进入下一步流程
|
|
176
176
|
```
|
|
177
177
|
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
本文件是 `full_process` 唯一入口。启动确认前只复用 Integration 步骤 1 的项目、语言、当前系统分支环境和沙箱准备;不得开发代码、进入 Onboarding 或读取开通信息。
|
|
4
4
|
|
|
5
|
+
目标项目和技术栈可确定后,从本文件目录执行 `node scripts/flow_loader.mjs integration entry`,只加载 Integration 当前入口阶段并按其步骤 1/2 准备和确认;禁止整份读取 `../integration/flow.md`。loader bundle 中的命令仍以源文件目录 `references/integration/` 为 workdir。代码开发满足衔接条件后执行 `node scripts/flow_loader.mjs onboarding entry`,其 bundle 命令以 `references/onboarding/` 为 workdir;禁止整份读取 `../onboarding/flow.md`。
|
|
6
|
+
|
|
5
7
|
本文 Skill 命令以 `references/normal/` 为 workdir。项目选择时的 `PROJECT_INPUT` 保留用户原始表达;明确“新建/创建”项目、网站、商城、应用或同类新产物时固定使用 `--intent new`,不得因当前目录已有项目改写为 `--intent existing`。新建项目使用空路径或 runner 安全默认目录;复用项目须选定具体项目根,未知位置先定位候选。“当前目录”仅在 runner 识别为项目根时接受。扫描和后续脚本只使用解析后的规范化绝对路径。
|
|
6
8
|
|
|
7
9
|
## 边界
|
|
@@ -58,17 +60,17 @@ node scripts/integration_message_runner.mjs context-required --missing-items "$M
|
|
|
58
60
|
node scripts/integration_message_runner.mjs locate-projects --base-path "$USER_WORKSPACE_ROOT" --search-input "$SEARCH_INPUT" --format message
|
|
59
61
|
```
|
|
60
62
|
|
|
61
|
-
字段齐备后执行唯一 runner;禁止拆开执行项目扫描、`jq` 或 `render_customer_message.mjs`,也不得附加解析。runner stdout 是本动作唯一对客消息,必须把 stdout 原文作为当前回复正文发给用户;发出 stdout
|
|
63
|
+
字段齐备后执行唯一 runner;禁止拆开执行项目扫描、`jq` 或 `render_customer_message.mjs`,也不得附加解析。runner stdout 是本动作唯一对客消息,必须把 stdout 原文作为当前回复正文发给用户;发出 stdout 原文后立即停止本轮并等待当前摘要的明确肯定回复。收到回复后执行 `node scripts/interaction_reply.mjs confirm --reply "$USER_REPLY"`,只有唯一 `REPLY_DECISION=CONFIRMED` 才推进;摘要变化后旧回复失效。该内部判定不新增用户操作点;静态扫描只决定进入验证,不证明完成。
|
|
62
64
|
|
|
63
65
|
```bash
|
|
64
66
|
node scripts/integration_message_runner.mjs start-confirm --product-type "$PRODUCT_TYPE" --product-name "$PRODUCT_NAME" --project-path "$PROJECT_PATH" --project-selection "$PROJECT_SELECTION" --language "$SERVER_LANGUAGE" --framework "$FRAMEWORK"
|
|
65
67
|
```
|
|
66
68
|
|
|
67
|
-
|
|
69
|
+
上面命令失败时不得展示手写确认或进入子流程。成功时必须同时保存唯一 `ALIPAY_AIPAY_INTERNAL:PROJECT_CONFIRM_RECEIPT=<receipt>`;缺失、重复或不可解析视为失败。参数必须是当前确定值,禁止直接拼用户输入。runner 校验产品 variant 并固定服务声明;实际范围仍取当前 Integration flow 和 checklist。
|
|
68
70
|
|
|
69
|
-
分流、展示和交接事实必须来自 runner 内同一次 `scan` 对象;禁止用描述、Agent 自报或历史分类代替。`evidence` 仅内部校验,不进 renderer;Onboarding Step
|
|
71
|
+
分流、展示和交接事实必须来自 runner 内同一次 `scan` 对象;禁止用描述、Agent 自报或历史分类代替。`evidence` 仅内部校验,不进 renderer;Onboarding Step 1 前禁止传/猜 `mccCode`。确认同时满足 `INT.START.CONFIRMED` 与 `INT.SERVICE_STATEMENT.CONFIRMED` 后,执行 `node scripts/flow_loader.mjs integration development --product-type "$PRODUCT_TYPE" --project-confirm-receipt "$PROJECT_CONFIRM_RECEIPT"`。只有内部 `PROJECT_CONFIRMATION=VALID` 才进入步骤 3;`STALE` 时 loader stdout 已重新渲染当前标准确认,必须原文发送并等待新的明确肯定回复。loader 自动记录确认和预开发阅读 stage,禁止手工执行 telemetry;确认有效时禁止再次渲染 `integration.start.confirm`。
|
|
70
72
|
|
|
71
|
-
|
|
73
|
+
合法组合必须确认产品、路径/来源、代码状态、语言/框架、服务声明和顺序;发现其他产品时确认保留。当前完整摘要展示前的零散信息、`新建` 选择、未选候选或新项目未准备均不能替代;当前完整摘要展示后的 `继续` 属于有效肯定回复。确认后仍完整执行 Integration 和 checklist。
|
|
72
74
|
|
|
73
75
|
## 子流程衔接规则
|
|
74
76
|
|
|
@@ -76,5 +78,5 @@ node scripts/integration_message_runner.mjs start-confirm --product-type "$PRODU
|
|
|
76
78
|
- Integration 先完整执行和校验。只有沙箱待配置,或 READY 且仅剩非阻塞人工待验证项时,保持“部分通过”进入 Onboarding;其他代码、安全或依据缺口停在 Integration,不提前登录或收集开通材料。
|
|
77
79
|
- 阶段间只复用有效的产品、项目、代码产物和 CLI 检查,不再询问是否进入 Onboarding;保留方案确认。
|
|
78
80
|
- 授权后分别查询签约、应用和适用服务;分支独立,单分支失败不回滚其他成功,认证/授权不匹配或主体变化全局阻断。一次只收集一个类别,提前材料直接校验且不重复索取。
|
|
79
|
-
-
|
|
81
|
+
- 签约材料通过后直接提交;服务创建摘要后直接创建,修改仍确认;当前候选列表选择“新建”且重查未变化后直接创建,用户公钥直接生成官方确认页,校验成功后直接提审。均不增加额外确认点;按量付费沙箱测试仍属 Integration 默认动作。
|
|
80
82
|
- 当前终点汇总代码、沙箱、签约、服务、应用和待办;人工待验证项带入 Onboarding Step 6,不增加确认。有待生效/审核/验证或配置缺口时不得宣称生产就绪。
|