パートナー センター API を使用して新しいコマース サブスクリプションの変更をスケジュールする
適用対象: パートナー センター
この記事では、パートナー センター API を使用して、更新時にのみ行われる新しいコマース サブスクリプションの変更をスケジュールする方法について説明します。 この API は、ライセンスベースの新しいコマース サブスクリプションとソフトウェア サブスクリプションをサポートします。
Note
ライセンスベースのサービスの新しいコマース エクスペリエンスには、多くの新機能が含まれており、すべてのクラウド ソリューション プロバイダー (CSP) で利用できます。 詳細については、新しいコマース エクスペリエンスの概要を参照してください。
スケジュールされた変更を作成すると、次回の更新時にサブスクリプションを自動的に変更できます。 変更をスケジュールすることで、ライセンス数の増減、請求期間と頻度の変更、SKU のアップグレードを選択することもできます。 変更のスケジュールを設定すると、現在の期間中に直ちに行うのではなく、更新時にサブスクリプションを変更できます。
重要
更新日より前に中期 (即時) の変更を行った場合、更新時に以前に行われる予定だったすべての変更が削除されます。
前提条件
パートナー センターの認証に関するページで説明している資格情報。 このシナリオでは、スタンドアロン アプリとアプリ + ユーザーの両方の資格情報を使った認証がサポートされています。
顧客 ID です (
customer-tenant-id
)。 顧客の ID がわからない場合は、パートナー センターで [顧客] ワークスペースを選び、顧客一覧から顧客を選び、[アカウント] を選んで調べることができます。 顧客の [アカウント] ページの [顧客のアカウント情報] セクションで Microsoft ID を探します。 Microsoft ID は、顧客 ID (customer-tenant-id
) と同じです。サブスクリプション ID。
サブスクリプションで自動更新が有効になっています。
パートナー センターの方法
パートナー センターでサブスクリプションの変更をスケジュールするには:
変更をスケジュールするサブスクリプションを選択します。
自動更新を有効にします。
[Manage Renewal]\(更新の管理\) を選びます。
更新時に行われるサブスクリプションに変更を加えます。
[ Okay を選択してサイド パネルを閉じます。
Submit を選択して変更を保存します。
Note
更新は、期間の最終日の翌日の午前 12 時 (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 |
---|---|
PATCH | {baseURL}/v1/customers/{customer-tenant-id}/subscriptions/{subscription-id} HTTP/1.1 |
URI パラメーター
次の表に、API を呼び出すために必要なクエリ パラメーターを示します。
名前 | タイプ | Required | 説明 |
---|---|---|---|
customer-tenant-id | guid | 年 | 顧客に対応する GUID。 |
subscription-id | guid | 年 | サブスクリプションに対応する GUID。 |
要求ヘッダー
詳細については、「パートナー センター REST ヘッダー」を参照してください。
要求本文
要求本文には、scheduledNextTermInstructions
プロパティが定義された完全な Subscription リソースが必要です。 サブスクリプションの変更をスケジュールするには、 AutoRenewEnabled プロパティが true に設定されていることを確認します。
コンバージョン (EndofSaleWithConversions) オファーによる販売終了時の可用性 ID:
CatalogItemID を返す GetTransitionEligibility。
a. スケジュールされた適格性の種類を必ず設定してください。それ以外の場合、既定値は即時です。
CatalogItemID を使用して availabilityID を抽出します。
Note
GET 可用性を使用して scheduledNextTerm Instructions の可用性を判断し、すべての用語が EOS 状態の場合は、空の一覧が表示されます。 有効なパスを決定する最善の方法は、GetTransitionEligibilty API を呼び出して有効なオプションを返す方法です。
フィールド | Type | Required | 説明 |
---|---|---|---|
scheduledNextTermInstructions | object | 年 | サブスクリプションの次の用語の指示を定義します。 このプロパティには、 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 応答
要求が成功した場合、このメソッドは応答本文で更新された Subscription リソース プロパティを返します。
応答の成功とエラーのコード
各応答には、成功または失敗を示す 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"},
}