Покупки из приложения
Microsoft Teams предоставляет API, которые можно использовать для реализации покупок в приложении, позволяющих пользователю перейти с бесплатной версии приложения Teams на платную. Покупка из приложения позволяет преобразовать пользователей из бесплатных в платные планы непосредственно из вашего приложения.
Покупки из приложения позволяют пользователям приобретать новую платную подписку, и это не позволяет пользователям приобретать дополнительные или другие лицензии с существующими платными подписками. Чтобы переключиться между планами, необходимо отменить существующую подписку пользователя, прежде чем новую подписку можно будет приобрести с помощью покупок из приложения.
Примечание.
Покупки из приложения поддерживаются только в личных контекстах приложений.
Реализация покупок в приложении
Чтобы предложить пользователям возможность покупки в приложении, должны быть выполнены следующие условия.
Приложение создается с помощью клиентской библиотеки JavaScript (TeamsJS) Microsoft Teams.
К приложению добавлено предложение SaaS, поддерживающее транзакции.
В приложении включены разрешения RSC.
Приложение вызывается через API
openPurchaseExperience
.
Чтобы обеспечить возможность покупки в приложении, измените файл manifest.json
или включите Показывать предложение покупки в приложении в разделе Разрешенияпортала разработчика.
Изменение манифеста
Чтобы включить возможность покупки в приложении, измените файл manifest.json
приложения Teams, добавив разрешения RSC. Это позволяет пользователям перейти на платную версию приложения и начать использовать новые функции. Измените манифест приложения, выполнив следующие шаги.
"authorization": {
"permissions": {
"resourceSpecific": [
{
"name": "InAppPurchase.Allow.User",
"type": "Delegated"
}
]
}
}
API покупки
Чтобы инициировать покупку в приложении для вашего веб-приложения, вызовите из него openPurchaseExperience
API.
Следующий фрагмент кода является примером вызова API из приложения Teams, созданного с помощью клиентской библиотеки JavaScript в Microsoft Teams:
<div>
<div class="sectionTitle">openPurchaseExperience</div>
<button onclick="openPurchaseExperience()">openPurchaseExperience</button>
</div>
</body>
<script>
function openPurchaseExperience()
microsoftTeams.initialize();
let callbackcalled = false;
microsoftTeams.monetization.openPurchaseExperience((e) => {
console.log("callback is being called");
console.log(e);
if (!!e && typeof e !== "string") {
alert(JSON.stringify(e));
}
return;
});
console.log("after callback: ",callbackcalled);
}
</script>
Следующий этап
Platform Docs