Skip to content
Bitzsoft.Integrationsbitzsoft.integrations

Guide

安装方式

单域包、聚合包和全量包的安装策略与选型建议。

Last updated

安装哪个包取决于你用几家厂商。库提供三种粒度,从细到粗递增。

方式一:安装单个厂商包

只用一家厂商时,直接安装对应的厂商实现包。它会把抽象层和基础设施作为传递依赖拉进来。

Terminal window
# 只用支付宝
dotnet add package Bitzsoft.Integrations.Payment.Alipay
// ① 注册时调对应的 AddBitzsoft 方法
builder.Services.AddBitzsoftAlipayPayment(builder.Configuration.GetSection("Alipay"));
// ② 直接注入能力接口
app.MapPost("/pay", async (IPaymentProvider payment) =>
{
var result = await payment.CreateOrderAsync(request);
return result.IsSuccess ? Results.Ok(result.Data) : Results.BadRequest(result.ErrorMessage);
});

适用场景:只集成一家厂商,确定不扩展。

方式二:安装域聚合包(推荐)

用同域多家厂商时,安装聚合包 .All。它把域内全部厂商拉进来,按配置节存在性自动注册。

Terminal window
# 安装 Payment 聚合包(含 Alipay + WeChatPay + Stripe)
dotnet add package Bitzsoft.Integrations.Payment.All
// appsettings.json — 只写需要的厂商,不需要的省略
{
"Payment": {
"Alipay": {
"AppId": "2021...",
"AppPrivateKey": "...",
"AlipayPublicKey": "..."
},
"WeChatPay": {
"AppId": "wx...",
"MchId": "...",
"ApiV3Key": "..."
}
}
}
// ① 一行注册,自动按配置节存在性注册对应厂商
builder.Services.AddBitzsoftPaymentAll(builder.Configuration, "Payment");
// ② 多厂商场景注入 Resolver 按需路由
app.MapPost("/pay/{provider}", async (
string provider,
IIntegrationProviderResolver<IPaymentProvider> providers,
PaymentOrderRequest request) =>
{
// ③ 按稳定 Provider ID 解析(大小写不敏感)
var payment = providers.GetRequired(provider);
var result = await payment.CreateOrderAsync(request);
return result.IsSuccess ? Results.Ok(result.Data) : Results.BadRequest(result.ErrorMessage);
});

适用场景:同域多家厂商,或未来可能扩展。

方式三:安装全量聚合包

需要跨域集成时,安装 Bitzsoft.Integrations.All,它引用全部模块。

Terminal window
dotnet add package Bitzsoft.Integrations.All

适用场景:微服务或集成中间层,需要同时接入多个功能域。

选型建议

场景推荐安装理由
只用一家厂商厂商包最小依赖
同域多家厂商域聚合包 .All配置驱动注册,扩展方便
跨域集成全量包 Integrations.All一次安装全部能力
需要兼容 net5.0按域安装(不用全量包)全量包不目标 net5.0

Sms 域特殊说明

Sms 是唯一不拆包的域。所有 6 家供应商在同一个包里:

Terminal window
dotnet add package Bitzsoft.Integrations.Sms

注册时直接调 AddXxxSms()(不带 Bitzsoft 前缀),详见 Sms 域手册

100%

滚轮或按钮缩放 · 放大后拖动画面 · 双击切换 100% / 200%