コンシューマブルな製品をフルフィルメント完了として報告する
特定のユーザーについてコンシューマブルな製品をフルフィルメント完了として報告するには、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 claim と同じ値を使用することをお勧めします。 | はい |
要求例
次の例では、itemId と trackingId を使用します。
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"
}
次の例では、productId と transactionId を使用します。
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 要求が一致しません。 |