使用合作伙伴中心 API 将试用订阅转换为付费订阅
注意
这些步骤不适用于新商务产品。 请参阅转换新的商业订阅文档,了解如何将新商务试用版转换为付费订阅
可以将试用订阅转换为付费订阅。
先决条件
合作伙伴中心身份验证中所述的凭据。 此方案只支持使用应用凭据和用户凭据进行身份验证。
客户 ID (
customer-tenant-id
)。 如果不知道客户的 ID,可以通过选择“客户”工作区,然后从客户列表中选择客户,然后选择“帐户”,在合作伙伴中心中查找该 ID。 在客户的“帐户”页上,在“客户帐户信息”部分查找 Microsoft ID。 Microsoft ID 与客户 ID (customer-tenant-id
) 相同。活动试用版订阅的订阅 ID。
可用的转换产品/服务。
通过代码将试用订阅转换为付费订阅
若要将试用订阅转换为付费订阅,必须先获取可用的试用转换集合。 然后,必须选择要购买的转换产品/服务。
转换产品/服务将指定默认为与试用订阅相同的许可证数量。 可以通过将 Quantity 属性设置为要购买的许可证数来更改此数量。
注意
无论购买的许可证数如何,试用版的订阅 ID 都会重复使用购买的许可证。 因此,试用实际上消失,并被购买所取代。
使用以下步骤通过代码转换试用订阅:
获取可用的订阅操作的接口。 必须标识客户并指定试用订阅的订阅标识符。
var subscriptionOperations = partnerOperations.Customers.ById(customerId).Subscriptions.ById(subscriptionId);
获取可用转换产品/服务的集合。 有关此方法的请求/响应的详细信息和详细信息,请参阅 获取试用转换产品/服务列表。
var conversions = subscriptionOperations.Conversions.Get();
选择转换产品/服务。 以下代码选择集合中的第一个转换产品/服务。
var selectedConversion = conversions.Items.ToList()[0];
(可选)指定要购买的许可证数。 默认值为试用订阅中的许可证数。
selectedConversion.Quantity = 10;
调用 Create 或 CreateAsync 方法,将试用订阅转换为付费订阅。
var convertResult = subscriptionOperations.Conversions.Create(selectedConversion);
C#
将试用订阅转换为付费订阅:
使用 IAggregatePartner.Customers.ById 方法和客户 ID 来标识客户。
使用试用订阅 ID 调用 Subscriptions.ById 方法,获取订阅操作的接口。 将对订阅操作接口的引用保存在本地变量中。
使用 Conversions 属性获取对转换的可用操作的接口,然后调用 Get 或 GetAsync 方法来检索可用转换产品/服务的集合。 你必须选择一个。 以下示例默认为第一个可用的转换。
使用对保存在局部变量中的订阅操作接口和 Conversions 属性的引用来获取对转换的可用操作的接口。
将所选转换产品/服务对象传递给 Create 或 CreateAsync 方法以尝试试用转换。
C# 示例
// IAggregatePartner partnerOperations;
// string customerId;
// string subscriptionId;
// Get subscription operations for the trial subscription.
var subscriptionOperations = partnerOperations.Customers.ById(customerId).Subscriptions.ById(subscriptionId);
// Get the available conversions.
var conversions = subscriptionOperations.Conversions.Get();
// If there are no conversions available, we're done.
// Otherwise, convert the trial to the first available conversion offer.
if (conversions.TotalCount <= 0)
{
System.Console.WriteLine("This subscription has no conversions");
}
else
{
// Default to the first conversion.
var selectedConversion = conversions.Items.ToList()[0];
// Convert the trial and return the result.
var convertResult = subscriptionOperations.Conversions.Create(selectedConversion);
}
REST 请求
请求语法
方法 | 请求 URI |
---|---|
POST | {baseURL}/v1/customers/{customer-id}/subscriptions/{subscription-id}/conversions HTTP/1.1 |
URI 参数
使用以下路径参数标识客户和试用订阅。
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
customer-id | string | 是 | 标识客户的 GUID 格式字符串。 |
subscription-id | string | 是 | 标识试用订阅的 GUID 格式字符串。 |
请求标头
有关详细信息,请参阅合作伙伴中心 REST 标头。
请求正文
填充的 转换 资源必须包含在请求正文中。
请求示例
POST https://api.partnercenter.microsoft.com/v1/customers/0c39d6d5-c70d-4c55-bc02-f620844f3fd1/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/conversions HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: bd0cde7f-ba87-4010-8a73-1190b641f2a4
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US
Content-Type: application/json
Host: api.partnercenter.microsoft.com
Content-Length: 234
Expect: 100-continue
{
"OfferId": "C0BD2E08-11AC-4836-BDC7-3712E744922F",
"TargetOfferId": "031C9E47-4802-4248-838E-778FB1D2CC05",
"OrderId": "D51A052E-043C-4A2A-AA37-2BB938CEF6C1",
"Quantity": 25,
"BillingCycle": "monthly",
"Attributes": {
"ObjectType": "Conversion"
}
}
REST 响应
如果成功,响应正文将 包含 ConversionResult 资源。
响应的成功和错误代码
每个响应都带有一个 HTTP 状态代码,用于指示成功或失败以及其他调试信息。 请使用网络跟踪工具来读取此代码、错误类型和其他参数。 有关完整列表,请参阅 合作伙伴中心错误代码。
响应示例
HTTP/1.1 200 OK
Content-Length: 211
Content-Type: application/json; charset=utf-8
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: bd0cde7f-ba87-4010-8a73-1190b641f2a4
MS-CV: kW4GzmhvHEqCq1ls.0
MS-ServerId: 030020643
Date: Thu, 15 Jun 2017 23:10:40 GMT
{
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"offerId": "C0BD2E08-11AC-4836-BDC7-3712E744922F",
"targetOfferId": "031C9E47-4802-4248-838E-778FB1D2CC05",
"attributes": {
"objectType": "ConversionResult"
}
}