Bagikan melalui


Membatalkan pembelian perangkat lunak

Anda dapat menggunakan API Pusat Mitra untuk membatalkan langganan perangkat lunak dan pembelian perangkat lunak abadi (selama pembelian tersebut dilakukan dalam jendela pembatalan dari tanggal pembelian). Anda tidak perlu membuat tiket dukungan untuk melakukan pembatalan tersebut, dan dapat menggunakan metode layanan mandiri berikut sebagai gantinya.

Anda juga dapat membatalkan langganan perangkat lunak (tidak termasuk perangkat lunak abadi) dengan menggunakan API Perbarui langganan berdasarkan ID .

Prasyarat

  • Kredensial seperti yang dijelaskan dalam autentikasi Pusat Mitra. Skenario ini mendukung autentikasi dengan kredensial Aplikasi mandiri dan Aplikasi+Pengguna.

C#

Untuk membatalkan pesanan perangkat lunak,

  1. Teruskan kredensial akun Anda ke metode CreatePartnerOperations untuk mendapatkan antarmuka IPartner untuk mendapatkan operasi mitra.

  2. Pilih Pesanan tertentu yang ingin Anda batalkan. Panggil metode Customers.ById() dengan pengidentifikasi pelanggan, diikuti oleh Orders.ById() dengan pengidentifikasi pesanan.

  3. Panggil metode Get atau GetAsync untuk mengambil pesanan.

  4. Atur properti Order.Status ke cancelled.

  5. (Opsional) Jika Anda ingin menentukan item baris tertentu untuk pembatalan, atur Order.LineItems ke daftar item baris yang ingin Anda batalkan.

  6. Gunakan metode Patch() untuk memperbarui pesanan.

// 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);

Permintaan REST

Minta sintaks

Metode URI Permintaan
PATCH {baseURL}/v1/customers/{customer-tenant-id}/orders/{order-id} HTTP/1.1

Parameter URI

Gunakan parameter kueri berikut untuk membatalkan pesanan perangkat lunak.

Nama Tipe Wajib Deskripsi
customer-tenant-id Guid Y Nilainya adalah pengidentifikasi penyewa pelanggan berformat GUID yang memungkinkan penjual memfilter hasil untuk pelanggan tertentu yang termasuk dalam penjual.
id pesanan string Y Nilai adalah string yang menunjukkan pengidentifikasi pesanan yang ingin Anda batalkan.

Header permintaan

Untuk informasi selengkapnya, lihat Header REST Pusat Mitra.

Isi permintaan

{
    "id": "c403d91b21d2",
    status": "cancelled",
    "lineItems": [
        {
            "lineItemNumber": 0,
            "offerId": "DG7GMGF0FKZV:0003:DG7GMGF0DWMS"
        }
    ]
}

Contoh permintaan

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: 1438ea3d-b515-45c7-9ec1-27ee0cc8e6bd

{
    "id": "c403d91b21d2",
    "status": "cancelled",
    "lineItems": [
        {
            "lineItemNumber": 0,
            "offerId": "DG7GMGF0FKZV:0003:DG7GMGF0DWMS"
        }
    ]
}

Respons REST

Jika berhasil, metode ini mengembalikan pesanan dengan item baris yang dibatalkan.

Status pesanan akan ditandai sebagai dibatalkan jika semua item baris dalam pesanan dibatalkan, atau diselesaikan jika tidak semua item baris dalam pesanan dibatalkan.

Kode kesalahan dan keberhasilan respons

Setiap respons dilengkapi dengan kode status HTTP yang menunjukkan keberhasilan atau kegagalan dan informasi penelusuran kesalahan lainnya. Gunakan alat pelacakan jaringan untuk membaca kode, jenis kesalahan, dan parameter ini. Untuk daftar lengkapnya, lihat Kode kesalahan REST Pusat Mitra.

Contoh tanggapan

Dalam contoh respons berikut, Anda dapat melihat bahwa kuantitas item baris telah menjadi nol (0). Perubahan ini berarti bahwa item baris yang ditandai untuk pembatalan telah berhasil dibatalkan. Contoh urutan berisi item baris lain yang tidak dibatalkan, yang berarti bahwa status pesanan keseluruhan akan ditandai sebagai selesai, tidak dibatalkan.

HTTP/1.1 200 OK
Content-Length: 866
MS-CorrelationId: 1438ea3d-b515-45c7-9ec1-27ee0cc8e6bd
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"
    }
}