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:
Dapatkan antarmuka ke operasi untuk langganan.
var subscriptionOperations = partnerOperations.Customers.ById(customerId).Subscriptions.ById(subscriptionId);
Gunakan antarmuka tersebut untuk membuat instans objek langganan. Ini memberi Anda detail langganan induk, termasuk ID pesanan.
var parentSubscription = subscriptionOperations.Get();
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 } } };
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"
}
}
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk