Membuat pesanan untuk pelanggan menggunakan API Pusat Mitra
Berlaku untuk: Pusat Mitra | Pusat Mitra yang dioperasikan oleh 21Vianet | Pusat Mitra untuk Microsoft Cloud untuk Pemerintah AS
Membuat pesanan untuk produk instans VM yang dipesan Azure hanya berlaku untuk:
- Pusat Mitra
Untuk informasi tentang apa yang saat ini tersedia untuk dijual, lihat Penawaran mitra di program Penyedia Solusi Cloud.
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
).Pengidentifikasi penawaran.
C#
Untuk membuat pesanan bagi pelanggan:
Buat instans objek Pesanan dan atur properti ReferenceCustomerID ke ID pelanggan untuk merekam pelanggan.
Buat daftar objek OrderLineItem, dan tetapkan daftar ke properti LineItems pesanan. Setiap item baris pesanan berisi informasi pembelian untuk satu penawaran. Anda harus memiliki setidaknya satu item baris pesanan.
Dapatkan antarmuka untuk memesan operasi. Pertama, panggil metode IAggregatePartner.Customers.ById dengan ID pelanggan untuk mengidentifikasi pelanggan. Selanjutnya, ambil antarmuka dari properti Pesanan .
Panggil metode Buat atau BuatAsync dan teruskan objek Pesanan.
Untuk menyelesaikan pengesahan dan menyertakan pengecer tambahan, lihat sampel Sampel Permintaan dan Respons berikut:
Contoh permintaan
{
"PartnerOnRecordAttestationAccepted":true,
"lineItems": [
{
"offerId": "CFQ7TTC0LH0Z:0001:CFQ7TTC0K18P",
"quantity": 1,
"lineItemNumber": 0,
"PartnerIdOnRecord": "873452",
"AdditionalPartnerIdsOnRecord":["4847383","873452"]
}
],
"billingCycle": "monthly"
}
Contoh tanggapan
{
"id": "5cf72f146967",
"alternateId": "5cf72f146967",
"referenceCustomerId": "f81d98dd-c2f4-499e-a194-5619e260344e",
"billingCycle": "monthly",
"currencyCode": "USD",
"currencySymbol": "$",
"lineItems": [
{
"lineItemNumber": 0,
"offerId": "CFQ7TTC0LH0Z:0001:CFQ7TTC0K18P",
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"termDuration": "P1M",
"transactionType": "New",
"friendlyName": "AI Builder Capacity add-on",
"quantity": 1,
"partnerIdOnRecord": "873452",
"additionalPartnerIdsOnRecord": [
"4847383",
"873452"
],
"links": {
"product": {
"uri": "/products/CFQ7TTC0LH0Z?country=US",
"method": "GET",
"headers": []
},
"sku": {
"uri": "/products/CFQ7TTC0LH0Z/skus/0001?country=US",
"method": "GET",
"headers": []
},
"availability": {
"uri": "/products/CFQ7TTC0LH0Z/skus/0001/availabilities/CFQ7TTC0K18P?country=US",
"method": "GET",
"headers": []
}
}
}
],
"creationDate": "2021-08-17T18:13:11.3122226Z",
"status": "pending",
"transactionType": "UserPurchase",
"links": {
"self": {
"uri": "/customers/f81d98dd-c2f4-499e-a194-5619e260344e/orders/5cf72f146967",
"method": "GET",
"headers": []
},
"provisioningStatus": {
"uri": "/customers/f81d98dd-c2f4-499e-a194-5619e260344e/orders/5cf72f146967/provisioningstatus",
"method": "GET",
"headers": []
},
"patchOperation": {
"uri": "/customers/f81d98dd-c2f4-499e-a194-5619e260344e/orders/5cf72f146967",
"method": "PATCH",
"headers": []
}
},
"client": {},
"attributes": {
"objectType": "Order"
}
}
IAggregatePartner partnerOperations;
string customerId;
string offerId;
var order = new Order()
{
ReferenceCustomerId = customerId,
LineItems = new List<OrderLineItem>()
{
new OrderLineItem()
{
OfferId = offerId,
FriendlyName = "new offer purchase",
Quantity = 1,
ProvisioningContext = new Dictionary<string, string>
{
{ "subscriptionId", "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f" },
{ "scope", "shared" },
{ "duration", "3Years" }
}
}
}
};
var createdOrder = partnerOperations.Customers.ById(customerId).Orders.Create(order);
Sampel: Aplikasi pengujian konsol. Proyek: Kelas Sampel SDK Pusat Mitra: CreateOrder.cs
Permintaan REST
Minta sintaks
Metode | URI Permintaan |
---|---|
POST | {baseURL}/v1/customers/{customer-id}/orders HTTP/1.1 |
Parameter URI
Gunakan parameter jalur berikut untuk mengidentifikasi pelanggan.
Nama | Tipe | Wajib | Deskripsi |
---|---|---|---|
id pelanggan | string | Ya | ID pelanggan berformat GUID yang mengidentifikasi pelanggan. |
Header permintaan
Untuk informasi selengkapnya, lihat Header REST Pusat Mitra.
Isi permintaan
Pesanan
Tabel ini menjelaskan properti Pesanan dalam isi permintaan.
Properti | Tipe | Wajib | Deskripsi |
---|---|---|---|
id | string | No | Pengidentifikasi pesanan yang disediakan setelah pembuatan pesanan berhasil. |
referenceCustomerId | string | No | Pengidentifikasi pelanggan. |
billingCycle | string | No | Menunjukkan frekuensi yang ditagih mitra untuk pesanan ini. Nilai yang didukung adalah nama anggota yang ditemukan di BillingCycleType. Defaultnya adalah "Bulanan" atau "OneTime" pada pembuatan pesanan. Bidang ini diterapkan setelah pembuatan pesanan berhasil. |
lineItems | array sumber daya OrderLineItem | Ya | Daftar item penawaran yang dibeli pelanggan termasuk kuantitas. |
currencyCode | string | No | Baca-saja. Mata uang yang digunakan saat menempatkan pesanan. Diterapkan setelah pembuatan pesanan berhasil. |
creationDate | datetime | No | Baca-saja. Tanggal pesanan dibuat, dalam format tanggal-waktu. Diterapkan setelah pembuatan pesanan berhasil. |
status | string | No | Baca-saja. Status pesanan. Nilai yang didukung adalah nama anggota yang ditemukan di OrderStatus. |
links | OrderLinks | No | Tautan sumber daya yang sesuai dengan Pesanan. |
Atribut | ResourceAttributes | No | Atribut metadata yang sesuai dengan Pesanan. |
PartnerOnRecordAttestationAccepted | Boolean | Ya | Mengonfirmasi penyelesaian Pengesahan |
OrderLineItem
Tabel ini menjelaskan properti OrderLineItem di isi permintaan.
Catatan
PartnerIdOnRecord hanya boleh disediakan ketika penyedia tidak langsung melakukan pemesanan atas nama penjual tidak langsung. Ini digunakan untuk menyimpan PartnerID dari reseller tidak langsung saja (tidak pernah ID penyedia tidak langsung).
Nama | Tipe | Wajib | Deskripsi |
---|---|---|---|
lineItemNumber | int | Ya | Setiap item baris dalam koleksi mendapatkan nomor baris unik, menghitung dari 0 hingga hitungan-1. |
offerId | string | Ya | Pengidentifikasi penawaran. Pastikan availabilitas penawaran adalah untuk segmen yang benar. |
subscriptionId | string | No | Pengidentifikasi langganan. |
parentSubscriptionId | string | No | Opsional. ID langganan induk dalam penawaran add-on. Hanya berlaku untuk PATCH. |
friendlyName | string | No | Opsional. Nama yang mudah diingat untuk langganan yang ditentukan oleh mitra untuk membantu memisahkan. |
kuantitas | int | Ya | Jumlah lisensi untuk langganan berbasis lisensi. |
customTermEndDate | DateTime | No | Tanggal akhir jangka waktu penagihan pertama langganan baru. |
partnerIdOnRecord | string | No | Ketika penyedia tidak langsung menempatkan pesanan atas nama reseller tidak langsung, isi bidang ini dengan PartnerID dari reseller tidak langsung saja (tidak pernah ID penyedia tidak langsung). Ini memastikan akuntansi yang tepat untuk insentif. |
provisioningContext | String kamus<, string> | No | Informasi yang diperlukan untuk provisi untuk beberapa item dalam katalog. Properti provisioningVariables dalam SKU menunjukkan properti mana yang diperlukan untuk item tertentu dalam katalog. |
links | OrderLineItemLinks | No | Baca-saja. Tautan sumber daya yang sesuai dengan item baris Pesanan. |
Atribut | ResourceAttributes | No | Atribut metadata yang sesuai dengan OrderLineItem. |
renewsTo | Array objek | No | Array sumber daya RenewsTo . |
Pengesahan Diterima | bool | No | Menunjukkan perjanjian untuk menawarkan atau kondisi sku. Diperlukan hanya untuk penawaran atau sku di mana SkuAttestationProperties atau OfferAttestationProperties enforceAttestation adalah True. |
AdditionalPartnerIdsOnRecord | String | No | Ketika penyedia tidak langsung menempatkan pesanan atas nama reseller tidak langsung, isi bidang ini dengan PartnerID dari Reseller tidak langsung tambahan saja (tidak pernah ID penyedia tidak langsung). Insentif tidak berlaku untuk pengecer tambahan ini. Hanya maksimal 5 Reseller Tidak Langsung yang dapat dimasukkan. Ini hanya mitra yang berlaku yang bertransaksi dalam negara/wilayah UE / EFTA. |
Perpanjang Ke
Tabel ini menjelaskan properti RenewsTo dalam isi permintaan.
Properti | Tipe | Wajib | Deskripsi |
---|---|---|---|
termDuration | string | No | Representasi ISO 8601 dari durasi jangka waktu perpanjangan. Nilai yang didukung saat ini adalah P1M (1 bulan) dan P1Y (1 tahun). |
Contoh permintaan
POST https://api.partnercenter.microsoft.com/v1/customers/b0d70a69-4c42-4b27-b17b-91a835d8686a/orders HTTP/1.1
Authorization: Bearer <token>
Host: api.partnercenter.microsoft.com
Content-Length: 691
Content-Type: application/json
{
"BillingCycle": "one_time",
"CurrencyCode": "USD",
"LineItems": [
{
"LineItemNumber": 0,
"ProvisioningContext": {
"subscriptionId": "cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a",
"scope": "shared",
"duration": "1Year"
},
"OfferId": "DZH318Z0BQ4B:0047:DZH318Z0DSM8",
"FriendlyName": "A_sample_Azure_RI",
"Quantity": 1
}
]
}
Respons REST
Jika berhasil, metode mengembalikan sumber daya Pesanan dalam isi respons.
Jika pesanan berisi satu atau beberapa langganan, nilai ID langganan masing-masing hanya akan muncul di respons REST jika langganan yang sesuai telah disediakan pada saat panggilan API. Langganan provisi terjadi secara asinkron, dan oleh karena itu, nilai ID langganan mungkin tidak selalu terlihat dalam respons REST dari panggilan Buat Pesanan. Namun, setelah langganan masing-masing disediakan, nilai ID langganan mereka dapat diakses melalui panggilan Get Orders dan Get Order by ID API.
Kode kesalahan dan keberhasilan respons
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 tanggapan
HTTP/1.1 201 Created
Content-Length: 788
Content-Type: application/json; charset=utf-8
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: 025f4c19-217f-49d6-a056-391902c62fb3
Date: Thu, 15 Mar 2018 22:30:02 GMT
{
"id": "Cs_jyTxubLpvdJXdo8xcQZN6I2RsLrgZ1",
"referenceCustomerId": "b0d70a69-4c42-4b27-b17b-91a835d8686a",
"billingCycle": "one_time",
"currencyCode": "USD",
"lineItems": [
{
"lineItemNumber": 0,
"offerId": "84A03D81-6B37-4D66-8D4A-FAEA24541538",
"friendlyName": "A_sample_Azure_RI",
"quantity": 1,
"links": {
"sku": {
"uri": "/products/DZH318Z0BQ4B/skus/0047?country=US",
"method": "GET",
"headers": []
}
}
} ],
"creationDate": "2018-03-15T22:30:02.085152Z",
"status": "pending",
"links": {
"provisioningStatus": {
"uri": "/customers/b0d70a69-4c42-4b27-b17b-91a835d8686a/orders/Cs_jyTxubLpvdJXdo8xcQZN6I2RsLrgZ1/provisioningstatus",
"method": "GET",
"headers": []
},
"self": {
"uri": "/customers/b0d70a69-4c42-4b27-b17b-91a835d8686a/orders/Cs_jyTxubLpvdJXdo8xcQZN6I2RsLrgZ1",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "Order"
}
}