销售易 CRM 基于销售易 Open API,实现 ICrmService 统一接口。
包信息
| 项 | 值 |
|---|---|
| NuGet 包 | Bitzsoft.Integrations.Crm.Xiaoshouyi |
| 实现接口 | ICrmService |
| Provider ID | xiaoshouyi |
| 鉴权方式 | OAuth2 Client Credentials(client_id + client_secret 换 access_token,Bearer 注入业务请求) |
| 默认 BaseUrl | https://api.xiaoshouyi.com |
| 区域 | CN |
凭据在销售易开发者中心创建应用后获取。本包内置 client_credentials 令牌换取与刷新流程。
配置字段
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
ClientId | string | 是 | — | OAuth2 客户端 ID |
ClientSecret | string | 是 | — | OAuth2 客户端密钥 |
BaseUrl | string | 否 | https://api.xiaoshouyi.com | 销售易 API 基地址 |
HttpClientName | string | 否 | CrmXiaoshouyi | 业务 HttpClient 命名 |
配置 JSON 示例
{ "Crm": { "Xiaoshouyi": { "ClientId": "synxxxxxxxxxxxx", "ClientSecret": "xxxxxxxxxxxxxxxxxxxxxxxx", "BaseUrl": "https://api.xiaoshouyi.com" } }}DI 注册
// 从配置节注册(默认节名 Crm:Xiaoshouyi)services.AddXiaoshouyiCrm(configuration);
// 或用回调单独配置services.AddXiaoshouyiCrm(options =>{ options.ClientId = "synxxxxxxxxxxxx"; options.ClientSecret = "xxxxxxxxxxxxxxxxxxxxxxxx"; options.BaseUrl = "https://api.xiaoshouyi.com";});使用示例
public class OpportunityService{ private readonly ICrmService _crm;
public OpportunityService(ICrmService crm) => _crm = crm;
public Task<CrmOpportunity> CreateAsync(string name, decimal amount) => _crm.CreateOpportunityAsync(new CreateOpportunityRequest { Name = name, Amount = amount });
public Task<List<CrmOpportunity>> ListByStageAsync(string stage) => _crm.ListOpportunitiesAsync(new ListOpportunitiesRequest { Stage = stage });}依赖
| 包 | 说明 |
|---|---|
Bitzsoft.Integrations.Crm | 客户关系管理服务抽象层 |
Bitzsoft.Integrations.Core | 公共基座 |
已知限制
- 需在销售易开发者中心创建应用并授予对应数据权限。