Как получить ключ Microsoft Store ID?
Я пытаюсь узнать, как получить ключ Microsoft Store ID. Для этого я последовал примерам, предоставленным Microsoft в Windows Universal Samples. Я попытался использовать сценарий "Бизнес-бизнес" (сценарий 7). Я уже опубликовал образец приложения и зарегистрировал приложение в Azure Active Directory. Проблема в том, что я не знаю, какое значение следует отправлять в качестве параметра publisherUserId в функциях getCustomerCollectionsIdAsync/getCustomerPurchaseIdAsync. Я попытался отправить электронное письмо текущего пользователя (адрес электронной почты клиента), который извлекает только пустой результат (ключ Microsoft Store ID).
function getCustomerCollectionsId() {
var token = getTokenFromAzureOAuthAsync().done(function (aadToken) {
if (aadToken) {
storeContext.getCustomerCollectionsIdAsync(aadToken, "***@hotmail.com")//"[email protected]"
.done(function (result) {
output.innerText = result;
if (!result) {
WinJS.log && WinJS.log("getCustomerCollectionsIdAsync failed.", "sample", "error");
}
});
}
});
}
function getCustomerPurchaseId() {
var token = getTokenFromAzureOAuthAsync().done(function (aadToken) {
if (aadToken) {
storeContext.getCustomerPurchaseIdAsync(aadToken, "***@hotmail.com")//"[email protected]"
.done(function (result) {
output.innerText = result;
if (!result) {
WinJS.log && WinJS.log("getCustomerPurchaseIdAsync failed.", "sample", "error");
}
});
}
});
}
Ответы
Ответ 1
using Windows.Security.Authentication.Web;
...
string SID = WebAuthenticationBroker.GetCurrentApplicationCallbackUri().ToString();
Вы можете попробовать это, если находитесь на стадии разработки. Это будет полезно, если вы застряли в беспокойстве о том, чтобы отправить приложение в магазин, чтобы сделать что-то вроде аутентификации Facebook. Ниже приводится ссылка, с которой я получил ее. Надеюсь, это помогло!
http://microsoft.github.io/winsdkfb/index.html
Ответ 2
У меня такая же проблема, вот решение работает для меня.
Перейдите на https://portal.azure.com, выберите "Azure Active Directory", выберите "Регистрация приложений", выберите свое приложение на правой панели. затем выберите Манифест, чтобы изменить его манифест. установите следующие поля в значение:
"accessTokenAcceptedVersion": 1,
"identifierUris": [
"https://onestore.microsoft.com",
"https://onestore.microsoft.com/b2b/keys/create/collections",
"https://onestore.microsoft.com/b2b/keys/create/purchase"
],
"signInAudience": "AzureADMyOrg",
И поле ресурса вашего запроса на получение токена (https://login.microsoftonline.com/xxx/oauth2/token) должно быть точной строкой " https://onestore.microsoft.com/b2b/keys/create/collections " (обратите внимание, что доменной частью является "onestore.microsoft.com")
PS: Мой способ узнать это решение:
- используйте ssl прокси charles для записи запроса моего С# проекта с помощью storeContext.getCustomerCollectionsIdAsync api. узнайте, что URL-адрес, который он отправляет, является " https://collections.mp.microsoft.com/v7.0/beneficiaries/me/keys ", и тело запроса содержит маркер, который я ему отправляю.
- используйте прокси-сервер charles ssl для записи запроса другого приложения, которое работает правильно, например, "Hotspot Shield", попробуйте купить что-нибудь из него и отмените его. Найдите запрос URL и загрузите тело запроса и базовый URL base64 для декодирования второй части их токена, найдите, что "aud" это " https://onestore.microsoft.com/b2b/keys/create/collections " и "вер" равен "1,0".
- Измените конфигурацию "Регистрация приложений" и код получения токена, чтобы сделать токен версии 1.0 и "aud" на правильный.
Я думаю, что "Azure Active Directory" является обновлением до версии 2, но документ "Ключ идентификатора Microsoft Store" не обновляется до этой версии...