基于安证通(悦文云文档)平台 API 实现,采用 SHA256 header 签名机制。
包信息
- NuGet 包:
Bitzsoft.Integrations.ElectronicSignature.Anzhengtong - 接口:
IElectronicSignatureProvider - 鉴权:SHA256 header 签名(AppId / AppSecret)
- Provider ID:
Anzhengtong
配置
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
AppId | string | 是 | — | 应用 ID(悦文云文档后台分配) |
AppSecret | string | 是 | — | 应用密钥(参与 SHA-256 签名计算) |
Version | string | 否 | 1.0 | API 版本号(固定值) |
BaseUrl | string | 是 | — | API 基地址(格式 http://IP:PORT,由部署环境决定) |
Timeout | TimeSpan | 否 | 00:00:30 | HTTP 请求超时(文件上传可调大) |
HttpClientName | string | 否 | AnzhengtongElectronicSignatureProvider | 命名 HttpClient 标识 |
{ "Anzhengtong": { "AppId": "your-app-id", "AppSecret": "your-app-secret", "Version": "1.0", "BaseUrl": "http://10.0.0.1:8080", "Timeout": "00:00:30" }}注册
using Bitzsoft.Integrations.ElectronicSignature.Anzhengtong;
// 方式一:IConfiguration(默认读取 "Anzhengtong" 配置节)services.AddBitzsoftAnzhengtongElectronicSignature(configuration);
// 方式二:委托配置services.AddBitzsoftAnzhengtongElectronicSignature(options =>{ options.AppId = "your-app-id"; options.AppSecret = "your-app-secret"; options.BaseUrl = "http://10.0.0.1:8080";});使用示例
var createResult = await provider.CreateContractAsync(new SimpleContractRequest{ Title = "工程合同", FileName = "contract.pdf", FileData = await File.ReadAllBytesAsync("contract.pdf"), SignerName = "周九", SignerPhone = "13300000000"});
var contractId = createResult.Data!;var detail = await provider.GetContractDetailAsync(contractId);var seals = await provider.ListSealsAsync();鉴权机制
- 将 AppId、AppSecret 及请求相关参数拼接后做 SHA-256 摘要,以签名头形式随请求发送。
已知限制
BaseUrl 无默认值,必须按悦文云文档实际部署环境填写。统一接口覆盖极简场景,复杂业务通过 partial class 扩展。