重要
本文介绍仅在 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,然后为客户创建协议:
使用 增强型客户证明 API 生成新的认证对象(认证 ID)。
构造可在任何结帐流程中使用的可嵌入组件的 URL,以接受 MCA。 你需要确保客户能使用 Microsoft 提供的参数化链接看到并接受 MCA。
使用证明 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 的示例
<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。