page_type | products | languages | extensions | description | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
sample |
|
|
|
Learn how to create a simple license management system to manage Add-ins sold in Microsoft AppSource. |
This code sample demonstrates how Microsoft ISVs can create a simple license management system to manage Add-ins sold in Microsoft AppSource. This code sample package includes a Microsoft AppSource mock web app, a SaaS sample, a Teams Tab app, a Teams Bot(C#) app, a Teams Bot(JavaScript) app, a SharePoint Framework (SPFx) add-in, Outlook, Word, Excel, and PowerPoint Add-ins, and a licensing management tool.
Follow the instructions in the deployment guides to install and configure the sample.
-
Teams Add-in deployment guide:
-
Additional Add-ins deployment guides:
Follow the instructions in the test guide to test the different use cases.
This section links to the various README files associated with the projects included in the sample. Read the README files for more information about each project.
- Teams Tab App
- Teams Bot (C#) App
- Teams Bot (JavaScript) App
- AppSourceMockWebApp
- Microsoft.Identity.Web
- MockAppData
- OutlookAddIn
- OutlookAddInWeb
- WordAddIn
- WordAddInWeb
- ExcelAddIn
- ExcelAddInWeb
- PowerPointAddIn
- PowerPointAddInWeb
- ProviderHostedAddIn
- ProviderHostedAddInWeb
- SharePointHostedAddIn
- SaaSSampleWebApi
- SaaSSampleWebApp
- SPFx
This matrix describes the UI actions and how they correlate to different API calls.
UI where the API is invoked | API call | Able to test the production API without the offer being published to the public? |
---|---|---|
Resolve a subscription in purchase process: HttpPost [https://marketplaceapi.microsoft.com/api/saas/subscriptions/resolve?api-version=2018-08-31] |
No | |
Activate a subscription in purchase process: HttpPost [https://marketplaceapi.microsoft.com/api/saas/subscriptions/0aa95e32-8be7-4e5e-94f9-563f6d7d9dcd/activate?api-version=2018-08-31] |
No |
A Provider-Hosted SharePoint Add-in cannot target a .NETCORE web project. In this sample, the Provider-Hosted SharePoint Add-in web project targets a .NET Framework project.
In all of the other Add-ins in this sample, we get the OfferID from the SaaSOfferMockData project. However, the SaaSOfferMockData project is a .NETCORE project. Therefore, we cannot reference it in the Provider-Hosted SharePoint Add-in project. Additionally, we cannot reference it in the SharePoint-Hosted Add-in project, because we use JavaScript to query license status.
To work around this technical limitation, the OfferID is hardcoded in the AzureADAuthController.cs class in the Provider-Hosted Add-in, and it is hardcoded in the app.js file in the SharePoint-Hosted Add-in.
Copyright (c) 2020 Microsoft Corporation. All rights reserved.