0

アプリ内購入API(C ++ / CX)を試していますRequestProductPurchaseAsyncが、Platform::InvalidArgumentException^

私は次のコードを持っています:

// loading store
create_task(CurrentAppSimulator::LoadListingInformationAsync()).then([](ListingInformation^ listing)
{
    auto product1 = listing->ProductListings->Lookup("product1");
    auto product2 = listing->ProductListings->Lookup("product2");
});

//after that finishes I try to purchase product2
auto licenseInformation = CurrentAppSimulator::LicenseInformation;
if (!licenseInformation->ProductLicenses->Lookup("product2")->IsActive)
{
 // this exact next line throws InvalidArgumentException
 auto op = CurrentAppSimulator::RequestProductPurchaseAsync("product2", true); // throws !!!!!
 auto purchaseTask = create_task(op);

 purchaseTask.then([](task<Platform::String^> currentTask)
    {
        ...
    });
}
else ...

これとまったく同じコードは、Windows Storeのサンプルプロジェクトで使用されている場合は機能しますが、私自身のプロジェクトでは機能しません。(明らかに同じ偽の製品のxmlファイルを使用)。

誰でも見ることができますか?ありがとうございました :)

4

1 に答える 1

0

私は解決策を見つけました。すべてのWinRTストア関数はUIスレッドで呼び出す必要があるため、UIスレッドからCoreDispatcherを取得し、それを介してそれらの関数を呼び出すように保持します。

于 2013-01-31T17:00:58.867 に答える