我想對我做通用的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