Skip to content
Bitzsoft.Integrationsbitzsoft.integrations

Reference

Microsoft Dynamics 365

Bitzsoft.Integrations.Crm.Dynamics365 包参考——Azure AD Bearer、OData v4、ICrmService 配置与使用示例。

Last updated

Microsoft Dynamics 365 基于 Dataverse Web API(OData v4),实现 ICrmService 统一接口。

包信息

NuGet 包Bitzsoft.Integrations.Crm.Dynamics365
实现接口ICrmService
Provider IDdynamics-365
鉴权方式Azure AD Client Credentials OAuth2(Bearer),外部换令牌后直接传入
API 协议OData v4(application/json
默认 BaseUrl无(需配置,形如 https://{org}.crm.dynamics.com/api/data/v9.2
区域Global

本实现直接接收已获取的 Access Token,适用于令牌由外部 Token 管理器统一刷新的场景。凭据通过 Azure 应用注册的 ClientId / ClientSecret 获取访问令牌。

配置字段

字段类型必填默认值说明
AccessTokenstringAzure AD 访问令牌(由 Client Credentials 流程在外部获取)
BaseUrlstringAPI 基地址,形如 https://{org}.crm.dynamics.com/api/data/v9.2
HttpClientNamestringCrmDynamics365业务 HttpClient 命名

配置 JSON 示例

{
"Crm": {
"Dynamics365": {
"AccessToken": "eyJ0eXAiOiJKV1Qi...",
"BaseUrl": "https://myorg.crm.dynamics.com/api/data/v9.2"
}
}
}

DI 注册

// 从配置节注册(默认节名 Crm:Dynamics365)
services.AddDynamics365Crm(configuration);
// 或用回调单独配置
services.AddDynamics365Crm(options =>
{
options.AccessToken = "eyJ0eXAiOiJKV1Qi...";
options.BaseUrl = "https://myorg.crm.dynamics.com/api/data/v9.2";
});

使用示例

public class OpportunityService
{
private readonly ICrmService _crm;
public OpportunityService(ICrmService crm) => _crm = crm;
public Task<List<CrmOpportunity>> ListOpenAsync()
=> _crm.ListOpportunitiesAsync(new ListOpportunitiesRequest
{
Stage = "Open"
});
public Task<CrmResult> AdvanceStageAsync(string opportunityId, string nextStage)
=> _crm.UpdateOpportunityStageAsync(opportunityId, nextStage);
}

依赖

说明
Bitzsoft.Integrations.Crm客户关系管理服务抽象层
Bitzsoft.Integrations.Core公共基座
Bitzsoft.Integrations.ODataOData v4 查询支持

已知限制

  • 本包不内置令牌刷新逻辑,Access Token 须由外部 Token 管理器定期刷新后更新配置。

100%

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