Bitzsoft.Integrations.Certification 1.0.0-alpha.10

This is a prerelease version of Bitzsoft.Integrations.Certification.
dotnet add package Bitzsoft.Integrations.Certification --version 1.0.0-alpha.10
                    
NuGet\Install-Package Bitzsoft.Integrations.Certification -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.Certification" 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.Certification" Version="1.0.0-alpha.10" />
                    
Directory.Packages.props
<PackageReference Include="Bitzsoft.Integrations.Certification" />
                    
Project file
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.Certification --version 1.0.0-alpha.10
                    
#r "nuget: Bitzsoft.Integrations.Certification, 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.Certification@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.Certification&version=1.0.0-alpha.10&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Bitzsoft.Integrations.Certification&version=1.0.0-alpha.10&prerelease
                    
Install as a Cake Tool

Bitzsoft.Integrations.Certification

Provider 发布认证工具包,面向 net5.0net8.0net10.0。它把 Descriptor、契约测试、DI smoke、包安装、sandbox 新鲜度和支持矩阵连接成可执行门禁, 避免把“代码存在”误写成“生产可用”。

安装与兼容性

dotnet add package Bitzsoft.Integrations.Certification

包支持 net5.0net8.0net10.0,主要用于 Provider 测试项目、CI 门禁和 支持矩阵生成,不应作为业务运行时依赖。

认证门槛

ProviderCertificationEvaluator 默认要求:

  • Descriptor 明确声明厂商、API 版本、鉴权方式、地域、环境、真实能力及最近契约验证时间;
  • 每个声明能力都有新鲜且通过的 mock contract 证据;
  • DI 和安全负向测试证据;
  • 声明 Webhook 或 Sync 能力时,分别具有专门证据;
  • net5.0net8.0net10.0 均有安装验证,或提供完整、可追溯的上游 TFM 例外;
  • 最近 90 天内完成 sandbox/live 验证,并记录凭据来源、API、地域、环境和测试数据清理。

认证报告只保留稳定机器码、安全说明和异常类型,不保存 secret、原始业务载荷或异常消息。

HTTP contract fixture

var handler = new ScriptedHttpMessageHandler()
    .Expect(HttpRequestExpectation.Respond(
        HttpMethod.Post,
        "/v1/customers",
        HttpStatusCode.Created,
        additionalMatch: request => request.Body.Length > 0));

using var client = new HttpClient(handler);
await client.PostAsync(
    "https://fixture.invalid/v1/customers",
    new ByteArrayContent(payload),
    cancellationToken);

handler.AssertComplete();

fixture 严格按顺序匹配 method/path,捕获完整原始正文和多值 Header。它不设置正文上限, 也不截断兆级请求;部署入口若需要限制,应由宿主显式配置。

HMAC Webhook fixture

HmacWebhookTestFixture 使用真实 IntegrationCredential 计算签名,还可以构建实际 IWebhookGateway、Verifier、Replay Store 和 Inbox 组成的测试容器:

var fixture = new HmacWebhookTestFixture("Payments:vendor");
var route = new WebhookRoute("tenant-a", fixture.ProviderKey);
using var credential = new IntegrationCredential(new[]
{
    new KeyValuePair<string, string>("WebhookSecret", webhookSecret)
});

var request = fixture.CreateSignedRequest(
    credential,
    rawBody,
    "delivery-123",
    "payment.updated",
    timestamp);

using var root = fixture.BuildGatewayServiceProvider(route, credential);
using var scope = root.CreateScope();
var result = await scope.ServiceProvider
    .GetRequiredService<IWebhookGateway>()
    .ReceiveAsync(route, request, cancellationToken);

DI smoke 与支持矩阵

var diResult = ProviderDiSmokeVerifier.Verify(services, descriptor);
var report = new ProviderCertificationEvaluator()
    .Evaluate(descriptor, manifest, DateTimeOffset.UtcNow);

var markdown = new ProviderSupportMatrixGenerator().RenderMarkdown(
    descriptors,
    manifests,
    reports);

支持矩阵以 Provider Descriptor 和认证对象为事实源,按 domain/provider 稳定排序并进行 Markdown 转义,适合在 CI 中生成知识库页面。

证据生命周期

认证结果是某个 Provider 版本、API、区域、环境与时间点的证据,不是永久背书。 SDK/API 升级、鉴权变更、能力声明变化或超过策略新鲜度后必须重新认证。live/sandbox 记录不得保存凭据、业务正文或供应商异常原文;需要人工保存的外部证据应使用受控链接和 稳定摘要。

Product 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.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Bitzsoft.Integrations.Certification:

Package Downloads
Bitzsoft.Integrations.All

Bitzsoft 第三方集成聚合包 — net5.0 包含传统连接器,net8.0+ 额外包含受上游 TFM 限制的 AI 模块

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0-alpha.10 55 7/26/2026