Bagikan melalui


Membeli add-on ke langganan

Berlaku untuk: Pusat Mitra | Pusat Mitra yang dioperasikan oleh 21Vianet | Pusat Mitra untuk Microsoft Cloud for US Government

Cara membeli add-on ke langganan yang sudah ada.

Prasyarat

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

  • ID pelanggan (customer-tenant-id). Jika Anda tidak mengetahui ID pelanggan, Anda dapat mencarinya di Pusat Mitra dengan memilih ruang kerja Pelanggan , lalu pelanggan dari daftar pelanggan, lalu Akun. Pada halaman Akun pelanggan, cari ID Microsoft di bagian Info Akun Pelanggan . ID Microsoft sama dengan ID pelanggan (customer-tenant-id).

  • ID langganan. Ini adalah langganan yang sudah ada untuk membeli penawaran add-on.

  • ID penawaran yang mengidentifikasi penawaran add-on untuk dibeli.

Membeli add-on melalui kode

Saat membeli add-on ke langganan, Anda memperbarui pesanan langganan asli dengan pesanan untuk add-on. Dalam hal berikut, customerId adalah ID pelanggan, subscriptionId adalah ID langganan, dan addOnOfferId adalah ID penawaran untuk add-on.

Berikut langkah-langkahnya:

  1. Dapatkan antarmuka ke operasi untuk langganan.

    var subscriptionOperations = partnerOperations.Customers.ById(customerId).Subscriptions.ById(subscriptionId);
    
  2. Gunakan antarmuka tersebut untuk membuat instans objek langganan. Ini memberi Anda detail langganan induk, termasuk ID pesanan.

    var parentSubscription = subscriptionOperations.Get();
    
  3. Membuat instans objek Pesanan baru. Instans pesanan ini digunakan untuk memperbarui pesanan asli yang digunakan untuk membeli langganan. Tambahkan item satu baris ke urutan yang mewakili add-on.

    var orderToUpdate = new Order()
    {
        ReferenceCustomerId = customerId,
        LineItems = new List<OrderLineItem>()
        {
            new OrderLineItem()
            {
                LineItemNumber = 0,
                OfferId = addOnOfferId,
                FriendlyName = "Some friendly name",
                Quantity = 2,
                ParentSubscriptionId = subscriptionId
            }
        }
    };
    
  4. Perbarui pesanan asli untuk langganan dengan pesanan baru untuk add-on.

    Order updatedOrder = partnerOperations.Customers.ById(customerId).Orders.ById(parentSubscription.OrderId).Patch(orderToUpdate);
    

C#

Untuk membeli add-on, mulailah dengan mendapatkan antarmuka ke operasi langganan dengan memanggil metode IAggregatePartner.Customers.ById dengan ID pelanggan untuk mengidentifikasi pelanggan, dan metode Subscriptions.ById untuk mengidentifikasi langganan yang memiliki penawaran add-on. Gunakan antarmuka tersebut untuk mengambil detail langganan dengan memanggil Dapatkan. Detail langganan berisi ID pesanan pesanan langganan, yang merupakan pesanan yang akan diperbarui dengan add-on.

Selanjutnya, buat instans objek Order baru dan isi dengan satu instans LineItem yang berisi informasi untuk mengidentifikasi add-on, seperti yang ditunjukkan dalam cuplikan kode berikut. Anda akan menggunakan objek baru ini untuk memperbarui pesanan langganan dengan add-on. Terakhir, panggil metode Patch untuk memperbarui pesanan langganan, setelah pertama kali mengidentifikasi pelanggan dengan IAggregatePartner.Customers.ById dan pesanan dengan Orders.ById.

// IAggregatePartner partnerOperations;
// string customerId;
// string subscriptionId;
// string addOnOfferId;

// Get an interface to the operations for the subscription.
var subscriptionOperations = partnerOperations.Customers.ById(customerId).Subscriptions.ById(subscriptionId);

// Get the parent subscription details.
var parentSubscription = subscriptionOperations.Get();

// In order to buy an add-on subscription for this offer, we need to patch/update the order through which the base offer was purchased
// by creating an order object with a single line item which represents the add-on offer purchase.
var orderToUpdate = new Order()
{
    ReferenceCustomerId = customerId,
    LineItems = new List<OrderLineItem>()
    {
        new OrderLineItem()
        {
            LineItemNumber = 0,
            OfferId = addOnOfferId,
            FriendlyName = "Some friendly name",
            Quantity = 2,
            ParentSubscriptionId = subscriptionId
        }
    }
};

// Update the order to apply the add on purchase.
Order updatedOrder = partnerOperations.Customers.ById(customerId).Orders.ById(parentSubscription.OrderId).Patch(orderToUpdate);

Sampel: Aplikasi pengujian konsol. Proyek: Kelas Sampel SDK Pusat Mitra: AddSubscriptionAddOn.cs

Permintaan REST

Minta sintaks

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

Parameter URI

Gunakan parameter berikut untuk mengidentifikasi pelanggan dan pesanan.

Nama Jenis Diperlukan Deskripsi
customer-tenant-id guid Y Nilainya adalah id penyewa pelanggan berformat GUID yang mengidentifikasi pelanggan.
order-id guid Y Pengidentifikasi pesanan.

Header permintaan

Untuk informasi selengkapnya, lihat Header REST Pusat Mitra.

Isi permintaan

Tabel berikut ini menjelaskan properti dalam isi permintaan.

Pesanan

Nama Jenis Diperlukan Deskripsi
Id string N ID pesanan.
ReferenceCustomerId string Y ID pelanggan.
LineItems array objek Y Array objek OrderLineItem .
CreationDate string N Tanggal pesanan dibuat, dalam format tanggal-waktu.
Atribut objek N Berisi "ObjectType": "Order".

OrderLineItem

Nama Jenis Diperlukan Deskripsi
LineItemNumber nomor Y Nomor item baris, dimulai dengan 0.
OfferId string Y ID penawaran add-on.
SubscriptionId string N ID langganan add-on yang dibeli.
ParentSubscriptionId string Y ID langganan induk yang memiliki penawaran add-on.
FriendlyName string N Nama yang mudah diingat untuk item baris ini.
Kuantitas nomor Y Jumlah lisensi.
PartnerIdOnRecord string N PartnerID mitra rekaman.
Atribut objek N Berisi "ObjectType": "OrderLineItem".

Contoh permintaan

PATCH https://api.partnercenter.microsoft.com/v1/customers/4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04/orders/CF3B0E37-BE0B-4CDD-B584-D1A97D98A922 HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 17a2658e-d2cc-439b-a2f0-2aefd9344fbc
MS-CorrelationId: 60efdd24-17ef-4080-9b02-4fc315f916ff
X-Locale: en-US
Content-Type: application/json
Host: api.partnercenter.microsoft.com
Content-Length: 414
Expect: 100-continue

{
    "Id": null,
    "ReferenceCustomerId": "4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04",
    "LineItems": [{
            "LineItemNumber": 0,
            "OfferId": "2828BE95-46BA-4F91-B2FD-0BEF192ECF60",
            "SubscriptionId": null,
            "ParentSubscriptionId": "1C2B75C1-74A5-472A-A729-7F8CEFC477F9",
            "FriendlyName": "Some friendly name",
            "Quantity": 2,
            "PartnerIdOnRecord": null,
            "Attributes": {
                "ObjectType": "OrderLineItem"
            }
        }
    ],
    "CreationDate": null,
    "Attributes": {
        "ObjectType": "Order"
    }
}

Respons REST

Jika berhasil, metode ini mengembalikan urutan langganan yang diperbarui dalam isi respons.

Respons keberhasilan dan kode kesalahan

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

Contoh respons

HTTP/1.1 200 OK
Content-Length: 1135
Content-Type: application/json; charset=utf-8
MS-CorrelationId: 60efdd24-17ef-4080-9b02-4fc315f916ff
MS-RequestId: 17a2658e-d2cc-439b-a2f0-2aefd9344fbc
MS-CV: WtFy3zI8V0u2lnT9.0
MS-ServerId: 020021921
Date: Wed, 25 Jan 2017 23:01:08 GMT

{
    "id": "cf3b0e37-be0b-4cdd-b584-d1a97d98a922",
    "referenceCustomerId": "4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04",
    "billingCycle": "none",
    "lineItems": [{
            "lineItemNumber": 0,
            "offerId": "195416C1-3447-423A-B37B-EE59A99A19C4",
            "subscriptionId": "1C2B75C1-74A5-472A-A729-7F8CEFC477F9",
            "friendlyName": "new offer purchase",
            "quantity": 5,
            "links": {
                "subscription": {
                    "uri": "/customers/4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04/subscriptions/1C2B75C1-74A5-472A-A729-7F8CEFC477F9",
                    "method": "GET",
                    "headers": []
                }
            }
        }, {
            "lineItemNumber": 1,
            "offerId": "2828BE95-46BA-4F91-B2FD-0BEF192ECF60",
            "subscriptionId": "968BA1CF-C146-4ADF-A300-308DCF718EEE",
            "friendlyName": "Some friendly name",
            "quantity": 2,
            "links": {
                "subscription": {
                    "uri": "/customers/4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04/subscriptions/968BA1CF-C146-4ADF-A300-308DCF718EEE",
                    "method": "GET",
                    "headers": []
                }
            }
        }
    ],
    "creationDate": "2017-01-25T14:53:12.093-08:00",
    "links": {
        "self": {
            "uri": "/customers/4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04/orders/cf3b0e37-be0b-4cdd-b584-d1a97d98a922",
            "method": "GET",
            "headers": []
        }
    },
    "attributes": {
        "etag": "eyJpZCI6ImNmM2IwZTM3LWJlMGItNGNkZC1iNTg0LWQxYTk3ZDk4YTkyMiIsInZlcnNpb24iOjJ9",
        "objectType": "Order"
    }
}