首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RequestProductPurchaseAsync抛出平台::InvalidArgumentException^

RequestProductPurchaseAsync抛出平台::InvalidArgumentException^
EN

Stack Overflow用户
提问于 2013-01-07 03:34:38
回答 1查看 673关注 0票数 0

我正在尝试应用程序购买应用程序接口(C++/CX),但RequestProductPurchaseAsync抛出了一个Platform::InvalidArgumentException^

我有以下代码:

代码语言:javascript
复制
// 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应用商店示例项目中使用,则完全相同的代码可以工作,但在我自己的项目中不能工作。(显然使用相同的假冒产品xml文件)。

有没有人能看看?谢谢您:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-01 01:00:59

我找到了解决方案:所有的WinRT存储函数都必须在UI线程上调用,所以从UI线程获取一个CoreDispatcher并保留它,以便通过它调用这些函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14185899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档