Покупки из приложения

Microsoft Teams предоставляет API, которые можно использовать для реализации покупок в приложении, позволяющих пользователю перейти с бесплатной версии приложения Teams на платную. Покупка из приложения позволяет преобразовать пользователей из бесплатных в платные планы непосредственно из вашего приложения.

Покупки из приложения позволяют пользователям приобретать новую платную подписку, и это не позволяет пользователям приобретать дополнительные или другие лицензии с существующими платными подписками. Чтобы переключиться между планами, необходимо отменить существующую подписку пользователя, прежде чем новую подписку можно будет приобрести с помощью покупок из приложения.

Примечание.

Покупки из приложения поддерживаются только в личных контекстах приложений.

Реализация покупок в приложении

Чтобы предложить пользователям возможность покупки в приложении, должны быть выполнены следующие условия.

Чтобы обеспечить возможность покупки в приложении, измените файл manifest.json или включите Показывать предложение покупки в приложении в разделе Разрешенияпортала разработчика.

Изменение манифеста

Чтобы включить возможность покупки в приложении, измените файл manifest.json приложения Teams, добавив разрешения RSC. Это позволяет пользователям перейти на платную версию приложения и начать использовать новые функции. Измените манифест приложения, выполнив следующие шаги.


"authorization": {
    "permissions": {
        "resourceSpecific": [
            {
                "name": "InAppPurchase.Allow.User",
                "type": "Delegated"
            }
        ]
    }
}

API покупки

Чтобы инициировать покупку в приложении для вашего веб-приложения, вызовите из него openPurchaseExperienceAPI.

Следующий фрагмент кода является примером вызова 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>

Следующий этап

См. также