取消软件购买
可以使用合作伙伴中心 API 取消软件订阅和永久软件购买(只要这些购买是在购买日期的取消时段内购买的)。 无需创建支持票证即可进行此类取消,并且可以改用以下自助服务方法。
还可以通过使用 ID API 更新订阅来取消软件订阅(不包括永久性软件)。
先决条件
- 合作伙伴中心身份验证中所述的凭据。 此方案支持使用独立应用和 App+User 凭据进行身份验证。
C#
若要取消软件订单,
将帐户凭据传递给 CreatePartnerOperations 方法,以获取 IPartner 接口以获取合作伙伴操作。
选择要取消的特定 订单 。 使用客户标识符调用 Customers.ById()方法,后跟 Orders.ById()和订单标识符。
调用 Get 或 GetAsync 方法以检索顺序。
将 Order.Status 属性设置为
cancelled
.(可选)如果要指定要取消的特定行项,请将 Order.LineItems 设置为要取消的行项列表。
使用 Patch() 方法更新订单。
// IPartnerCredentials accountCredentials;
// string customerTenantId;
IPartner accountPartnerOperations = PartnerService.Instance.CreatePartnerOperations(accountCredentials);
// Cancel order
var order = accountPartnerOperations.Customers.ById(customerTenantId).Orders.ById(orderId).Get();
order.Status = "cancelled";
order.LineItems = new List<OrderLineItem> {
order.LineItems.First()
};
order = accountPartnerOperations.Customers.ById(customerTenantId).Orders.ById(orderId).Patch(order);
REST 请求
请求语法
方法 | 请求 URI |
---|---|
PATCH | {baseURL}/v1/customers/{customer-tenant-id}/orders/{order-id} HTTP/1.1 |
URI 参数
使用以下查询参数取消软件订单。
名称 | Type | 必需 | 说明 |
---|---|---|---|
customer-tenant-id | guid | Y | 此值是 GUID 格式的客户租户标识符,允许经销商筛选属于经销商的给定客户的结果。 |
order-id | 字符串 | Y | 该值是一个字符串,表示要取消的顺序的标识符。 |
请求标头
有关详细信息,请参阅合作伙伴中心 REST 标头。
请求正文
{
"id": "c403d91b21d2",
"status": "cancelled",
"lineItems": [
{
"lineItemNumber": 0,
"offerId": "DG7GMGF0FKZV:0003:DG7GMGF0DWMS"
}
]
}
请求示例
PATCH https://api.partnercenter.microsoft.com/v1/customers/<customer-tenant-id>/orders/<order-id> HTTP/1.1
Accept: application/json
MS-RequestId: 655890ba-4d2b-4d09-a95f-4ea1348686a5
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
{
"id": "c403d91b21d2",
"status": "cancelled",
"lineItems": [
{
"lineItemNumber": 0,
"offerId": "DG7GMGF0FKZV:0003:DG7GMGF0DWMS"
}
]
}
REST 响应
如果成功,此方法将返回包含已取消行项的顺序。
如果订单中的所有行项都被取消,则订单状态将标记为已取消;如果订单中的所有行项未取消,则订单状态将被标记为已取消。
响应的成功和错误代码
每个响应都有一个 HTTP 状态代码,指示成功或失败和其他调试信息。 使用网络跟踪工具读取此代码、错误类型和参数。 如需完整列表,请参阅合作伙伴中心 REST 错误代码。
响应示例
在以下示例响应中,可以看到行项的数量已变为零(0)。 此更改意味着标记为取消的行项已成功取消。 示例订单包含未取消的其他行项,这意味着整体订单的状态将标记为 已完成,不会 取消。
HTTP/1.1 200 OK
Content-Length: 866
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: 655890ba-4d2b-4d09-a95f-4ea1348686a5
{
"id": "c403d91b21d2",
"alternateId": "c403d91b21d2",
"referenceCustomerId": "45411344-b09d-47e7-9653-542006bf9766",
"billingCycle": "one_time",
"currencyCode": "USD",
"currencySymbol": "$",
"lineItems": [
{
"lineItemNumber": 0,
"offerId": "DG7GMGF0FKZV:0003:DG7GMGF0DWMS",
"termDuration": "P3Y",
"transactionType": "New",
"friendlyName": "SQL Server Enterprise - 2 Core License Pack - 3 year",
"quantity": 0,
"links": {
"product": {
"uri": "/products/DG7GMGF0FKZV?country=US",
"method": "GET",
"headers": []
},
"sku": {
"uri": "/products/DG7GMGF0FKZV/skus/0003?country=US",
"method": "GET",
"headers": []
},
"availability": {
"uri": "/products/DG7GMGF0FKZV/skus/0003/availabilities/DG7GMGF0DWMS?country=US",
"method": "GET",
"headers": []
}
}
},
{
"lineItemNumber": 1,
"offerId": "DG7GMGF0DVT7:000C:DG7GMGF0FVZM",
"termDuration": "P3Y",
"transactionType": "New",
"friendlyName": "Windows Server CAL - 1 Device CAL - 3 year",
"quantity": 1,
"links": {
"product": {
"uri": "/products/DG7GMGF0DVT7?country=US",
"method": "GET",
"headers": []
},
"sku": {
"uri": "/products/DG7GMGF0DVT7/skus/000C?country=US",
"method": "GET",
"headers": []
},
"availability": {
"uri": "/products/DG7GMGF0DVT7/skus/000C/availabilities/DG7GMGF0FVZM?country=US",
"method": "GET",
"headers": []
}
}
}
],
"creationDate": "2019-12-12T17:33:56.1306495Z",
"status": "completed",
"transactionType": "UserPurchase",
"links": {
"self": {
"uri": "/customers/45411344-b09d-47e7-9653-542006bf9766/orders/c403d91b21d2",
"method": "GET",
"headers": []
},
"provisioningStatus": {
"uri": "/customers/45411344-b09d-47e7-9653-542006bf9766/orders/c403d91b21d2/provisioningstatus",
"method": "GET",
"headers": []
},
"patchOperation": {
"uri": "/customers/45411344-b09d-47e7-9653-542006bf9766/orders/c403d91b21d2",
"method": "PATCH",
"headers": []
}
},
"client": {
"marketplaceCountry": "US",
"deviceFamily": "UniversalStore-PartnerCenter",
"name": "Partner Center API"
},
"attributes": {
"objectType": "Order"
}
}