Bitzsoft.Integrations.ElectronicSignature.BestSign
1.0.0-alpha.10
This is a prerelease version of Bitzsoft.Integrations.ElectronicSignature.BestSign.
dotnet add package Bitzsoft.Integrations.ElectronicSignature.BestSign --version 1.0.0-alpha.10
NuGet\Install-Package Bitzsoft.Integrations.ElectronicSignature.BestSign -Version 1.0.0-alpha.10
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Bitzsoft.Integrations.ElectronicSignature.BestSign" Version="1.0.0-alpha.10" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Bitzsoft.Integrations.ElectronicSignature.BestSign" Version="1.0.0-alpha.10" />
<PackageReference Include="Bitzsoft.Integrations.ElectronicSignature.BestSign" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Bitzsoft.Integrations.ElectronicSignature.BestSign --version 1.0.0-alpha.10
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Bitzsoft.Integrations.ElectronicSignature.BestSign, 1.0.0-alpha.10"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Bitzsoft.Integrations.ElectronicSignature.BestSign@1.0.0-alpha.10
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Bitzsoft.Integrations.ElectronicSignature.BestSign&version=1.0.0-alpha.10&prerelease
#tool nuget:?package=Bitzsoft.Integrations.ElectronicSignature.BestSign&version=1.0.0-alpha.10&prerelease
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Bitzsoft.Integrations.ElectronicSignature.BestSign
上上签电子签章服务实现,基于上上签开放平台 API。
功能特性
- 完整实现
IElectronicSignatureProvider:覆盖合同发起、详情、下载、查看、撤销、签署 URL、签署状态、印章、模板、回调验签全部统一方法 - OAuth2 + RSA256 双层鉴权:
clientId+clientSecret换取access_token(自动刷新),请求体 MD5 → headers 字典序拼接 → RSA-SHA256 签名 - 回调验签:校验 developerId 匹配、时间戳新鲜度、RSA 签名(与出站签名算法对称),
callbackHeaders为空直接拒绝 - partial class 扩展:通过部分类暴露上上签全部 API(签署、模板、用户、实名认证、证据报告)
安装
dotnet add package Bitzsoft.Integrations.ElectronicSignature.BestSign
<PackageReference Include="Bitzsoft.Integrations.ElectronicSignature.BestSign" Version="1.0.0" />
配置
{
"BestSign": {
"ClientId": "your-client-id",
"ClientSecret": "your-client-secret",
"DeveloperId": "your-developer-id",
"PrivateKey": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----",
"PublicKey": "-----BEGIN PUBLIC KEY-----\n...\n-----END PUBLIC KEY-----",
"BaseUrl": "https://openapi.bestsign.cn",
"Timeout": "00:00:30"
}
}
| 参数 | 必填 | 默认值 | 说明 |
|---|---|---|---|
ClientId |
是 | — | OAuth2 客户端标识 |
ClientSecret |
是 | — | OAuth2 客户端密钥 |
DeveloperId |
是 | — | 开发者标识 |
PrivateKey |
是 | — | 开发者 RSA 私钥(PKCS#8 PEM,请求签名) |
PublicKey |
是 | — | 平台 RSA 公钥(PKCS#8 PEM,回调验签) |
BaseUrl |
否 | https://openapi.bestsign.cn |
API 基地址(测试 https://demotest.bestsign.cn) |
Timeout |
否 | 00:00:30 |
HTTP 请求超时(文件上传可调大) |
HttpClientName |
否 | BestSignElectronicSignatureProvider |
命名 HttpClient 标识 |
注册服务
using Bitzsoft.Integrations.ElectronicSignature.BestSign;
// 方式一:IConfiguration(默认读取 "BestSign" 配置节)
services.AddBitzsoftBestSignElectronicSignature(configuration);
或:
using Bitzsoft.Integrations.ElectronicSignature.BestSign;
// 方式二:委托配置
services.AddBitzsoftBestSignElectronicSignature(options =>
{
options.ClientId = "your-client-id";
options.ClientSecret = "your-client-secret";
options.DeveloperId = "your-developer-id";
options.PrivateKey = File.ReadAllText("private_key.pem");
options.PublicKey = File.ReadAllText("public_key.pem");
options.BaseUrl = "https://openapi.bestsign.cn";
});
请求审计
内置 Bitzsoft.Integrations.RequestLogging 出站请求记录管道,默认 NullRequestLogStore 不持久化。
// ① 默认:启用记录管道但不持久化(日志丢弃)
services.AddBitzsoftBestSignElectronicSignature(configuration);
// ② 持久化:宿主注册 IRequestLogStore 实现后,所有出站请求自动落库
services.AddRequestLogging<MyRequestLogStore>(opts =>
{
opts.MaxInMemoryBodyBytes = 64 * 1024; // 仅控制内存/加密临时文件切换,不截断正文
opts.SensitiveFields.Add("ClientSecret");
});
services.AddBitzsoftBestSignElectronicSignature(configuration);
使用示例
统一抽象
// 注入 IElectronicSignatureProvider,ProviderName == "BestSign"
// 上上签流程:上传文件 → 发起签署,返回合同编号
var createResult = await provider.CreateContractAsync(new SimpleContractRequest
{
Title = "采购合同",
FileName = "contract.pdf",
FileData = await File.ReadAllBytesAsync("contract.pdf"),
SignerName = "张三",
SignerPhone = "13800000000"
});
var contractNo = createResult.Data!;
// 查询详情、获取签署页面、下载合同
var detail = await provider.GetContractDetailAsync(contractNo);
var signUrl = await provider.GetSigningUrlAsync(contractNo, "account");
var bytes = await provider.DownloadContractAsync(contractNo);
扩展 API(partial class)
统一接口仅覆盖极简场景,复杂签署、模板、用户、认证、证据报告等通过 BestSignElectronicSignatureProvider 的 partial class 方法调用:
var bestSign = (BestSignElectronicSignatureProvider)provider;
// 通用 POST 查询
var result = await bestSign.QueryPostAsync(BestSignApis.StartSign, body: new { /* ... */ });
扩展方法按领域拆分:Signing(9)、Templates(7)、Users(8)、Verification(5)、Evidence(3)。
核心类型一览
| 类型 | 说明 |
|---|---|
BestSignOptions |
连接配置(ClientId / ClientSecret / DeveloperId / PrivateKey / PublicKey / BaseUrl / Timeout / HttpClientName) |
BestSignElectronicSignatureProvider |
IElectronicSignatureProvider 实现,partial class 暴露扩展 API |
BestSignCallbackParser |
IElectronicSignatureCallbackParser 实现 |
BestSignApis |
API 端点常量 |
BestSignQueryResult |
供应商响应解析 |
依赖
- Bitzsoft.Integrations.Compatibility:基础工具库
- Bitzsoft.Integrations.ElectronicSignature:统一抽象
- Bitzsoft.Integrations.RequestLogging:请求审计
相关包
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 is compatible. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net10.0
- Bitzsoft.Integrations.Compatibility (>= 1.0.0-alpha.10)
- Bitzsoft.Integrations.ElectronicSignature (>= 1.0.0-alpha.10)
- Bitzsoft.Integrations.RequestLogging (>= 1.0.0-alpha.10)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Http (>= 10.0.10)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.10)
-
net5.0
- Bitzsoft.Integrations.Compatibility (>= 1.0.0-alpha.10)
- Bitzsoft.Integrations.ElectronicSignature (>= 1.0.0-alpha.10)
- Bitzsoft.Integrations.RequestLogging (>= 1.0.0-alpha.10)
- Microsoft.Extensions.Configuration.Abstractions (>= 5.0.0)
- Microsoft.Extensions.Http (>= 5.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 5.0.0)
-
net8.0
- Bitzsoft.Integrations.Compatibility (>= 1.0.0-alpha.10)
- Bitzsoft.Integrations.ElectronicSignature (>= 1.0.0-alpha.10)
- Bitzsoft.Integrations.RequestLogging (>= 1.0.0-alpha.10)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Http (>= 10.0.10)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.10)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Bitzsoft.Integrations.ElectronicSignature.BestSign:
| Package | Downloads |
|---|---|
|
Bitzsoft.Integrations.All
Bitzsoft 第三方集成聚合包 — net5.0 包含传统连接器,net8.0+ 额外包含受上游 TFM 限制的 AI 模块 |
|
|
Bitzsoft.Integrations.ElectronicSignature.All
电子签章聚合包 — 包含君子签 / 法大大 / 爱签 / 上上签 / e签宝 / 契约锁 / 安证通 / 腾讯电子签全部实现 |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0-alpha.10 | 19 | 7/26/2026 |
| 1.0.0-alpha.9 | 65 | 7/12/2026 |
| 1.0.0-alpha.8 | 64 | 7/1/2026 |
| 1.0.0-alpha.7 | 78 | 6/16/2026 |
| 1.0.0-alpha.6 | 71 | 6/16/2026 |
| 1.0.0-alpha.5 | 76 | 6/14/2026 |
| 1.0.0-alpha.3 | 68 | 6/7/2026 |