다음을 통해 공유


XStoreShowPurchaseUIAsync

지정된 제품에 대한 구매 UI 오버레이를 시작합니다.

구문

HRESULT XStoreShowPurchaseUIAsync(  
         const XStoreContextHandle storeContextHandle,  
         const char* storeId,  
         const char* name,  
         const char* extendedJsonData,  
         XAsyncBlock* async  
)  

매개 변수

storeContextHandle _In_
형식: XStoreContextHandle

XStoreCreateContext가 반환하는 사용자의 Microsoft Store 컨텍스트 핸들입니다.

storeId _In_z_
형식: char*

구입할 제품의 ID입니다.

name _In_opt_z_
형식: char*

구입할 제품의 이름입니다.

extendedJsonData _In_opt_z_
형식: char*

구매 흐름에 전달되는 json blob입니다. 사용자 지정 캠페인 ID 삽입을 허용하기 때문에, 구매 시작 방법을 추적할 수 있습니다.

async _Inout_
형식: XAsyncBlock*

수행할 비동기 작업을 정의하는 XAsyncBlock입니다. 호출의 상태를 폴링하고 호출 결과를 검색하기 위해 사용할 수 있는 XAsyncBlock입니다. 자세한 내용은 XAsyncBlock을 참조하세요.

반환 값

형식: HRESULT

HRESULT 성공 또는 오류 코드입니다.

비고

! [참고] 이 작업은 예상 구매 후 항목의 다운로드 또는 설치를 트리거하지 않습니다. 이 콘텐츠를 다운로드하여 설치하려면 구매 후 XStoreDownloadAndInstallPackagesAsync를 호출하는 것이 좋습니다. 사용자에게 추가 프롬프트가 제공되지 않습니다.

! [참고] PC에서 구매 성공 후 표시되는 구매 확인 대화 상자에 맨 위에 닫기 단추 [X]가 있습니다. 확인 대신 이 옵션을 선택하면 E_ABORT 에 XStoreShowPurchaseUIResult반환됩니다. 이 경우 원하지 않을 수 있습니다. 이러한 방식으로 대화 상자가 닫혀 있는 경우 표준 Windows 동작입니다.

이 함수의 결과를 검색하려면 이 함수를 호출한 후 XStoreShowPurchaseUIResult를 호출합니다. 이 함수는 사용자가 다른 항목의 구입을 선택했을 때만 호출해야 하며, 결제 정보를 처리하고 사용자 확인 과정을 처리하는 모달 구매 대화 상자가 시스템에서 제공되게 합니다.

다음의 코드 조각은 특정한 상점 제품에 대한 구매 요청 사례를 표시합니다.

void CALLBACK ShowPurchaseUICallback(XAsyncBlock* asyncBlock)
{
    HRESULT hr = XStoreShowPurchaseUIResult(asyncBlock);

    if (FAILED(hr))
    {
        printf("Failed the purchase: 0x%x\r\n", hr);
        return;
    }
}

void ShowPurchaseUI(XStoreContextHandle storeContextHandle, XTaskQueueHandle taskQueueHandle, const char* storeId)
{
    auto asyncBlock = std::make_unique<XAsyncBlock>();
    ZeroMemory(asyncBlock.get(), sizeof(*asyncBlock));
    asyncBlock->queue = taskQueueHandle;
    asyncBlock->callback = ShowPurchaseUICallback;

    HRESULT hr = XStoreShowPurchaseUIAsync(
        storeContextHandle,
        storeId,
        nullptr,    // Can be used to override the title bar text
        nullptr,    // Can be used to provide extra details to purchase
        asyncBlock.get());

    if (FAILED(hr))
    {
        printf("Failed to purchase: 0x%x\r\n", hr);
        return;
    }
}

요구 사항

헤더: XStore.h(XGameRuntime.h에 포함됨)

라이브러리: xgameruntime.lib

지원되는 플랫폼: Windows, Xbox One 패밀리 콘솔 및 Xbox Series 콘솔

참고 항목

XStore
XStoreShowPurchaseUIResult