XStoreGetUserPurchaseIdAsync
顧客購入 ID を取得します。 この ID は、現在のユーザーの代わりに無料製品の資格を付与するために使用できる Microsoft Store ID キーを取得します。 この API は、「サービスから製品を管理する」で説明されているフローで使用されます
構文
HRESULT XStoreGetUserPurchaseIdAsync(
const XStoreContextHandle storeContextHandle,
const char* serviceTicket,
const char* publisherUserId,
XAsyncBlock* async
)
パラメーター
storeContextHandle _In_
型: XStoreContextHandle
XStoreCreateContext によって返されるユーザーの Microsoft Store コンテキスト ハンドル。
serviceTicket _In_z_
型: char*
購入に関連付けられているサービス チケット。
publisherUserId _In_z_
型: char*
パブリッシャー ユーザー ID が含まれる文字列。
async _Inout_
型: XAsyncBlock*
行われている非同期処理が定義されている XAsyncBlock。 XAsyncBlock を使用して、呼び出しのステータスをポーリングし、呼び出しの結果を取得できます。 詳細については、「XAsyncBlock」を参照してください。
戻り値
型: HRESULT
HRESULT 成功またはエラー コード。
解説
この関数の実行結果と顧客の購入 ID を取得するには、この関数を呼び出した後で、XStoreGetUserPurchaseIdResult を呼び出します。 顧客の購入 ID のサイズを取得するには、この関数を呼び出した後で、XStoreGetUSerPurchaseIdResultSize を呼び出します。 結果のサイズを把握することで、結果をより効率的に読むことができます。
次のコード スニペットでは、顧客購入 ID を取得する例を示します。
void CALLBACK GetUserPurchaseIdCallback(XAsyncBlock* asyncBlock)
{
size_t size;
HRESULT hr = XStoreGetUserPurchaseIdResultSize(
asyncBlock,
&size);
if (FAILED(hr))
{
printf("Failed retrieve the user purchase ID size: 0x%x\r\n", hr);
return;
}
char* result = new char[size];
hr = XStoreGetUserPurchaseIdResult(
asyncBlock,
size,
result);
if (FAILED(hr))
{
printf("Failed retrieve the user purchase ID result: 0x%x\r\n", hr);
delete[] result;
return;
}
printf("result: %s\r\n", result);
delete[] result;
}
void GetUserPurchaseId(XStoreContextHandle storeContextHandle, XTaskQueueHandle taskQueueHandle, const char* serviceTicket, const char* publisherUserId)
{
auto asyncBlock = std::make_unique<XAsyncBlock>();
ZeroMemory(asyncBlock.get(), sizeof(*asyncBlock));
asyncBlock->queue = taskQueueHandle;
asyncBlock->callback = GetUserPurchaseIdCallback;
HRESULT hr = XStoreGetUserPurchaseIdAsync(
storeContextHandle,
serviceTicket,
publisherUserId,
asyncBlock.get());
if (FAILED(hr))
{
printf("Failed to get user purchase ID: 0x%x\r\n", hr);
return;
}
}
要件
ヘッダー: XStore.h (XGameRuntime.h に含まれます)
ライブラリ: xgameruntime.lib
サポートされているプラットフォーム: Windows、Xbox One ファミリー本体、Xbox Series 本体
関連項目
XStore
XStoreGetUserPurchaseIdResult
XStoreGetUSerPurchaseIdResultSize
サービスから製品を管理する