Partner Center API'lerini kullanarak yeni bir ticaret aboneliği için değişiklikleri programlama.

için geçerlidir: İş Ortağı Merkezi

Bu makalede, yeni bir ticaretaboneliğinde yalnızca yenilemede gerçekleşen değişiklikleri zamanlamak için İş Ortağı Merkezi API'sini nasıl kullanabileceğiniz açıklanmaktadır. Bu API, yeni ticari lisanslı ve yazılım aboneliklerini destekler.

Not

Lisans tabanlı hizmetlere yönelik yeni ticaret deneyimleri birçok yeni özellik içerir ve tüm Bulut Çözümü Sağlayıcısı (CSP' ler) tarafından kullanılabilir. Daha fazla bilgi için bkz. yeni ticaret deneyimlerine genel bakış.

Zamanlanmış değişiklikler oluşturmak, bir sonraki yenileme gerçekleştiğinde aboneliğinizi otomatik olarak değiştirmenize olanak tanır. Değişiklikleri zamanlayarak lisans sayısını artırmayı veya azaltmayı, faturalama süresini ve sıklığını değiştirmeyi ve hatta SKU'yu yükseltmeyi seçebilirsiniz. Değişiklikleri zamanlamak, geçerli dönem boyunca hemen yerine yenileme sırasında aboneliğinizde değişiklik yapmanıza olanak tanır.

Önemli

Yenileme tarihinizden önce orta vadeli (anında) bir değişiklik yaparsanız, daha önce yenileme sırasında gerçekleşmesi planlanan tüm zamanlanmış değişiklikler silinir.

Önkoşullar

  • İş Ortağı Merkezi kimlik doğrulaması'nde açıklandığı gibi kimlik bilgileri. Bu senaryo hem tek başına Uygulama hem de Uygulama+Kullanıcı kimlik bilgileriyle kimlik doğrulamayı destekler.

  • Bir müşteri kimliği (customer-tenant-id). Müşterinin kimliğini bilmiyorsanız, İş Ortağı Merkezi içinde Müşteriler çalışma alanını seçip müşteri listesinden ilgili müşteriyi ve ardından Hesap'ı seçerek kimliğini bulabilirsiniz. Müşterinin Hesap sayfasında, Müşteri Hesabı Bilgileri bölümünde Microsoft Kimliği için göz atın. Microsoft kimliği, müşteri kimliğiyle (customer-tenant-id) aynıdır.

  • Abonelik kimliği.

  • Abonelikte otomatik yenileme etkinleştirilir.

İş Ortağı Merkezi yöntemi

İş Ortağı Merkezi'nde abonelik değişikliklerini zamanlamak için:

  1. bir müşteri seçin.

  2. Değişiklik zamanlamak istediğiniz aboneliği seçin.

  3. Otomatik yenilemeyi etkinleştirin.

  4. seçin yenilemeyi yönet.

  5. Yenileme işleminin gerçekleşmesi için abonelikte değişiklikler yapın.

  6. Yan paneli kapatmak için Tamam'ı seçin.

  7. Değişiklikleri kaydetmek için gönder'i seçin.

Not

Yenilemeler, bir dönemin son gününden sonra, ertesi gün saat 12:00 UTC'den başlayarak işlenir. Yenilemeler bir kuyrukta işlenir ve işlenmesi 24 saate kadar sürebilir.

C# (programlama dili)

Müşterinin aboneliğinde değişiklik zamanlamak için:

  1. kimliğine göre aboneliği alın.
  2. Zamanlanmış geçiş uygunluğu türü için geçiş uygunluğu alın.
  3. bir ScheduledNextTermInstructions nesnesi oluşturun ve bunu aboneliğin özelliğine ayarlayın.
  4. Aboneliği zamanlanmış değişikliklerle güncelleştirmek için Patch() yöntemini çağırın.
var selectedSubscription = subscriptionOperations.Get();
selectedSubscription.ScheduledNextTermInstructions = new ScheduledNextTermInstructions
{
    Product = new ProductTerm
    {
        ProductId = changeToProductId,
        SkuId = changeToSkuId,
        AvailabilityId = changeToAvailabilityId,
        BillingCycle = changeToBillingCycle,
        TermDuration = changeToTermDuration,
    },
    Quantity = changeToQuantity,
    customTermEndDate = DateTime,
};
var updatedSubscription = subscriptionOperations.Patch(selectedSubscription);

Müşterinin aboneliğinde, istenen zamanlanmış değişiklik farklı bir ürüne geçişi içeriyorsa, bu değişikliği planlamak için:

  1. kimliğine göre aboneliği alın.
  2. Zamanlanmış geçiş uygunluğu türü için geçiş uygunluğu alın.
  3. Aboneliği zamanlanmış değişikliklerle güncelleştirmek için Patch() yöntemini çağırın.

REST isteği

İstek söz dizimi

Yöntem İstek URI'si
Yama {baseURL}/v1/customers/{customer-tenant-id}/subscriptions/{subscription-id} HTTP/1.1

URI parametresi

Bu tabloda API'yi çağırmak için gerekli sorgu parametreleri listelenir.

Ad Tür Gerekli Açıklama
müşteri-kiracı kimliği kılavuz Y Müşteriye karşılık gelen GUID.
abonelik kimliği kılavuz Y Aboneliğe karşılık gelen GUID.

İstek üst bilgileri

Daha fazla bilgi için bkz. İş Ortağı Merkezi REST başlıkları.

İstek gövdesi

Talep gövdesinde, özelliği tanımlanmış tam bir scheduledNextTermInstructions kaynağı gereklidir. Aboneliğinizde değişiklikleri zamanlamak için, AutoRenewEnabled özelliğinin true olarak ayarlandığından emin olun.

Dönüşümler (EndofSaleWithConversions) teklifleriyle satış sonunda kullanılabilirlik kimliği için:

  1. GetTransitionEligibility'nin CatalogItemID'yi döndürmesi.

    a. Planlanan uygunluk türünü ayarladığınızdan emin olun, aksi takdirde varsayılan hemen etkilidir.

  2. Ardından availabilityID'yi ayıklamak için CatalogItemID kullanın.

GET Kullanılabilirliklerini kullanarak scheduledNextTerm Yönergelerinin kullanılabilirliğini belirlerseniz ve tüm terimler EOS durumuysa boş bir liste alırsınız. Geçerli yolları belirlemenin en iyi yolu, geçerli seçenekleri döndürmek için GetTransitionEligibilty API'sini çağırmaktır.

Alan Tür Gerekli Açıklama
planlanmışSonrakiDönemTalimatları nesne Y Abonelik için sonraki dönem yönergelerini tanımlar. özelliği, product nesnesini ve quantity alanını içerir.

Sonraki dönem yönergelerini ayarlamak için scheduledActions kullanma (zamanlanmış değişiklikler)

Genişletilmiş hizmet koşulları, dönem sonu yönergelerini ayarlamanın yeni bir yolunu ortaya çıkartır. ScheduledActions yeni yapısı, iş ortaklarının iptal etme, genişletilmiş hizmet koşullarına yenileme veya diğer dönem sonu hedeflerine yenileme gibi sonraki dönem güncelleştirmelerini tanımlamaları için tek bir yol sağlar. İş ortakları, önceki scheduledNextTermInstructions yerine scheduledActions RenewToNewTerm yönergelerini ayarlayabilir. Sonraki dönem yönergelerini ayarlamak için scheduledActions kullanma hakkında daha fazla bilgi genişletilmiş hizmet dönemi belgelerinde bulunabilir.

ScheduledActions kullanan iş ortakları, genişletilmiş hizmet koşulları için uygun abonelikler için güncelleştirmeler yaparken scheduledNextTermInstructions'ı geçirmekten de kaçınmalıdır. İş ortakları, her ikisini de iletmeyi seçebileceklerini, ancak yalnızca scheduledActions'ın dikkate alındığını bilmelidir. İş ortakları, sonraki dönem yönergelerini ayarlamak için yalnızca scheduledNextTermInstructions iletmeye devam edebilir.

Önemli

Bir sonraki dönem talimatlarını hem scheduledActions hem de nextTermInstructions içinde iletmekten kaçının. Birini veya diğerini kullanın. Her ikisi de iletilirse, varsayılan olarak scheduledActions yönergeleri kullanılır.

Zamanlanmış eylemleri kullanma isteği

{
  "autoRenewEnabled": true,
  "scheduledActions": [
    {
      "scheduledType": "TermEnd",
      "actionType": "RenewToNewTerm",
      "instructions": {
        "product": {
          "productId": "CFQ7TTC0LHXH",
          "skuId": "0001",
          "availabilityId": "CFQ7TTC0LHXH",
          "billingCycle": "annual",
          "termDuration": "P1Y",
          "promotionId": "39NFJQT20KJ2:0001:39NFJQT1Q5KK"
        },
        "quantity": 25,
        "customTermEndDate": "2027-11-31T23:59:59.000Z"
      }
    }
  ]
}

Zamanlanmış eylemleri kullanarak yanıt

{
  "autoRenewEnabled": true,
  "scheduledNextTermInstructions" : {
     "product": {
        "productId": "CFQ7TTC0LHXH",
        "skuId": "0001",
        "availabilityId": "CFQ7TTC0LHXH",
        "billingCycle": "annual",
        "termDuration": "P1Y",
        "promotionId": "39NFJQT20KJ2:0001:39NFJQT1Q5KK"
      },
      "quantity": 25,
      "customTermEndDate": "2027-11-31T23:59:59.000Z"
  },
  "scheduledActions":   "scheduledActions": [
    {
      "scheduledType": "TermEnd",
      "actionType": "RenewToNewTerm",
      "instructions": {
        "product": {
          "productId": "CFQ7TTC0LHXH",
          "skuId": "0001",
          "availabilityId": "CFQ7TTC0LHXH",
          "billingCycle": "annual",
          "termDuration": "P1Y",
          "promotionId": "39NFJQT20KJ2:0001:39NFJQT1Q5KK"
        },
        "quantity": 25,
        "customTermEndDate": "2027-11-31T23:59:59.000Z"
      }
    }
  ]
}

Yıldönümünde geçişleri ayarlamak için scheduledActions kullanma

Teams içeren belirli üç yıllık SKU’lar, dönem yıldönümünde geçiş yapacak şekilde planlanabilir.

Zamanlanmış eylemleri kullanma isteği

{ 
    "id": "c10138d2-083b-4330-cf0d-6565dfaf22be", 
    "offerId": "CFQ7TTC0ZSXT:0001:CFQ7TTC0K85Z", 
    … 
    "scheduledActions": [ 
        { 
            "scheduleType": "CustomDate", // currently supported - EndOfTerm
            "actionType": "Transition", // currently supported - RenewToNewTerm, RenewToExtendedServiceTerm, Cancel 
            "effectiveDate": "2026-08-01", 
            "instructions": { 
                "product": { 
                    "productId": "CFQ7TTC0ZSXT", 
                    "skuId": "0001", 
                    "availabilityId": "CFQ7TTC0K8B0", 
                    "billingCycle": "monthly", 
                    "termDuration": "P1M" 
                }, 
            } 
        } 
    ] 
} 

Zamanlanmış sonraki dönem yönergelerini kullanma isteği

PATCH https://api.partnercenter.microsoft.com/v1/customers/<customer-tenant-id>/subscriptions/<subscription-id> HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: ca7c39f7-1a80-43bc-90d8-ee7d1cad3831
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
If-Match: <etag>
Content-Type: application/json
Content-Length: 1029
Expect: 100-continue
Connection: Keep-Alive

{
    "id": "6e7aa601-629e-461b-8933-0898c3cc3c7c",
    "offerId": "DZH318Z0BXWC:0001:DZH318Z0BMJX",
    "offerName": "offer Name",
    "friendlyName": "friendly Name",
    "quantity": 1,
    "customTermEndDate": "2019-01-09T00:21:45.9263727",
    "unitType": "License(s)",
    "hasPurchasableAddons": false,
    "creationDate": "2019-01-04T01:00:12.6647304Z",
    "effectiveStartDate": "2019-01-09T00:21:45.9263727+00:00",
    "commitmentEndDate": "2019-02-08T00:21:45.9263727+00:00",
    "status": "active",
    "autoRenewEnabled": true,
    "scheduledNextTermInstructions": { 
      "product": { 
         "productId":  "DG7GMGF0DVSV", 
         "skuId":  "000P", 
         "availabilityId":  "DG7GMGF0F3Q9", 
         "billingCycle":  "Annual", 
         "termDuration":  "P3Y",
         "promotionId": "39NFJQT1PFPJ:000H:39NFJQT1Q5DK"
        }, 
      "quantity":  1 
      "customTermEndDate" : "2019-01-09T00:21:45.9263727",
     },  // original value = null 
    "isTrial": false,
    "billingType": "license",
    "billingCycle": "monthly",
    "termDuration": "P1M",
    "refundOptions": [{
        "type": "Full",
        "expiresAt": "2019-01-10T00:21:45.9263727+00:00"
    }],
    "isMicrosoftProduct": false,
    "partnerId": "",
    "contractType": "subscription",
    "publisherName": "publisher Name",
    "orderId": "ImxjLNL4_fOc-2KoyOxGTZcrlIquzls11",
    "attributes": {"objectType": "Subscription"},
}

REST yanıtı

İstek başarılı olursa, bu yöntem yanıt gövdesindeki güncelleştirilmiş Aboneliği kaynak özelliklerini döndürür.

Yanıt başarısı ve hata kodları

Her yanıt, başarılı veya başarısız olduğunu belirten bir HTTP durum kodu ve diğer hata ayıklama bilgileriyle birlikte gelir. Bu kodu, hata türünü ve diğer parametreleri okumak için bir ağ izleme aracı kullanın. Tam liste için bkz. Hata Kodları.

Bir sonraki dönem için zamanlanmış yönergeleri kullanan yanıt

HTTP/1.1 200 OK
Content-Length: 1322
Content-Type: application/json; charset=utf-8
MS-RequestId: ca7c39f7-1a80-43bc-90d8-ee7d1cad3831
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US

{
    "id": "6e7aa601-629e-461b-8933-0898c3cc3c7c",
    "offerId": "DZH318Z0BXWC:0001:DZH318Z0BMJX",
    "offerName": "offer Name",
    "friendlyName": "friendly Name",
    "quantity": 1,
    "customTermEndDate": "2019-01-09T00:21:45.9263727",
    "unitType": "License(s)",
    "hasPurchasableAddons": false,
    "creationDate": "2019-01-04T01:00:12.6647304Z",
    "effectiveStartDate": "2019-01-09T00:21:45.9263727+00:00",
    "commitmentEndDate": "2019-02-08T00:21:45.9263727+00:00",
    "status": "active",
    "autoRenewEnabled": true,
    "scheduledNextTermInstructions": { 
      "product": { 
         "productId":  "DG7GMGF0DVSV", 
         "skuId":  "000P", 
         "availabilityId":  "DG7GMGF0F3Q9", 
         "billingCycle":  "Annual", 
         "termDuration":  "P3Y",
         "promotionId": "39NFJQT1PFPJ:000H:39NFJQT1Q5DK"
        }, 
      "quantity":  1 
      "customTermEndDate": "2019-01-09T00:21:45.9263727",
     },  // original value = null 
    "isTrial": false,
    "billingType": "license",
    "billingCycle": "monthly",
    "termDuration": "P1M",
    "refundOptions": [{
        "type": "Full",
        "expiresAt": "2019-01-10T00:21:45.9263727+00:00"
    }],
    "isMicrosoftProduct": false,
    "partnerId": "",
    "contractType": "subscription",
    "publisherName": "publisher Name",
    "orderId": "ImxjLNL4_fOc-2KoyOxGTZcrlIquzls11",
    "attributes": {"objectType": "Subscription"},
}