fujian_water_biz_doc/output/03_CA_Esignature_Supplement.html

388 lines
13 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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 --&gt; B
B --&gt; E
B --&gt; F
B --&gt; G
B --&gt; H
F --&gt; C
G --&gt; C
H --&gt; C
C --&gt; 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
[*] --&gt; INIT
INIT --&gt; PROCESSING: 发起签署
PROCESSING --&gt; SUCCESS: 回执成功
PROCESSING --&gt; FAILED: 回执失败
FAILED --&gt; PROCESSING: 人工重试/系统重试
SUCCESS --&gt; ARCHIVED: 完成归档
ARCHIVED --&gt; [*]
</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>