Bitzsoft.Integrations.Fxiaoke 1.0.0-alpha.10

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

Bitzsoft.Integrations.Fxiaoke

纷享销客 OpenAPI v2 多租户只读连接器,提供对象元数据、受控对象查询、深分页和 可恢复同步,支持 net5.0net8.0net10.0

安装

dotnet add package Bitzsoft.Integrations.Fxiaoke

已实现能力

  • 企业自建应用 appId + appSecret + permanentCode 令牌交换;
  • 按租户、endpoint profile、凭据和企业云隔离的 single-flight token 缓存;
  • 官方纷享、华为、阿里、香港华为、法兰克福和北美企业云;
  • authorizationx-fs-eax-fs-userid 公共参数;
  • 对象清单、对象描述、预设对象和自定义对象查询;
  • 固定 _id 排序的 keyset 深分页;
  • Full 与基于 last_modified_time 的 Incremental Sync;
  • token 过期码 20016 下,仅对只读调用刷新并重放一次。

凭据与权限

生产宿主必须提供加密、按租户解析的 IIntegrationCredentialResolver,凭据字段为:

AppId
AppSecret
PermanentCode

ActingUserId 是非密钥业务身份,应写入请求上下文或同步 profile,不应与应用密钥混存。 应用权限、数据范围和代调用员工权限均由纷享销客租户配置决定;首次上线需用目标角色 验证对象与字段可见性。

注册

services.AddBitzsoftFxiaoke(
    new FxiaokeEndpoint(FxiaokeCloud.Standard),
    new[]
    {
        new FxiaokeObjectSyncProfile(
            streamName: "Accounts",
            objectApiName: "AccountObj",
            actingUserId: "1001",
            fieldProjection: new[] { "name", "last_modified_time" })
    });

端点或同步 profile 随租户变化时,实现 IFxiaokeEndpointResolverIFxiaokeObjectSyncProfileResolver,使用 AddBitzsoftFxiaoke<TEndpointResolver, TSyncProfileResolver>()

查询示例

var context = new FxiaokeRequestContext(
    tenantId: "customer-a",
    actingUserId: "1001",
    profileId: "production",
    credentialName: "fxiaoke-app");

var objects = await client.ListObjectsAsync(context, cancellationToken);
var metadata = await client.DescribeObjectAsync(
    context,
    "AccountObj",
    cancellationToken: cancellationToken);

var page = await client.QueryObjectsAsync(
    context,
    new FxiaokeObjectQuery(
        objectApiName: "AccountObj",
        pageSize: 100,
        fieldProjection: new[] { "name", "last_modified_time" }),
    cancellationToken);

分页边界由响应的记录 ID 生成,调用方不要自行改写 _id 排序或混用不同对象、租户、 profile、字段形状的游标。自定义过滤必须使用 FxiaokeQueryFilter,连接器不接受任意 供应商查询 JSON。

同步语义

  • Full 在运行开始固定 _id 上界,避免无限追逐新写入;
  • Incremental 使用闭合 last_modified_time 上界;
  • 下界使用 GTE,因此属于至少一次投递,Sink 必须按 Id + Revision 幂等;
  • 可见的 is_deleted 转为 tombstone;
  • continuation 只推进当前运行,完整结束后才提交新的 delta 水位;
  • 不同 StreamName 应分别表示客户、联系人、订单或自定义对象。

纷享销客没有通用对象删除变更流。对象从查询结果彻底消失时无法仅靠增量发现,生产任务 必须周期性执行 Full reconcile。

安全、日志与限制

  • OAuth token 请求和响应正文显式禁止进入审计日志;
  • 普通业务请求和响应正文完整传递,不设置连接器级或 RequestLogging 强制大小上限;
  • 错误只暴露稳定错误码、分类和可安全诊断信息,不保留供应商原始错误正文;
  • 自动重放只用于 token 失效后的只读请求;
  • 当前不包含写操作、Webhook 或通用幂等写入;
  • 厂商没有通用幂等键的业务单据,必须按具体对象设计结果核对和补偿,不能盲目重试。

官方契约

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.Fxiaoke:

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 54 7/26/2026