Bagikan melalui


Membuat kelir dengan pesanan pelanggan

Berlaku untuk: Pusat Mitra | Pusat Mitra yang dioperasikan oleh 21Vianet | Pusat Mitra untuk Microsoft Cloud untuk Pemerintah AS

Anda dapat menambahkan pesanan untuk pelanggan di kelir. Untuk informasi selengkapnya tentang apa yang saat ini tersedia untuk dijual, lihat Penawaran mitra di program Penyedia Solusi Cloud.

Catatan

Keranjang kedaluwarsa 7 hari dari pembuatan awal.

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).

C#

Untuk membuat pesanan bagi pelanggan:

  1. Membuat instans objek Cart.

  2. Buat daftar objek CartLineItem , dan tetapkan daftar ke properti LineItems kelir. Setiap item garis kelistrikan berisi informasi pembelian untuk satu produk. Anda harus memiliki setidaknya satu item garis kelir.

  3. Dapatkan antarmuka ke operasi keliru dengan memanggil metode IAggregatePartner.Customers.ById dengan ID pelanggan untuk mengidentifikasi pelanggan, lalu mengambil antarmuka dari properti Ke cart .

  4. Panggil metode Buat atau BuatAsync untuk membuat kelir.

  5. Untuk menyelesaikan pengesahan dan menyertakan pengecer lain, lihat sampel Sampel Permintaan dan Respons berikut:

Meminta sampel


{
    "PartnerOnRecordAttestationAccepted":true,     "lineItems": [
        {
            "id": 0,
            "catalogItemId": "CFQ7TTC0LH0Z:0001:CFQ7TTC0K18P",
            "quantity": 1,
            "billingCycle": "monthly",
            "termDuration": "P1M",
            "renewsTo": null,
            "provisioningContext": {},
            "customTermEndDate": "2022-02-19T00:00:00Z"
        },
        {
            "id": 1,
            "catalogItemId": "CFQ7TTC0LFLS:0002:CFQ7TTC0KDLJ",
            "quantity": 2,
            "billingCycle": "monthly",
            "termDuration": "P1Y",
            "participants": [
                {
                    "key": "transaction_reseller",
                    "value": "5357564"
                },
                 {
                    "key": "additional_transaction_reseller",                     
                    "value": "517285"
                },
                 {
                    "key": "additional_transaction_reseller", 
                    "value": "5357563"
                }
            ]
        }
    ]
}


Sampel respons


{
    "id": "3e22b548-647d-4223-9675-1fcb6cb57665",
    "creationTimestamp": "2021-08-18T17:29:52.3517492Z",
    "lastModifiedTimestamp": "2021-08-18T17:29:52.3517553Z",
    "expirationTimestamp": "2021-08-25T17:30:11.2406416Z",
    "lastModifiedUser": "da62a0dc-35e9-4601-b48e-a047bd3ec7c1",
    "status": "Active",
    "lineItems": [
        {
            "id": 0,
            "catalogItemId": "CFQ7TTC0LH0Z:0001:CFQ7TTC0K18P",
            "quantity": 1,
            "currencyCode": "USD",
            "billingCycle": "monthly",
            "termDuration": "P1M",
	    "customTermEndDate": "2022-02-19T00:00:00Z";
            "provisioningContext": {},
            "orderGroup": "0"
        },
        {
            "id": 1,
            "catalogItemId": "CFQ7TTC0LFLS:0002:CFQ7TTC0KDLJ",
            "quantity": 2,
            "currencyCode": "USD",
            "billingCycle": "monthly",
            "termDuration": "P1Y",
            "participants": [
                {
                    "key": "transaction_reseller",
                    "value": "5357564"
                },
                {
                    "key": "additional_transaction_reseller", 
                    "value": "517285"
                },
                {
                    "key": "additional_transaction_reseller", 
                    "value": "5357563"
                }
            ],
            "provisioningContext": {},
            "orderGroup": "0"
        }
    ],
    "links": {
        "self": {
            "uri": "/customers/f81d98dd-c2f4-499e-a194-5619e260344e/carts/3e22b548-647d-4223-9675-1fcb6cb57665",
            "method": "GET",
            "headers": []
        }
    },
    "attributes": {
        "objectType": "Cart"
    }
}


C# contoh

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

var cart = new Cart()
{
    LineItems = new List<CartLineItem>()
    {
        new CartLineItem()
        {
      /* Microsoft Azure Subscription */
            Id = 0,
            CatalogItemId = "MS-AZR-0145P",
            Quantity = 1,
            BillingCycle = BillingCycleType.Monthly,
            TermDuration = "P1Y"
        },
        new CartLineItem()
        {
      /* Azure Reserved Instance */
            Id = 1,
            CatalogItemId = "DZH318Z0BQ36:004G:DZH318Z08C0S",
            Quantity = 1,
            BillingCycle = BillingCycleType.OneTime,
            TermDuration = "P1Y",
            ProvisioningContext = new Dictionary<string, string>
            {
                { "subscriptionId", subscriptionId },
                { "scope", "shared" }
            }
        },
        new CartLineItem()
        {
      /* Azure Reserved Instance */
            Id = 2,
            CatalogItemId = "DZH318Z0BQ36:004J:DZH318Z08B8X",
            Quantity = 1,
            BillingCycle = BillingCycleType.OneTime,
            TermDuration = "P3Y",
            ProvisioningContext = new Dictionary<string, string>
            {
                { "subscriptionId", subscriptionId },
                { "scope", "shared" }
            }
        },
        new CartLineItem()
        {
      /* Perpetual Software */
            Id = 3,
            CatalogItemId = "DG7GMGF0DWM3:0002:DG7GMGF0DT1M",
            Quantity = 1,
            BillingCycle = BillingCycleType.OneTime
        },
        new CartLineItem()
        {
      /* SaaS */
            Id = 4,
            CatalogItemId = "DZH318Z0BXWC:0002:DZH318Z0BMRV",
            Quantity = 1,
            BillingCycle = BillingCycleType.Monthly,
            TermDuration = "P1M"
        },
        new CartLineItem()
        {
      /* SaaS Free Trial */
            Id = 5,
            CatalogItemId = "DZH318Z0C0WF:0001:DZH318Z0BP69",
            Quantity = 10,
            BillingCycle = BillingCycleType.None,
            TermDuration = "P1M",
            RenewsTo = new RenewsTo
            {
                TermDuration = "P1Y"
            }
        }
    }
};

cart = partnerOperations.Customers.ById(customerId).Carts.Create(cart);

Java

SDK Java Pusat Mitra dapat digunakan untuk mengelola sumber daya Pusat Mitra. Ini adalah proyek sumber terbuka yang dikelola oleh komunitas mitra dan tidak didukung secara resmi oleh Microsoft. Anda bisa mendapatkan bantuan dari komunitas atau membuka masalah di GitHub jika Anda mengalami masalah.

Untuk membuat pesanan bagi pelanggan:

  1. Membuat instans objek Cart.

  2. Buat daftar objek CartLineItem , dan tetapkan daftar ke item baris kelir. Setiap item garis kelistrikan berisi informasi pembelian untuk satu produk. Anda harus memiliki setidaknya satu item garis kelir.

  3. Dapatkan antarmuka ke operasi keranjang dengan memanggil fungsi IAggregatePartner.getCustomers().byId dengan ID pelanggan untuk mengidentifikasi pelanggan, lalu mengambil antarmuka dari fungsi getCart .

  4. Panggil fungsi buat untuk membuat kelir.

Contoh Java

// IAggregatePartner partnerOperations;
// String customerId;
// String subscriptionId;
// String catalogItemId;

CartLineItem lineItem = new CartLineItem();

lineItem.setBillingCycle(BillingCycleType.OneTime);
lineItem.setCatalogItemId(catalogItemId);
lineItem.setFriendlyName("Sample RI Purchase");
lineItem.setQuantity(1);

Map<String, String> provisioningContext = new HashMap<String,String>();

provisioningContext.put("duration", "3Years");
provisioningContext.put("scope", "shared");
provisioningContext.put("subscriptionId", subscriptionId);

lineItem.setProvisioningContext(provisioningContext);

List<CartLineItem> lineItemList = new ArrayList<CartLineItem>();
lineItemList.add(lineItem);

Cart cart = new Cart();
cart.setLineItems(lineItemList);

Cart cartCreated = partnerOperations.getCustomers().byId(customerId).getCarts().create(cart);

PowerShell

Modul Pusat Mitra PowerShell dapat digunakan untuk mengelola sumber daya Pusat Mitra. Ini adalah proyek sumber terbuka yang dikelola oleh komunitas mitra dan tidak didukung secara resmi oleh Microsoft. Anda bisa mendapatkan bantuan dari komunitas atau membuka masalah di GitHub jika Anda mengalami masalah.

Untuk membuat pesanan bagi pelanggan:

  1. Membuat instans objek Cart.

  2. Buat daftar objek CartLineItem , dan tetapkan daftar ke item baris kelir. Setiap item garis kelistrikan berisi informasi pembelian untuk satu produk. Anda harus memiliki setidaknya satu item garis kelir.

  3. Jalankan perintah New-PartnerCustomerCart untuk membuat keranjang.

# $customerId
# $subscriptionId
# $catalogItemId

$lineItem = New-Object -TypeName Microsoft.Store.PartnerCenter.PowerShell.Models.Carts.PSCartLineItem

$lineItem.BillingCycle = 'OneTime'
$lineItem.CatalogItemId = $catalogItemId
$lineItem.FriendlyName = 'Sample RI Purchase'
$lineItem.ProvisioningContext.Add('duration', '1Year')
$lineItem.ProvisioningContext.Add('scope', 'shared')
$lineItem.ProvisioningContext.Add('subscriptionId', $subsciptionId)
$lineItem.Quantity = 10

New-PartnerCustomerCart -CustomerId $customerId -LineItems $lineItem

Permintaan REST

Minta sintaks

Metode URI Permintaan
POST {baseURL}/v1/customers/{customer-id}/carts HTTP/1.1

Parameter URI

Gunakan parameter jalur berikut untuk mengidentifikasi pelanggan.

Nama Tipe Diperlukan Deskripsi
id pelanggan string Ya ID pelanggan berformat GUID yang mengidentifikasi pelanggan.

Header permintaan

Untuk informasi selengkapnya, lihat Header REST Pusat Mitra.

Isi permintaan

Tabel ini menjelaskan properti Cart dalam isi permintaan.

Properti Tipe Diperlukan Deskripsi
id string No Pengidentifikasi kelir yang disediakan setelah keberhasilan pembuatan kelir.
creationTimeStamp DateTime No Tanggal kelir dibuat, dalam format tanggal-waktu. Diterapkan setelah pembuatan kemudi yang berhasil.
lastModifiedTimeStamp DateTime No Tanggal kelir terakhir diperbarui, dalam format tanggal-waktu. Diterapkan setelah pembuatan kemudi yang berhasil.
expirationTimeStamp DateTime No Tanggal kedaluwarsa kedaluwarsa kedaluwarsa, dalam format tanggal-waktu. Diterapkan setelah keberhasilan pembuatan kerbau.
lastModifiedUser string No Pengguna yang terakhir memperbarui kelir. Diterapkan setelah keberhasilan pembuatan kerbau.
lineItems Array objek Ya Array sumber daya CartLineItem .
PartnerOnRecordAttestationAccepted Boolean Ya Mengonfirmasi penyelesaian Pengesahan

Tabel ini menjelaskan properti CartLineItem dalam isi permintaan.

Properti Tipe Diperlukan Deskripsi
id string No Pengidentifikasi unik untuk item garis kelistrikan. Diterapkan setelah keberhasilan pembuatan kerbau.
catalogId string Ya Pengidentifikasi item katalog. Pastikan ketersediaan item katalog adalah untuk segmen yang benar.
friendlyName string No Opsional. Nama yang mudah diingat untuk item yang ditentukan oleh mitra untuk membantu memisahkan.
promotionId string No Opsional. Sebagian besar promosi NCE akan berlaku secara otomatis, namun untuk promosi opsional (seperti Bridge to the Cloud 2) untuk diterapkan ke item baris kelir, mitra harus menyertakan ID promosi dalam permintaan tambahkan ke kelir.
kuantitas int Ya Jumlah lisensi atau instans.
currencyCode string No Kode mata uang.
billingCycle Objek Ya Jenis siklus penagihan yang ditetapkan untuk periode saat ini.
customTermEndDate DateTime No Tanggal akhir langganan yang sudah ada yang ingin Anda buat bersama langganan baru.
peserta Daftar pasangan String Objek No Kumpulan PartnerId on Record (PartnerID) pada pembelian.
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.
orderGroup string No Grup untuk menunjukkan item mana yang dapat ditempatkan bersama-sama.
kesalahan Objek No Diterapkan setelah kelir dibuat jika ada kesalahan.
renewsTo Array objek No Array sumber daya RenewsTo .
Pengesahan Diterima Boolean No Menunjukkan perjanjian untuk menawarkan atau kondisi sku. Diperlukan hanya untuk penawaran atau sku di mana SkuAttestationProperties atau OfferAttestationProperties enforceAttestation adalah True.
transaction_reseller 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.
additional_transaction_reseller 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.

Tabel ini menjelaskan properti RenewsTo dalam isi permintaan.

Properti Tipe Diperlukan 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 /v1/customers/d6bf25b7-e0a8-4f2d-a31b-97b55cfc774d/carts HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 4fa6dad6-a89f-4875-8247-8294a10ae1cf
MS-CorrelationId: 0e93c70c-977a-4a88-9580-7cf084c73286
X-Locale: en-US
MS-PartnerCenter-Client: Partner Center .NET SDK
Content-Type: application/json
Host: api.partnercenter.microsoft.com
Content-Length: 496
Expect: 100-continue

{
  "lineItems": [
    {
    /* Microsoft Azure Subscription */
      "id": 0,
      "catalogItemId": "MS-AZR-0145P",
      "quantity": 1,
      "billingCycle": "monthly",
      "termDuration": "P1Y"
    },
    {
    /* Azure Reserved Instance */
      "id": 1,
      "catalogItemId": "DZH318Z0BQ36:004G:DZH318Z08C0S",
      "quantity": 1,
      "billingCycle": "one_time",
      "termDuration": "P1Y",
      "provisioningContext": {
        "subscriptionId": "1C461A25-F729-4FA5-AADB-280947DD05E8",
        "scope": "shared"
      }
    },
    {
    /* Azure Reserved Instance */
      "id": 2,
      "catalogItemId": "DZH318Z0BQ36:004J:DZH318Z08B8X",
      "quantity": 1,
      "billingCycle": "one_time",
      "termDuration": "P3Y",
      "provisioningContext": {
        "subscriptionId": "1C461A25-F729-4FA5-AADB-280947DD05E8",
        "scope": "single"
      }
    },
    {
    /* Perpetual Software */
      "id": 3,
      "catalogItemId": "DG7GMGF0DWTL:0001:DG7GMGF0DSFM",
      "quantity": 1,
      "billingCycle": "one_time"
    },
    {
    /* SaaS */
      "id": 4,
      "catalogItemId": "DZH318Z0BXWC:0002:DZH318Z0BMRV",
      "quantity": 1,
      "billingCycle": "monthly",
      "termDuration": "P1M"
    },
  {
    /* SaaS Free Trial */
       "id": 5,
       "catalogItemId": "DZH318Z0C0WF:0001:DZH318Z0BP69",
       "quantity": 10,
       "billingCycle": "none",
       "termDuration": "P1M",
       "renewsTo": {
         "termDuration": "P1Y"
       }
    }
  ]
}

Penting

Pada Juni 2023, Pusat Mitra terbaru .NET SDK rilis 3.4.0 sekarang diarsipkan. Anda dapat mengunduh rilis SDK dari GitHub, bersama dengan file readme yang berisi informasi yang berguna.

Mitra didorong untuk terus menggunakan REST API Pusat Mitra.

Respons REST

Jika berhasil, metode ini mengembalikan sumber daya Cart yang diisi dalam isi respons.

Kode kesalahan dan keberhasilan respons

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

Contoh tanggapan

HTTP/1.1 201 Created
Content-Length: 764
Content-Type: application/json; charset=utf-8
MS-CorrelationId: 0e93c70c-977a-4a88-9580-7cf084c73286
MS-RequestId: 4fa6dad6-a89f-4875-8247-8294a10ae1cf
X-Locale: en-US,en-US
MS-CV: sF/wRa2ih0CzbABc.0
MS-ServerId: 000001
Date: Thu, 15 Mar 2018 17:15:01 GMT
{
  "id": "3655b1a0-b1c9-4268-9824-577fdbc4d0be",
  "creationTimestamp": "2019-01-16T00:45:41.6062996Z",
  "lastModifiedTimestamp": "2019-01-16T00:45:41.6062996Z",
  "expirationTimestamp": "2019-01-16T01:00:54.4188497Z",
  "lastModifiedUser": "1824b7fc-2fac-4478-b177-66823c40ab75",
  "status": "Active",
  "lineItems": [
    {
      "id": 0,
      "catalogItemId": "MS-AZR-0145P",
      "quantity": 1,
      "currencyCode": "USD",
      "billingCycle": "monthly",
      "termDuration": "P1Y",
      "orderGroup": "OMS-0"
    },
    {
      "id": 1,
      "catalogItemId": "DZH318Z0BQ36:004G:DZH318Z08C0S",
      "quantity": 1,
      "currencyCode": "USD",
      "billingCycle": "one_time",
      "termDuration": "P1Y",
      "provisioningContext": {
        "subscriptionId": "1C461A25-F729-4FA5-AADB-280947DD05E8",
        "scope": "shared"
      },
      "orderGroup": "0"
    },
    {
      "id": 2,
      "catalogItemId": "DZH318Z0BQ36:004J:DZH318Z08B8X",
      "quantity": 1,
      "currencyCode": "USD",
      "billingCycle": "one_time",
      "termDuration": "P3Y",
      "provisioningContext": {
        "subscriptionId": "1C461A25-F729-4FA5-AADB-280947DD05E8",
        "scope": "shared"
      },
      "orderGroup": "0"
    },
    {
      "id": 3,
      "catalogItemId": "DG7GMGF0DWM3:0002:DG7GMGF0DT1M",
      "quantity": 1,
      "currencyCode": "USD",
      "billingCycle": "one_time",
      "orderGroup": "0"
    },
    {
      "id": 4,
      "catalogItemId": "DZH318Z0BXWC:0002:DZH318Z0BMRV",
      "quantity": 1,
      "currencyCode": "USD",
      "billingCycle": "monthly",
      "termDuration": "P1M",
      "orderGroup": "1"
    },
  {
      "id": 5,
      "catalogItemId": "DZH318Z0C0WF:0001:DZH318Z0BP69",
      "quantity": 10,
      "currencyCode": "USD",
      "billingCycle": "none",
      "termDuration": "P1M",
      "renewsTo": {
  "termDuration": "P1Y"
      },
    "orderGroup": "2"
    }
  ],
  "links": {
    "self": {
      "uri": "/customers/28045616-f6b9-462f-9701-0d89b5e65c44/carts/3655b1a0-b1c9-4268-9824-577fdbc4d0be",
      "method": "GET",
      "headers": []
    }
  },
  "attributes": {
    "objectType": "Cart"
  }
}

Contoh untuk layanan berbasis lisensi perdagangan baru

Catatan

Pengalaman perdagangan baru untuk layanan berbasis lisensi mencakup banyak kemampuan baru dan tersedia untuk semua Penyedia Solusi Cloud (CSP). Untuk informasi selengkapnya, lihat gambaran umum pengalaman perdagangan baru.

Contoh permintaan

POST /v1/customers/932c4101-dc08-461b-b4c1-75d80e905775/carts HTTP/1.1
Host: api.partnercenter.microsoft.com
Content-Type: application/json
Content-Length: 165

{
	"LineItems": [
		{
			"CatalogItemId":"CFQ7TTC0LFLZ:0002:CFQ7TTC0K4TS",
			"Quantity": 1,
			"TermDuration": "P1M",
			"BillingCycle": "Monthly"
		}
	]
}

Penting

Paket Azure dan item baris perangkat lunak abadi tidak mendukung properti termDuration. Hindari menyertakan ini saat mengasingkan jenis item ini.

Respons REST

Jika berhasil, metode ini mengembalikan sumber daya Cart yang diisi dalam isi respons.

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 ini, jenis kesalahan, dan parameter lainnya. Untuk daftar lengkapnya, lihat Kode Kesalahan.

Contoh tanggapan


{
    "id": "2517c51b-58cd-4abe-87ed-3ab812401ab4",
    "creationTimestamp": "2023-07-11T21:16:11.55149Z",
    "lastModifiedTimestamp": "2023-07-11T21:16:11.5515713Z",
    "expirationTimestamp": "2023-07-18T21:16:17.2480482Z",
    "lastModifiedUser": "9db12087-fbc3-481c-8965-73d44ff88e27",
    "status": "Active",
    "lineItems": [
        {
            "id": 0,
            "catalogItemId": "CFQ7TTC0LF8S:0001:CFQ7TTC0VZW5",
            "quantity": 1,
            "currencyCode": "USD",
            "billingCycle": "monthly",
            "termDuration": "P1Y",
            "provisioningContext": {},
            "orderGroup": "0",
            "pricing": {
                "listPrice": 30.4,
                "discountedPrice": 30.4,
                "proratedPrice": 30.4,
                "price": 30.4,
                "extendedPrice": 364.8
            }
        }
    ],
    "links": {
        "self": {
            "uri": "/customers/ebd8b4c2-4069-46a8-bd70-123d6dec3e39/carts/2517c51b-58cd-4abe-87ed-3ab812401ab4",
            "method": "GET",
            "headers": []
        }
    },
    "attributes": {
        "objectType": "Cart"
    }
}