我想对我做通用的Windows平台(UWP)应用中的一些购买,但是当我做这种方式:UWP StoreContext特定用户
auto storeContext = StoreContext::GetDefault();
auto result = co_await storeContext.RequestPurchaseAsync(PRODUCT_STORE_ID);
购买与Microsoft帐户目前完成在调用RequestPurchaseAsync
方法之前在设备中登录。我想要的是使用特定的微软账户(例如[email protected])进行购买,实际上我想要的是拥有与该微软账户相关的storeContext对象,以便我从StoreContext
类调用的每种方法为该微软帐户完成对象。因此,如果购买后我做了以下事情:
auto result = co_await storeContext.GetConsumableBalanceRemainingAsync(PRODUCT_STORE_ID);
我会得到账户[email protected]剩余的余额。其实我不知道该怎么做,因为如果在购买之后和余额请求之前,我从Store应用程序注销,该应用程序是安装在每台Windows 10个人计算机上的应用程序,并且是外部应用程序,即不是我的应用程序,那么余额请求会在我的应用程序中返回一个错误,因为该操作未关联到任何帐户。如果不是仅从商店应用程序注销,我还使用其他Microsoft帐户(例如[email protected])登录,余额请求将在我的应用程序中返回[email protected]的余额,而不是用户1的余额@ gmail.com,这是我想要的。所以我不希望这些外部签名更改会影响我的应用程序行为。
我已经看到StoreContext
类有一个GetForUser
方法,但我还没有找到一种方式来传递像“[email protected]”作为参数。我找到了一种通过非roamable-id创建用户的方法,我不知道如何从用户名中获取该用户。事实上,我不确定GetForUser
方法是否可以用于此目的。除了下面的代码,我的应用程序崩溃:
auto storeContext = StoreContext::GetDefault();
auto user = storeContext.User();
auto nonRoamableId = user.NonRoamableId(); //This line makes my app crash
所以,如果你们任何人有任何想法,将非常感激。
PD:上述代码是使用Visual Studio 2017与C++和cppwinrt项目从https://github.com/Microsoft/cppwinrt