コンシューマブルな製品をフルフィルメント完了として報告する

特定のユーザーについてコンシューマブルな製品をフルフィルメント完了として報告するには、Microsoft Store コレクション API の以下のメソッドを使います。 ユーザーがコンシューマブルな製品を再購入するには、アプリまたはサービスが、そのユーザーについてコンシューマブルな製品をフルフィルメント完了と報告している必要があります。

このメソッドを使用してコンシューマブルな製品をフルフィルメント完了として報告するには、次の 2 つの方法があります。

  • コンシューマブルの項目 ID (製品の照会itemId パラメーターとして返されるもの)、およびユーザー指定の一意の追跡 ID を指定します。 複数の試行で同じ追跡 ID が使用される場合、項目が既に消費されている場合でも同じ結果が返されます。 消費要求が成功したかどうかがわからない場合は、サービスは同じ追跡 ID を使用して消費要求を再送信する必要があります。 追跡 ID は常にその消費要求に関連付けられており、無限に再送信できます。
  • 製品 ID (製品の照会productId パラメーターで返されるもの)、および以下の要求の本文セクションの transactionId パラメーターの記述にあるいずれかのソースから取得されるトランザクション ID を指定します。

Microsoft.StoreServices ライブラリは、StoreServicesClient.CollectionsConsumeAsync API を介して、このメソッドの機能を提供します。

前提条件

このメソッドを使用するための要件:

  • 対象ユーザー URI の値が https://onestore.microsoft.com の Azure AD アクセス トークン。
  • コンシューマブルな製品をフルフィルメント完了として報告するユーザーの ID を表す Microsoft Store ID キー。

詳しくは、「サービスによる製品の権利の管理」をご覧ください。

要求

要求の構文

認証方法 要求 URI
POST https://collections.mp.microsoft.com/v6.0/collections/consume

要求ヘッダー

Header 種類 説明
承認 string 必須。 Bearer<トークン> という形式の Azure AD アクセス トークン。
Host string collections.mp.microsoft.com に設定する必要があります。
Content-Length number 要求本文の長さです。
Content-Type string 要求と応答の種類を指定します。 現時点では、サポートされている唯一の値は application/json です。

要求本文

パラメーター 種類 説明 必須
beneficiary UserIdentity この項目が使用されているユーザー。 詳細については、後の表を参照してください。 はい
itemId string 製品の照会で返される itemId 値。 このパラメーターは trackingId と共に使用します。 No
trackingId guid 開発者により指定される一意の追跡 ID。 このパラメーターは itemId と共に使用します。 No
productId string 製品の照会で返される productId 値。 このパラメーターは transactionId と共に使用します。 No
transactionId guid 次のいずれかのソースから取得されるトランザクション ID 値。 このパラメーターは productId と共に使用します。 No

UserIdentity オブジェクトには以下のパラメーターが含まれています。

パラメーター 種類 説明 必須
identityType string 文字列値 b2b を指定します。 はい
identityValue string コンシューマブルな製品をフルフィルメント完了として報告するユーザーの ID を表す Microsoft Store ID キー はい
localTicketReference string 返された応答で必要な識別子。 Microsoft Store ID キーの userId要求と同じ値を使用することをお勧めします。 はい

要求例

次の例では、itemIdtrackingId を使用します。

POST https://collections.mp.microsoft.com/v6.0/collections/consume HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJKV1…..
Host: collections.mp.microsoft.com
Content-Length: 2050
Content-Type: application/json

{
    "beneficiary": {
        "localTicketReference": "testreference",
        "identityValue": "eyJ0eXAiOi…..",
        "identityType": "b2b"
    },
    "itemId": "44c26106-4979-457b-af34-609ae97a084f",
    "trackingId": "44db79ca-e31d-49e9-8896-fa5c7f892b40"
}

次の例では、productIdtransactionId を使用します。

POST https://collections.mp.microsoft.com/v6.0/collections/consume HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJKV1……
Content-Length: 1880
Content-Type: application/json
Host: collections.md.mp.microsoft.com

{
    "beneficiary" : {
        "localTicketReference" : "testReference",
        "identityValue" : "eyJ0eXAiOiJ…..",
        "identitytype" : "b2b"
    },
    "productId" : "9NBLGGH5WVP6",
    "transactionId" : "08a14c7c-1892-49fc-9135-190ca4f10490"
}

Response

使用が正常に実行された場合、コンテンツは返されません。

応答の例

HTTP/1.1 204 No Content
Content-Length: 0
MS-CorrelationId: 386f733d-bc66-4bf9-9b6f-a1ad417f97f0
MS-RequestId: e488cd0a-9fb6-4c2c-bb77-e5100d3c15b1
MS-CV: 5.1
MS-ServerId: 030011326
Date: Tue, 22 Sep 2015 20:40:55 GMT

エラー コード

コード エラー 内部エラー コード 説明
401 権限がありません AuthenticationTokenInvalid Azure AD アクセス トークンが無効です。 場合によっては、ServiceError の詳細に追加情報が含まれていることがあります (トークンの有効期限切れや appid 要求の欠落など)。
401 権限がありません PartnerAadTicketRequired Azure AD アクセス トークンが承認ヘッダーでサービスに渡されませんでした。
401 権限がありません InconsistentClientId 要求本文の Microsoft Store ID の clientId 要求と承認ヘッダーの Azure AD アクセス トークンの appid 要求が一致しません。