使用 API 确认客户接受并创建 MCA 协议

重要

本文介绍仅在 CSP 集成沙盒(2025 年 4 月 11 日推出)中提供的体验。 该体验旨在于 2025 年 7 月 10 日正式发布。

适用于:合作伙伴中心

不适用于:由世纪互联运营的合作伙伴中心 |美国政府Microsoft云合作伙伴中心

合作伙伴中心目前仅支持在Microsoft公有云中确认客户接受Microsoft客户协议(MCA)。 本文介绍如何确认或重新确认客户接受 MCA,然后为特定客户创建协议。 此信息适用于间接提供商和直接计费 CSP 合作伙伴。 间接经销商无法使用此体验。

先决条件

  • 合作伙伴中心身份验证中所述的凭据。 此方案仅支持 AppOnly 身份验证。

  • 有关接受 MCA 的客户组织中的用户的信息,包括:

    • 名字
    • 姓氏
    • 电子邮件地址
    • 电话号码(可选)
    • 公司名称

如果客户更改了以下值,合作伙伴中心允许你为该客户创建另一个协议。 名字、姓氏、电子邮件地址和电话号码必须有所不同。 否则,合作伙伴会收到以下错误代码,因为创建了重复记录。

{
"code": 600061,
"message": "A partner confirmed agreement already exists for the customer.",
"description": "A partner confirmed agreement already exists for the customer.",
"errorName": "PartnerConfirmedAgreementAlreadyExists",
"isRetryable": false,
"parameters": {},
"errorMessageExtended": "InternalErrorCode=600061"
}

使用 API 创建合作伙伴证明和协议创建

增强的证明 API 可帮助合作伙伴创建和管理客户证明,这些证明可以嵌入到结帐流中。 然后,合作伙伴可以使用客户证明为特定客户创建协议。

若要确认或重新确认客户接受 MCA,然后为客户创建协议:

  1. 使用 增强型客户证明 API 生成新的认证对象(认证 ID)。

  2. 构造可在任何结帐流程中使用的可嵌入组件的 URL,以接受 MCA。 你需要确保客户能使用 Microsoft 提供的参数化链接看到并接受 MCA。

  3. 使用证明 ID,通过创建协议 API创建协议。

使用增强型客户证明 API

端点

POST https://api.partnercenter.microsoft.com/v{version}/attestations/enhanced

DESCRIPTION

为客户创建一个证明 ID,然后可以利用该 ID 来证明该客户的 MCA。

授权

  • 需要身份验证。

  • 需要 PartnerAuthorize(PartnerApiResource.PartnerConfirmation、ResourceAccess.Create)。

请求主体

字段 类型 必选 DESCRIPTION
country 字符串 是的 客户的国家/地区代码 (ISO 3166-1 alpha-2)
语言 字符串 是的 协议的首选语言
公司名称 字符串 是的 接受协议的公司的名称
signatoryFirstName 字符串 是的 签署协议的个人名字
signatoryLastName 字符串 是的 签署协议的个人姓氏
电子邮件地址 字符串 是的 签署人的电子邮件地址
电话号码 字符串 是的 签署人的电话号码

示例请求

{ “country”: “US”, “language”: “en”, “companyName”: “Contoso Ltd.”, “signatoryFirstName”: “John”, “signatoryLastName”: “Doe”, “emailAddress”: “johndoe@contoso.com”, “phoneNumber”: “+1-555-555-5555” }

响应

成功(201 已创建)

{ "attestationId": "00000000-0000-0000-0000-000000000000" }

错误响应

  • 400 错误请求:请求格式无效。

  • 401 未授权:缺少或无效的授权。

注释

证明 Id 的默认到期时间为 30 分钟。 过期时间可配置,可延长至 7 天。

使用可嵌入组件

增强型客户证明 API 返回的 AttestationId 可用作下面提到的链接的参数,以在可嵌入组件中向客户显示 MCA。 合作伙伴需要确保客户查看MCA(Microsoft客户协议)并通过Microsoft提供的参数化链接进行接受。

<iframe src="https://cdn.partner.microsoft.com/mca/?attestationid={id}"></iframe> 

该链接呈现 MCA 协议,并包含“接受协议”按钮;选择同一项,将调用一个 POST API,该 API 捕获客户接受 MCA 的意图。 这是合作伙伴成功调用 创建协议 API 的先决条件。

创建协议 API

代表客户创建协议。

POST https://api.partnercenter.microsoft.com/v{version}/customers/{customer_id}/agreements

URI 参数

名称 必选 类型 DESCRIPTION
客户编号 路径 正确 字符串 客户 ID
版本 路径 正确 字符串

请求标头

媒体类型:“application/json”

名称 必选 类型 DESCRIPTION
授权 正确 字符串 授权持有者令牌
ms-correlationid 字符串 用于在内部跟踪请求。 如果未提供 ms-correlationid,服务器会为每个请求生成一个新 ID
ms-cv 字符串 用于在内部跟踪请求。 如果未提供 ms-cv,服务器会为每个请求生成一个新请求
ms-requestid 字符串 用于实现请求的幂等性。 如果未提供 ms-requestid,则服务器会为每个请求生成一个新请求

请求主体

媒体类型:“application/json”

名称 类型 DESCRIPTION
协议 Microsoft.Partner.Service.Customers.Contracts.V1.Agreement 协议

反应

名称 类型 DESCRIPTION
200 正常 对象 OK 媒体类型:“application/json”、“text/json”、“application/xml”、“text/xml”
201 已创建 Microsoft.Partner.Service.Customers.Contracts.V1.Agreement 请求成功。 已成功创建协议。 媒体类型:“application/json”、“text/json”、“application/xml”、“text/xml”

定义

名称 DESCRIPTION
Microsoft.Partner.Service.Customers.Contracts.V1.Agreement
Microsoft.Partner.Service.Customers.Contracts.V1.Contact

Microsoft.Partner.Service.Customers.Contracts.V1.Agreement

名称 类型 DESCRIPTION
agreementLink 字符串
dateAgreed 字符串 客户接受协议的日期
primaryContact Microsoft.Partner.Service.Customers.Contracts.V1.Contact 有关接受 MCA 的客户组织的用户的信息,包括:firstName、lastName、email 和 phoneNumber (可选)注意:如果提供了 attestationId,则此字段可以留空。 如果未留空,此处的信息应与增强证明文档中的规范匹配。 未对照增强型客户证明 API 中的信息验证此处共享的 primaryContact 信息。 仅当未提供证明Id 时,才需要此字段,例如,如果合作伙伴使用的是 v1 或 旧的证明 API。 有关详细信息,请参阅本文中的 增强型客户证明 API

请参阅 示例请求 以了解有效负载。
模板ID 字符串 客户接受的协议类型的唯一标识符。 可以通过检索 MCA 的协议元数据来获取 MCA 的 templateId。 有关详细信息,请参阅“获取 MCA 的协议元数据”。
类型 enum:
- Microsoft云协议
- Microsoft客户协议
客户接受的协议类型。 如果客户接受 MCA,请使用“MicrosoftCustomerAgreement”。
userId 字符串
证明ID(新) GUID 增强型证明的 ID,使用增强型客户证明 API

Microsoft.Partner.Service.Customers.Contracts.V1.Contact

名称 类型 DESCRIPTION
电子邮件 字符串
firstName 字符串
lastName 字符串
电话号码 字符串

示例请求有效负载

使用增强证明 API 时的有效负载示例

{"userId": "80fdc6b6-ad7c-4783-be01-7b8002d2a949","attestationId": "d7cb60a6-b8d3-486a-b7f5-b17ef03d3427","templateId": "117a77b0-9360-443b-8795-c6dedc750cf9","dateAgreed": "2025-06-03T16:42:12","type": "MicrosoftCustomerAgreement"} 

如果用户想使用现有的证明方法(直到该方法不再支持),而不是使用新的增强型 API,则他们可以使用主要联系人详细信息调用创建协议 API。