You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Microsoft Partner Center SDK识别并列出非营利组织客户?

解决Partner Center SDK筛选非营利组织客户的方法

我之前在做类似的Partner Center集成时,也碰到过这个头疼的问题——官方文档确实没明确提,但翻了SDK的源码和内部接口后,找到了可行的方案,分享给你:

核心思路:通过客户资格(Qualifications)识别非营利组织

Partner Center里的非营利客户,本质是拥有Nonprofit类型资格的客户。我们可以通过SDK获取每个客户的资格集合,判断是否包含对应类型来筛选。

具体实现代码

假设你已经初始化好了IAggregatePartner实例(这是Partner Center SDK的核心入口),可以这样写:

using Microsoft.Store.PartnerCenter;
using Microsoft.Store.PartnerCenter.Models.Customers;
using Microsoft.Store.PartnerCenter.Models.Qualifications;

// 初始化Partner Center客户端(这里省略你的认证逻辑,比如用App+User认证)
var partner = PartnerService.Instance.CreatePartnerOperations(credentials);

// 分页获取所有客户(避免一次性加载过多数据)
var customersPage = await partner.Customers.GetAsync();
do
{
    foreach (var customer in customersPage.Items)
    {
        try
        {
            // 获取该客户的所有资格信息
            var qualifications = await customer.Qualifications.GetAsync();
            
            // 检查是否包含非营利相关资格(注意兼容旧类型)
            var isNonprofit = qualifications.Items.Any(q => 
                q.QualificationType.Equals("Nonprofit", StringComparison.OrdinalIgnoreCase) ||
                q.QualificationType.Equals("MicrosoftNonprofit", StringComparison.OrdinalIgnoreCase));
            
            if (isNonprofit)
            {
                // 处理你的非营利客户逻辑
                Console.WriteLine($"找到非营利客户:ID={customer.Id}, 名称={customer.CompanyProfile.CompanyName}");
            }
        }
        catch (Exception ex)
        {
            // 处理权限不足或其他异常(比如部分客户可能无法获取资格)
            Console.WriteLine($"获取客户{customer.Id}资格失败:{ex.Message}");
        }
    }

    // 翻页获取下一批客户
    customersPage = await customersPage.NextPageAsync();
} while (customersPage != null);

关键注意事项

  • 权限要求:你的Partner Center应用必须拥有Customer.ReadWriteAll或Customer.ReadAll的权限,否则会抛出权限不足的异常。
  • 兼容旧资格类型:部分早期加入的非营利客户,资格类型可能是MicrosoftNonprofit而非Nonprofit,所以建议同时检查这两个值。
  • 分页处理:如果你的客户数量较多,一定要用分页获取,避免内存溢出或API请求限制。
  • 异常处理:个别客户可能因为数据异常无法返回资格信息,记得加异常捕获,避免整个流程中断。

内容的提问来源于stack exchange,提问作者nzrytmn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:19:08