Anulowanie zakupów oprogramowania
Interfejsy API Centrum partnerskiego umożliwiają anulowanie subskrypcji oprogramowania i bezterminowych zakupów oprogramowania (o ile te zakupy zostały dokonane w oknie anulowania od daty zakupu). Nie musisz tworzyć biletu pomocy technicznej w celu dokonania takich odwołań i zamiast tego można użyć następujących metod samoobsługi.
Możesz również anulować subskrypcje oprogramowania (nie dotyczy to oprogramowania bezterminowego) za pomocą interfejsu API Aktualizuj subskrypcję według identyfikatora.
Warunki wstępne
- Poświadczenia zgodnie z opisem w Uwierzytelnianie Centrum Partnerów. Ten scenariusz obsługuje uwierzytelnianie przy użyciu zarówno samodzielnych poświadczeń aplikacji, jak i połączenia poświadczeń aplikacji oraz użytkownika.
C#
Aby anulować zamówienie oprogramowania,
Przekaż dane uwierzytelniające konta do metody CreatePartnerOperations, aby uzyskać interfejs IPartner i uzyskać dostęp do operacji partnerskich.
Wybierz określone zamówienie, które chcesz anulować. Wywołaj metodę Customers.ById() z identyfikatorem klienta, a następnie metodę Orders.ById() z identyfikatorem zamówienia.
Wywołaj metodę Get lub GetAsync, aby pobrać zamówienie.
Ustaw właściwość Order.Status na wartość
cancelled
.(Opcjonalnie) Jeśli chcesz określić niektóre elementy wiersza do anulowania, ustaw Order.LineItems na listę elementów wiersza, które chcesz anulować.
Użyj metody Patch(), aby zaktualizować zamówienie.
// 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);
Żądanie REST
Składnia żądania
Metoda | Żądanie URI |
---|---|
PATCH | {baseURL}/v1/customers/{customer-tenant-id}/orders/{order-id} HTTP/1.1 |
Parametry identyfikatora URI
Użyj następujących parametrów zapytania, aby anulować zamówienie oprogramowania.
Nazwa | Typ | Wymagane | Opis |
---|---|---|---|
identyfikator-najemcy-klienta | guid | Y | Wartość jest identyfikatorem klienta dzierżawy w formacie GUID, który umożliwia odsprzedawcy filtrowanie wyników dla klienta, który należy do odsprzedawcy. |
identyfikator zamówienia | ciąg | Y | Wartość jest ciągiem, który określa identyfikator zamówienia, które chcesz anulować. |
Nagłówki zapytań
Aby uzyskać więcej informacji, zobacz nagłówki REST w Centrum Partnerów.
Treść żądania
{
"id": "c403d91b21d2",
"status": "cancelled",
"lineItems": [
{
"lineItemNumber": 0,
"offerId": "DG7GMGF0FKZV:0003:DG7GMGF0DWMS"
}
]
}
Przykład żądania
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"
}
]
}
Odpowiedź REST
Jeśli operacja powiedzie się, ta metoda zwraca zamówienie z anulowanymi pozycjami.
Stan zamówienia zostanie oznaczony jako anulowany, jeśli wszystkie elementy wiersza w zamówieniu zostaną anulowane, lub ukończone, jeśli nie wszystkie elementy wiersza w zamówieniu zostaną anulowane.
Kody sukcesu i błędów odpowiedzi
Każda odpowiedź zawiera kod stanu HTTP, który wskazuje powodzenie lub niepowodzenie i inne informacje o debugowaniu. Użyj narzędzia do śledzenia sieci, aby odczytać ten kod, typ błędu i parametry. Aby uzyskać pełną listę, zobacz Kody błędów REST Centrum partnerskiego.
Przykład odpowiedzi
W poniższej przykładowej odpowiedzi widać, że ilość elementu wiersza stała się zero (0). Ta zmiana oznacza, że element wiersza oznaczony do anulowania został pomyślnie anulowany. Przykładowe zamówienie zawiera inne pozycje zamówienia, które nie zostały anulowane, co oznacza, że stan ogólnego zamówienia zostanie oznaczony jako ukończony, a nie jako anulowany.
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"
}
}