取消購買軟體
您可以使用合作夥伴中心 API 來取消軟體訂閱和永久軟體購買(只要這些購買是在購買日期的取消視窗中進行)。 您不需要建立支援票證來進行這類取消,而且可以改用下列自助方法。
您也可以使用依 標識碼 API 更新訂用帳戶來取消軟體訂閱(不包括永久軟體)。
必要條件
- 認證,如合作夥伴中心驗證所述。 此案例支援使用獨立應用程式和 App+使用者認證進行驗證。
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 參數
使用下列查詢參數來取消軟體訂單。
名稱 | 類型 | 必要 | 描述 |
---|---|---|---|
customer-tenant-id | guid | Y | 此值是 GUID 格式的客戶租使用者識別碼,可讓轉銷商篩選屬於轉銷商之指定客戶的結果。 |
order-id | string | 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"
}
}