388 lines
13 KiB
HTML
388 lines
13 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="generator" content="pandoc" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||
<meta name="author" content="系统设计团队" />
|
||
<title>福建水务营收系统-报装CA电子签章补充</title>
|
||
<style>
|
||
code{white-space: pre-wrap;}
|
||
span.smallcaps{font-variant: small-caps;}
|
||
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
||
div.column{flex: auto; overflow-x: auto;}
|
||
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||
/* The extra [class] is a hack that increases specificity enough to
|
||
override a similar rule in reveal.js */
|
||
ul.task-list[class]{list-style: none;}
|
||
ul.task-list li input[type="checkbox"] {
|
||
font-size: inherit;
|
||
width: 0.8em;
|
||
margin: 0 0.8em 0.2em -1.6em;
|
||
vertical-align: middle;
|
||
}
|
||
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
|
||
</style>
|
||
<link rel="stylesheet" href="output/document_style.css" />
|
||
<meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
</head>
|
||
<body>
|
||
<header id="title-block-header">
|
||
<h1 class="title">福建水务营收系统-报装CA电子签章补充</h1>
|
||
<p class="author">系统设计团队</p>
|
||
<p class="date">2024年12月19日</p>
|
||
</header>
|
||
<nav id="TOC" role="doc-toc">
|
||
<ul>
|
||
<li><a href="#福建水务营收系统报装电子签章设计补充说明"
|
||
id="toc-福建水务营收系统报装电子签章设计补充说明"><span
|
||
class="toc-section-number">1</span>
|
||
福建水务营收系统报装电子签章设计补充说明</a>
|
||
<ul>
|
||
<li><a href="#章节导航精简" id="toc-章节导航精简"><span
|
||
class="toc-section-number">1.1</span> 章节导航(精简)</a></li>
|
||
<li><a href="#文档定位与边界" id="toc-文档定位与边界"><span
|
||
class="toc-section-number">1.2</span> 文档定位与边界</a></li>
|
||
<li><a href="#集成架构与交互边界" id="toc-集成架构与交互边界"><span
|
||
class="toc-section-number">1.3</span> 集成架构与交互边界</a></li>
|
||
<li><a href="#接口清单与字段约定" id="toc-接口清单与字段约定"><span
|
||
class="toc-section-number">1.4</span> 接口清单与字段约定</a>
|
||
<ul>
|
||
<li><a href="#接口清单" id="toc-接口清单"><span
|
||
class="toc-section-number">1.4.1</span> 1. 接口清单</a></li>
|
||
<li><a href="#字段约定最小集" id="toc-字段约定最小集"><span
|
||
class="toc-section-number">1.4.2</span> 2. 字段约定(最小集)</a></li>
|
||
</ul></li>
|
||
<li><a href="#流程约束与状态管理" id="toc-流程约束与状态管理"><span
|
||
class="toc-section-number">1.5</span> 流程约束与状态管理</a>
|
||
<ul>
|
||
<li><a href="#签章状态机" id="toc-签章状态机"><span
|
||
class="toc-section-number">1.5.1</span> 1. 签章状态机</a></li>
|
||
<li><a href="#关键约束" id="toc-关键约束"><span
|
||
class="toc-section-number">1.5.2</span> 2. 关键约束</a></li>
|
||
</ul></li>
|
||
<li><a href="#异常补偿与重试机制" id="toc-异常补偿与重试机制"><span
|
||
class="toc-section-number">1.6</span> 异常补偿与重试机制</a></li>
|
||
<li><a href="#安全与合规控制" id="toc-安全与合规控制"><span
|
||
class="toc-section-number">1.7</span> 安全与合规控制</a></li>
|
||
<li><a href="#运维监控与发布管理" id="toc-运维监控与发布管理"><span
|
||
class="toc-section-number">1.8</span> 运维监控与发布管理</a>
|
||
<ul>
|
||
<li><a href="#监控指标" id="toc-监控指标"><span
|
||
class="toc-section-number">1.8.1</span> 1. 监控指标</a></li>
|
||
<li><a href="#发布与变更" id="toc-发布与变更"><span
|
||
class="toc-section-number">1.8.2</span> 2. 发布与变更</a></li>
|
||
</ul></li>
|
||
</ul></li>
|
||
</ul>
|
||
</nav>
|
||
<h1 data-number="1" id="福建水务营收系统报装电子签章设计补充说明"><span
|
||
class="header-section-number">1</span>
|
||
福建水务营收系统报装电子签章设计补充说明</h1>
|
||
<h2 data-number="1.1" id="章节导航精简"><span
|
||
class="header-section-number">1.1</span> 章节导航(精简)</h2>
|
||
<ul>
|
||
<li><a href="#sec-position">文档定位与边界</a></li>
|
||
<li><a href="#sec-architecture">集成架构与交互边界</a></li>
|
||
<li><a href="#sec-interface">接口清单与字段约定</a></li>
|
||
<li><a href="#sec-process">流程约束与状态管理</a></li>
|
||
<li><a href="#sec-retry">异常补偿与重试机制</a></li>
|
||
<li><a href="#sec-security">安全与合规控制</a></li>
|
||
<li><a href="#sec-ops">运维监控与发布管理</a></li>
|
||
</ul>
|
||
<p><a id="sec-position"></a></p>
|
||
<h2 data-number="1.2" id="文档定位与边界"><span
|
||
class="header-section-number">1.2</span> 文档定位与边界</h2>
|
||
<p>本文件是 <code>01_Detailed_Design.md</code> 中
|
||
<code>INST-002 工程管理</code>
|
||
下“合同签署与电子签章能力”的专项补充文档,重点补充:</p>
|
||
<ol type="1">
|
||
<li>泛微 CA 接口对接边界与字段约定;</li>
|
||
<li>签章任务状态流转、异常补偿和运维观测点;</li>
|
||
<li>合规与审计约束落地要求。</li>
|
||
</ol>
|
||
<p>权威边界:</p>
|
||
<ul>
|
||
<li>报装业务主流程以 <code>01_Detailed_Design.md</code> 为准;</li>
|
||
<li>CA 方案总览可参考
|
||
<code>../04_Appendix/03_CA_Integration_Summary.md</code>;</li>
|
||
<li>安全控制通用要求以
|
||
<code>../03_Technical_Design/04_Security_Design.md</code> 为准。</li>
|
||
</ul>
|
||
<p><a id="sec-architecture"></a></p>
|
||
<h2 data-number="1.3" id="集成架构与交互边界"><span
|
||
class="header-section-number">1.3</span> 集成架构与交互边界</h2>
|
||
<pre class="mermaid"><code>flowchart LR
|
||
subgraph INST[报装业务系统]
|
||
A[合同管理]
|
||
B[签章任务中心]
|
||
C[回执处理]
|
||
D[档案归档]
|
||
end
|
||
|
||
subgraph CA[泛微 CA 电子签章平台]
|
||
E[身份认证接口]
|
||
F[签章接口]
|
||
G[时间戳接口]
|
||
H[存证接口]
|
||
end
|
||
|
||
A --> B
|
||
B --> E
|
||
B --> F
|
||
B --> G
|
||
B --> H
|
||
F --> C
|
||
G --> C
|
||
H --> C
|
||
C --> D
|
||
</code></pre>
|
||
<p>边界说明:</p>
|
||
<ul>
|
||
<li>报装系统负责合同上下文、签署方信息、业务状态回写与档案归档;</li>
|
||
<li>泛微 CA 负责身份认证、签章执行、时间戳与存证;</li>
|
||
<li>回执成功后才允许进入“归档完成”状态。</li>
|
||
</ul>
|
||
<p><a id="sec-interface"></a></p>
|
||
<h2 data-number="1.4" id="接口清单与字段约定"><span
|
||
class="header-section-number">1.4</span> 接口清单与字段约定</h2>
|
||
<h3 data-number="1.4.1" id="接口清单"><span
|
||
class="header-section-number">1.4.1</span> 1. 接口清单</h3>
|
||
<table>
|
||
<colgroup>
|
||
<col style="width: 20%" />
|
||
<col style="width: 20%" />
|
||
<col style="width: 20%" />
|
||
<col style="width: 20%" />
|
||
<col style="width: 20%" />
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th>接口方向</th>
|
||
<th>业务接口编号</th>
|
||
<th>对接接口名称</th>
|
||
<th>关键输入</th>
|
||
<th>关键输出</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>报装系统 → CA</td>
|
||
<td><code>IF-INST-003</code></td>
|
||
<td>合同签署发起</td>
|
||
<td>合同ID、签署方、签署位置、业务流水号</td>
|
||
<td>签章任务ID、受理状态</td>
|
||
</tr>
|
||
<tr>
|
||
<td>报装系统 → CA</td>
|
||
<td><code>IF-INST-003</code></td>
|
||
<td>身份认证调用</td>
|
||
<td>用户标识、认证类型、认证要素</td>
|
||
<td>认证结果、认证凭证</td>
|
||
</tr>
|
||
<tr>
|
||
<td>报装系统 → CA</td>
|
||
<td><code>IF-INST-003</code></td>
|
||
<td>时间戳申请</td>
|
||
<td>签章摘要哈希、请求时间</td>
|
||
<td>时间戳令牌、签发时间</td>
|
||
</tr>
|
||
<tr>
|
||
<td>报装系统 → CA</td>
|
||
<td><code>IF-INST-003</code></td>
|
||
<td>存证申请</td>
|
||
<td>签章后文档摘要、元数据</td>
|
||
<td>存证ID、存证状态</td>
|
||
</tr>
|
||
<tr>
|
||
<td>CA → 报装系统</td>
|
||
<td><code>IF-INST-004</code></td>
|
||
<td>签章结果回执</td>
|
||
<td>任务ID、签章状态、凭证编号、失败原因</td>
|
||
<td>回写结果、重试标记</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 data-number="1.4.2" id="字段约定最小集"><span
|
||
class="header-section-number">1.4.2</span> 2. 字段约定(最小集)</h3>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>字段</th>
|
||
<th>说明</th>
|
||
<th>约束</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code>biz_trace_id</code></td>
|
||
<td>业务追踪ID</td>
|
||
<td>必填;同一签署流程全链路唯一</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>contract_id</code></td>
|
||
<td>合同ID</td>
|
||
<td>必填;与报装申请单关联</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>sign_task_id</code></td>
|
||
<td>签章任务ID</td>
|
||
<td>回执必填;用于幂等去重</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>sign_status</code></td>
|
||
<td>签署状态</td>
|
||
<td>必填;<code>INIT/PROCESSING/SUCCESS/FAILED</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>evidence_id</code></td>
|
||
<td>存证ID</td>
|
||
<td>成功场景必填</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>error_code</code></td>
|
||
<td>异常码</td>
|
||
<td>失败场景必填</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>error_message</code></td>
|
||
<td>异常描述</td>
|
||
<td>失败场景必填;可审计</td>
|
||
</tr>
|
||
<tr>
|
||
<td><code>callback_time</code></td>
|
||
<td>回执时间</td>
|
||
<td>必填;用于超时判断</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p><a id="sec-process"></a></p>
|
||
<h2 data-number="1.5" id="流程约束与状态管理"><span
|
||
class="header-section-number">1.5</span> 流程约束与状态管理</h2>
|
||
<h3 data-number="1.5.1" id="签章状态机"><span
|
||
class="header-section-number">1.5.1</span> 1. 签章状态机</h3>
|
||
<pre class="mermaid"><code>stateDiagram-v2
|
||
[*] --> INIT
|
||
INIT --> PROCESSING: 发起签署
|
||
PROCESSING --> SUCCESS: 回执成功
|
||
PROCESSING --> FAILED: 回执失败
|
||
FAILED --> PROCESSING: 人工重试/系统重试
|
||
SUCCESS --> ARCHIVED: 完成归档
|
||
ARCHIVED --> [*]
|
||
</code></pre>
|
||
<h3 data-number="1.5.2" id="关键约束"><span
|
||
class="header-section-number">1.5.2</span> 2. 关键约束</h3>
|
||
<ol type="1">
|
||
<li>签章发起前必须完成合同正文固化与版本锁定;</li>
|
||
<li>同一 <code>sign_task_id</code>
|
||
回执必须幂等处理,禁止重复更新业务状态;</li>
|
||
<li>失败回执需记录错误码并进入补偿队列,不允许静默丢失;</li>
|
||
<li>归档完成前,合同状态不得标记为“签署完成可生效”。</li>
|
||
</ol>
|
||
<p><a id="sec-retry"></a></p>
|
||
<h2 data-number="1.6" id="异常补偿与重试机制"><span
|
||
class="header-section-number">1.6</span> 异常补偿与重试机制</h2>
|
||
<table>
|
||
<colgroup>
|
||
<col style="width: 25%" />
|
||
<col style="width: 25%" />
|
||
<col style="width: 25%" />
|
||
<col style="width: 25%" />
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th>异常类型</th>
|
||
<th>检测方式</th>
|
||
<th>处理策略</th>
|
||
<th>人工介入条件</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>网络超时</td>
|
||
<td>请求超时/连接异常</td>
|
||
<td>指数退避重试(最多3次)</td>
|
||
<td>连续失败或超时超过阈值</td>
|
||
</tr>
|
||
<tr>
|
||
<td>CA受理失败</td>
|
||
<td>返回失败码</td>
|
||
<td>写入补偿队列并通知业务端</td>
|
||
<td>失败码为不可恢复类</td>
|
||
</tr>
|
||
<tr>
|
||
<td>回执丢失</td>
|
||
<td>超时未回执</td>
|
||
<td>主动查询 + 重放回执校验</td>
|
||
<td>超过最大等待窗口</td>
|
||
</tr>
|
||
<tr>
|
||
<td>数据校验失败</td>
|
||
<td>字段缺失/签名不匹配</td>
|
||
<td>拒绝入库并告警</td>
|
||
<td>连续出现同类异常</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p>补偿要求:</p>
|
||
<ul>
|
||
<li>所有补偿任务必须带 <code>biz_trace_id</code>;</li>
|
||
<li>重试与人工补录均写入审计日志;</li>
|
||
<li>重试成功后需自动回补主流程状态。</li>
|
||
</ul>
|
||
<p><a id="sec-security"></a></p>
|
||
<h2 data-number="1.7" id="安全与合规控制"><span
|
||
class="header-section-number">1.7</span> 安全与合规控制</h2>
|
||
<ol type="1">
|
||
<li>传输安全:CA 对接链路统一使用 HTTPS,回执启用签名校验;</li>
|
||
<li>身份安全:签署方认证结果需与报装业务实名信息一致;</li>
|
||
<li>数据安全:合同摘要、签章凭证、存证编号需防篡改存储;</li>
|
||
<li>审计留痕:签章发起、回执处理、补偿重试、人工干预均需审计;</li>
|
||
<li>合规要求:执行《电子签名法》及项目安全设计文档中关于日志留痕、访问控制和数据保护要求。</li>
|
||
</ol>
|
||
<p><a id="sec-ops"></a></p>
|
||
<h2 data-number="1.8" id="运维监控与发布管理"><span
|
||
class="header-section-number">1.8</span> 运维监控与发布管理</h2>
|
||
<h3 data-number="1.8.1" id="监控指标"><span
|
||
class="header-section-number">1.8.1</span> 1. 监控指标</h3>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>指标</th>
|
||
<th>说明</th>
|
||
<th>建议阈值</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>签章成功率</td>
|
||
<td>成功任务 / 总任务</td>
|
||
<td>日均 ≥ 99%</td>
|
||
</tr>
|
||
<tr>
|
||
<td>回执时延P95</td>
|
||
<td>发起到回执耗时</td>
|
||
<td>≤ 5 秒</td>
|
||
</tr>
|
||
<tr>
|
||
<td>补偿队列积压</td>
|
||
<td>待补偿任务数</td>
|
||
<td>告警阈值按租户配置</td>
|
||
</tr>
|
||
<tr>
|
||
<td>幂等冲突次数</td>
|
||
<td>重复回执冲突数</td>
|
||
<td>连续异常触发告警</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 data-number="1.8.2" id="发布与变更"><span
|
||
class="header-section-number">1.8.2</span> 2. 发布与变更</h3>
|
||
<ol type="1">
|
||
<li>涉及 CA 字段或签名算法变更,需先更新本补充文档与接口设计文档;</li>
|
||
<li>发布前执行联调清单:签署成功、签署失败、回执重放、超时补偿;</li>
|
||
<li>发布后至少观察一个完整业务周期,确认签章成功率与回执时延稳定。</li>
|
||
</ol>
|
||
</body>
|
||
</html>
|