パートナー センター API を使用して Microsoft 顧客契約へのお客様の同意を確認する

適用対象: パートナー センター

適用対象外: 21Vianet が運営するパートナー センター | Microsoft Cloud for US Government のパートナー センター

現在、パートナー センターでは、Microsoft 顧客契約に対するお客様の同意の確認を、Microsoft パブリック クラウドでのみサポートしています。

この記事では、Microsoft 顧客契約に対する顧客の同意を確認または再確認する方法について説明します。

前提条件

  • パートナー センター .NET SDK を使用している場合、バージョン 1.14 以降が必要です。

重要

2023 年 6 月の時点で、最新のパートナー センター .NET SDK リリース 3.4.0 がアーカイブされるようになりました。 SDK リリースは、有用な情報が記載された readme ファイルと一緒に GitHub からダウンロードできます。

パートナーの皆様には、パートナー センター REST API を引き続き使用することをお勧めします。

  • パートナー センターの認証に関するページで説明している資格情報。 このシナリオでは、アプリとユーザー認証のみがサポートされます。

  • 顧客 ID です (customer-tenant-id)。 顧客の ID がわからない場合は、[顧客] ワークスペースを選択し、顧客の一覧から顧客を選択し、[アカウント] を選択して、パートナー センター検索できます。 顧客の [アカウント] ページで、[顧客アカウント情報] セクションで Microsoft ID をします。 Microsoft ID は、顧客 ID (customer-tenant-id) と同じです。

  • 顧客が Microsoft 顧客契約に同意したときの日付 (dateAgreed)。

  • Microsoft 顧客契約に同意した顧客組織のユーザーに関する情報。 これには、次のものが含まれます。

    • メール アドレス
    • 電話番号 (省略可能)
  • 顧客に対して次の値が変更された場合、パートナー センター では、その顧客に対して別の契約を作成できます。名、姓、電子メール アドレス、電話番号。そうしないと、重複する顧客が作成されるために、パートナーは次のエラー コードを受け取ります。

{
"code": 600061,
"message": "A partner confirmed agreement already exists for the customer.",
"description": "A partner confirmed agreement already exists for the customer.",
"errorName": "PartnerConfirmedAgreementAlreadyExists",
"isRetryable": false,
"parameters": {},
"errorMessageExtended": "InternalErrorCode=600061"
}

.NET

Microsoft 顧客契約に対する顧客の同意を確認または再確認するには、次のようにします。

  1. Microsoft 顧客契約の契約メタデータを取得します。 Microsoft 顧客契約の templateId を取得する必要があります。 詳細については、「Microsoft 顧客契約の契約メタデータを取得する」を参照してください。

    // IAggregatePartner partnerOperations;
    
    string agreementType = "MicrosoftCustomerAgreement";
    
    var microsoftCustomerAgreementDetails = partnerOperations.AgreementDetails.ByAgreementType(agreementType).Get().Items.Single();
    
  2. 確認の詳細を含む新しい Agreement オブジェクトを作成します。

  3. IAgreggatePartner コレクションを使用して、指定された customer-tenant-idById メソッドを呼び出します。

  4. Agreements プロパティを使用し、Create または CreateAsync を呼び出します。

    // string selectedCustomerId;
    
    var agreementToCreate = new Agreement
    {
        DateAgreed = DateTime.UtcNow,
        TemplateId = microsoftCustomerAgreementDetails.TemplateId,
        PrimaryContact = new Contact
        {
            FirstName = "Tania",
            LastName = "Carr",
            Email = "someone@example.com",
            PhoneNumber = "1234567890"
        }
    };
    
    Agreement agreement = partnerOperations.Customers.ById(selectedCustomerId).Agreements.Create(agreementToCreate);
    

完全なサンプルについては、コンソール テスト アプリ プロジェクトの CreateCustomerAgreement クラスを参照してください。

REST 要求

Microsoft 顧客契約に対する顧客の同意を確認または再確認するには、次のようにします。

  1. Microsoft 顧客契約の契約メタデータを取得します。 Microsoft 顧客契約の templateId を取得する必要があります。 詳細については、「Microsoft 顧客契約の契約メタデータを取得する」を参照してください。

  2. 顧客が Microsoft 顧客契約に同意していることを確認するために新しい Agreementリソースを作成します。 次の REST 要求構文を使用します。

要求の構文

認証方法 要求 URI
POST {baseURL}/v1/customers/{customer-tenant-id}/agreements HTTP/1.1

URI パラメーター

次のクエリ パラメーターを使用して、確認する顧客を指定します。

名前 タイプ Required 説明
customer-tenant-id GUID はい この値は、顧客を指定できるようにする識別子である、GUID 形式の customer-tenant-id です。

要求ヘッダー

詳細については、「パートナー センター REST ヘッダー」を参照してください。

要求本文

次の表では、REST 要求本文の必須プロパティについて説明しています。

名前 タイプ 説明
契約 object Microsoft 顧客契約に対する顧客の同意を確認するためにパートナーにより指定される詳細。

契約

次の表では、Agreement リソースを作成するために最低限必要なフィールドについて説明します。

プロパティ タイプ 説明
primaryContact 取引先担当者 Microsoft 顧客契約に同意した顧客組織のユーザーに関する情報 (firstNamelastNameemailphoneNumber (省略可能))
dateAgreed UTC 日時形式の文字列 顧客が契約に同意した日付。
templateId string 顧客が同意した契約の種類を表す一意の識別子。 Microsoft 顧客契約の契約メタデータを取得することで、Microsoft 顧客契約の templateId を取得できます。 詳細については、「Microsoft 顧客契約の契約メタデータを取得する」を参照してください。
type string 顧客が同意した契約の種類。 顧客が Microsoft 顧客契約に同意している場合には、"MicrosoftCustomerAgreement" を使用します。

要求の例

POST https://api.partnercenter.microsoft.com/v1/customers/14876998-c0dc-46e6-9d0c-65a57a6c32ec/agreements HTTP/1.1
Authorization: Bearer <token>
Content-Type: application/json
MS-RequestId: 94e4e214-6b06-4fb7-96d1-94d559f9b47f
MS-CorrelationId: ab993325-1605-4cf4-bac4-fb584142a31b
{
    "primaryContact": {
        "firstName": "Tania",
        "lastName": "Carr",
        "email": "someone@example.com",
        "phoneNumber": "1234567890"
    },
    "templateId": "117a77b0-9360-443b-8795-c6dedc750cf9",
    "dateAgreed": "2018-06-14T00:00:00.000Z",
    "type": "MicrosoftCustomerAgreement"
}

REST 応答

成功した場合、このメソッドは Agreement リソースを返します。

応答の成功とエラーのコード

各応答には、成功または失敗を示す HTTP ステータス コードと、追加のデバッグ情報が付属しています。

このコード、エラーの種類、追加のパラメーターを読み取るには、ネットワーク トレース ツールを使用します。 完全な一覧については、パートナー センターの REST エラーコードに関する記事を参照してください。

応答の例

HTTP/1.1 201 Created
Content-Length: 261
Content-Type: application/json
MS-RequestId: 94e4e214-6b06-4fb7-96d1-94d559f9b47f
MS-CorrelationId: ab993325-1605-4cf4-bac4-fb584142a31b
{
    "userId": "3d6f2c09-eb40-48ca-a4b3-d24c9c007531",
    "primaryContact": {
        "firstName": "Tania",
        "lastName": "Carr",
        "email": "someone@example.com",
        "phoneNumber": "1234567890"
    },
    "templateId": "117a77b0-9360-443b-8795-c6dedc750cf9",
    "dateAgreed": "2018-06-14T00:00:00.000Z",
    "type": "MicrosoftCustomerAgreement"
}