相应的角色:管理员代理
本文介绍如何在合作伙伴中心使用 REST API 来接受客户的订阅转让。 示例包括 REST 语法、标头和 REST 响应。
注意
本文仅适用于传统的基于许可证的服务,不适用于新的商业体验。 有关转移基于许可证的新订阅的详细信息,请参阅 新的商业转移文章。
先决条件
- 合作伙伴中心身份验证中所述的凭据。 此方案支持使用独立应用和“应用 + 用户”凭据进行身份验证。
- 客户 ID (
customer-tenant-id
)。 如果不知道客户的 ID,可以在合作伙伴中心选择“客户”工作区,从客户列表中选择客户,然后选择“帐户”来查找该 ID。 在客户的“帐户”页上的“客户帐户信息”部分查找 Microsoft ID。 Microsoft ID 与客户 ID (customer-tenant-id
) 相同。 - 现有传输的传输标识符。
REST 请求
请求语法
方法 | 请求 URI |
---|---|
POST | {baseURL}/v1/customers/{customer-id}/transfers/{transfer-id}/accept HTTP/1.1 |
URI 参数
使用以下路径参数标识客户并指定要接受的转让。
名称 | 类型 | 必需 | 说明 |
---|---|---|---|
customer-id | 字符串 | 是 | GUID 格式的客户 ID,用于标识客户。 |
transfer-id | 字符串 | 是 | GUID 格式的转让 ID,用于标识转让。 |
请求标头
有关详细信息,请参阅合作伙伴中心 REST 标头。
请求示例
POST /v1/customers/d6bf25b7-e0a8-4f2d-a31b-97b55cfc774d/transfers/aa2bddb6-9cc8-4949-80fe-a37d5e0a13ba/accept HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: 8389053b-731c-4261-9899-1583d7859153
X-Locale: en-US
Content-Type: application/json
Host: api.partnercenter.microsoft.com
Content-Length: 0
REST 响应
如果成功,此方法会在响应正文中返回填充的 TransferSubmitResult 资源。
响应成功和错误代码
每个响应都带有一个 HTTP 状态代码,用于指示成功或失败以及额外调试信息。 使用网络跟踪工具读取此代码、错误类型和其他参数。 有关完整列表,请参阅错误代码。
响应示例
HTTP/1.1 200 OK
Content-Length: 3389
Content-Type: application/json; charset=utf-8
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: 8389053b-731c-4261-9899-1583d7859153
X-Locale: en-US
Date: Wed, 25 Mar 2020 19:13:06 GMT
{
"orders": [
{
"id": "21b92393-ffce-4bc7-87c5-62cfa897d8f9",
"alternateId": "21b92393-ffce-4bc7-87c5-62cfa897d8f9",
"referenceCustomerId": "b67f0b00-f9e8-4c57-bcb5-0b8b95c6ccf0",
"billingCycle": "annual",
"currencyCode": "USD",
"lineItems": [
{
"lineItemNumber": 0,
"offerId": "5344C201-3099-44E5-B333-C3EB0401EDE0",
"termDuration": "P1Y",
"transactionType": "New",
"friendlyName": "Dynamics 365 Customer Engagement Plan (36 mo)",
"quantity": 1,
"partnerIdOnRecord": "5139005",
"links": {
}
}
],
"creationDate": "2020-03-25T22:24:23.183+00:00",
"status": "completed",
"transactionType": "UserPurchase",
"links": {
"self": {
"uri": "/customers/b67f0b00-f9e8-4c57-bcb5-0b8b95c6ccf0/orders/21b92393-ffce-4bc7-87c5-62cfa897d8f9",
"method": "GET",
"headers": [ ]
},
"patchOperation": {
"uri": "/customers/b67f0b00-f9e8-4c57-bcb5-0b8b95c6ccf0/orders/21b92393-ffce-4bc7-87c5-62cfa897d8f9",
"method": "PATCH",
"headers": [ ]
}
},
"attributes": {
"etag": "eyJpZCI6IjIxYjkyMzkzLWZmY2UtNGJjNy04N2M1LTYyY2ZhODk3ZDhmOSIsInZlcnNpb24iOjF9",
"objectType": "Order"
}
},
{
"id": "7414b8ea-c167-4cc4-bc8e-b43efc177a46",
"alternateId": "7414b8ea-c167-4cc4-bc8e-b43efc177a46",
"referenceCustomerId": "b67f0b00-f9e8-4c57-bcb5-0b8b95c6ccf0",
"billingCycle": "annual",
"currencyCode": "USD",
"lineItems": [
{
"lineItemNumber": 0,
"offerId": "1A90EE13-2CB4-4785-BB0F-542813F00A37",
"termDuration": "P1Y",
"transactionType": "New",
"friendlyName": "Dynamics 365 Business Central Essential",
"quantity": 1,
"partnerIdOnRecord": "5139005",
"links": {
}
}
],
"creationDate": "2020-03-25T22:24:34.59+00:00",
"status": "completed",
"transactionType": "UserPurchase",
"links": {
"self": {
"uri": "/customers/b67f0b00-f9e8-4c57-bcb5-0b8b95c6ccf0/orders/7414b8ea-c167-4cc4-bc8e-b43efc177a46",
"method": "GET",
"headers": [ ]
},
"patchOperation": {
"uri": "/customers/b67f0b00-f9e8-4c57-bcb5-0b8b95c6ccf0/orders/7414b8ea-c167-4cc4-bc8e-b43efc177a46",
"method": "PATCH",
"headers": [ ]
}
},
"attributes": {
"etag": "eyJpZCI6Ijc0MTRiOGVhLWMxNjctNGNjNC1iYzhlLWI0M2VmYzE3N2E0NiIsInZlcnNpb24iOjF9",
"objectType": "Order"
}
}
],
"transferErrors": [
{
"transferGroupId": "1",
"lineItems": [
{
"id": 1,
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"entitlementId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"offerId": "A4179D30-CC09-49F0-977E-DC2CB70B874F",
"friendlyName": "Project Online Essentials",
"quantity": 1,
"transferGroupId": "1",
"addonItems": [ ],
"partnerIdOnRecord": "5139005",
"billingCycle": "annual",
"sourceSubscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
}
],
"code": 900103,
"description": "Subscription SyncState must be SyncComplete for the Subscription to be a source in a Subscription Ownership Transfer. Subscription: aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e, current state: None",
"attributes": {
"objectType": "TransferError"
}
}
],
"attributes": {
"objectType": "TransferSubmitResult"
}
}