に適用: パートナー センター
この記事では、パートナー センター API を使用して、更新時にのみ行われる新しいコマース サブスクリプションの変更をスケジュールする方法について説明します。 この API は、新しいコマース、ライセンスベース、およびソフトウェアのサブスクリプションをサポートします。
注
ライセンスベースのサービスの新しいコマース エクスペリエンスには、多くの新機能が含まれており、すべてのクラウド ソリューション プロバイダー (CSP) で利用できます。 詳細については、新しいコマース エクスペリエンスの概要を参照してください。
スケジュールされた変更を作成すると、次回の更新時にサブスクリプションを自動的に変更できます。 変更をスケジュールすることで、ライセンス数の増加または減らし、請求期間と頻度の変更、さらにはSKUのアップグレードを選択できます。 スケジュール変更を使用すると、現在の期間の直後ではなく、更新時にサブスクリプションに変更を加えることができます。
Von Bedeutung
更新日より前に中間 (即時) 変更を行った場合、更新時に発生する予定だったスケジュール変更はすべて削除されます。
[前提条件]
パートナー センター認証で説明されている資格証明。 このシナリオでは、スタンドアロン アプリとアプリ + ユーザーの両方の資格情報を使った認証がサポートされています。
顧客 ID です (
customer-tenant-id)。 顧客の ID がわからない場合は、パートナー センターで [顧客] ワークスペースを選び、顧客一覧から顧客を選び、[アカウント] を選んで調べることができます。 顧客の [アカウント] ページで、[顧客アカウント情報] セクションで Microsoft ID を探します。 Microsoft ID は、顧客 ID (customer-tenant-id) と同じです。サブスクリプション ID。
サブスクリプションで自動更新が有効になっている。
パートナー センターの方法
パートナー センターでサブスクリプションの変更をスケジュールするには:
変更をスケジュールするサブスクリプションを選択します。
自動更新を有効にします。
更新管理 を選択します。
更新時にサブスクリプションに変更を加えます。
[OK] を選択してサイド パネルを閉じます。
[送信] を選択して変更を保存します。
注
更新は、学期の最終日の後、翌日の午前12:00 UTCに開始されます。 更新はキューで処理され、処理には最大 24 時間かかる場合があります。
C#
顧客のサブスクリプションの変更をスケジュールするには:
- ID でサブスクリプションを取得します。
- スケジュールされた移行の適格性タイプの移行適格性を取得します。
- ScheduledNextTermInstructions オブジェクトを作成し、サブスクリプションのプロパティに設定します。
- Patch() メソッドを呼び出して、スケジュールされた変更でサブスクリプションを更新します。
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);
顧客のサブスクリプションの変更をスケジュールするには、スケジュールされた変更が別の製品に対するものである場合:
- ID でサブスクリプションを取得します。
- スケジュールされた移行の適格性タイプの移行適格性を取得します。
- Patch() メソッドを呼び出して、スケジュールされた変更でサブスクリプションを更新します。
REST 要求
リクエスト構文
| メソッド | URI リクエスト |
|---|---|
| パッチ | {baseURL}/v1/customers/{customer-tenant-id}/subscriptions/{subscription-id} HTTP/1.1 |
URI パラメーター
次の表に、API を呼び出すために必要なクエリ パラメーターを示します。
| 名前 | タイプ | 必須 | 説明 |
|---|---|---|---|
| 顧客テナントID | GUIDの | Y | 顧客に対応する GUID。 |
| サブスクリプション ID | GUIDの | Y | サブスクリプションに対応する GUID。 |
要求ヘッダー
詳細については、「パートナー センター REST ヘッダー」を参照してください。
リクエストの本文
要求本文には、scheduledNextTermInstructions プロパティが定義された完全なサブスクリプション リソースが必要です。 サブスクリプションの変更をスケジュールするには、 AutoRenewEnabled プロパティが true に設定されていることを確認します。
販売終了時の在庫状況 ID とコンバージョン (EndofSaleWithConversions) オファー:
GetTransitionEligibility を使用して CatalogItemID を返します。
ある。 スケジュールされた適格性タイプを設定してください。設定しないと、デフォルトは即時になります。
次に、CatalogItemID を使用して availabilityID を抽出します。
注
GET Availabilitysを使用してscheduledNextTerm命令の可用性を判断し、すべての条件がEOS状態である場合は、空のリストが表示されます。 有効なパスを決定する最善の方法は、GetTransitionEligibilty API を呼び出して有効なオプションを返すことです。
| フィールド | タイプ | 必須 | 説明 |
|---|---|---|---|
| scheduledNextTermInstructions (スケジュール済み次の用語の指示) | オブジェクト | Y | サブスクリプションの次の期間の指示を定義します。 このプロパティには、 product オブジェクトと quantity フィールドが含まれています。 |
要求の例
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 応答
要求が成功した場合、このメソッドは更新された サブスクリプション リソース プロパティを応答本文で返します。
応答の成功とエラー コード
各応答には、成功または失敗を示す HTTP ステータス コードと、その他のデバッグ情報が付属しています。 ネットワーク トレース ツールを使用して、このコード、エラーの種類、およびその他のパラメーターを読み取ります。 完全な一覧については、エラー コードに関するページを参照してください。
応答の例
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"},
}