Översikt över API för inlämning av privata erbjudanden
Med privata erbjudanden kan utgivare och kunder utföra en eller flera produkter på Azure Marketplace genom att skapa tidsbundna priser med anpassade villkor. API:erna för överföring av privata erbjudanden gör det möjligt för utgivare att programmatiskt skapa och hantera privata erbjudanden för kunder och/eller CSP-partner. Det här API:et använder Microsoft Entra-ID för att autentisera anropen från din app eller tjänst.
Det finns tre huvudsakliga typer av privata erbjudanden som är tillgängliga i Partnercenter och som stöds av API:et för överföring av privata erbjudanden:
- ISV till kundens privata erbjudande – kallas även kundens privata erbjudande i Partnercenter. Det här är ett anpassat avtal mellan en ISV och en specifik kund med anpassade villkor och priser för en specifik produkt på Azure Marketplace. Läs mer om ISV:s privata erbjudande till kunden.
- privat erbjudande från ISV till CSP-partner – kallas även privat erbjudande för CSP-partner i Partnercenter. Med den här typen av privat erbjudande kan ISV ange tidsbunden marginal för att skapa ett grossistpris för sin CSP-partner. Lär dig mer om ISV:s privaterbjudande till CSP-partner.
- Multipartprivat erbjudande(MPO) – ett anpassat avtal som har konfigurerats av en ISV och en prioriterad kanalpartner för en specifik kund med anpassade villkor och priser för specifika produkter på Azure-marknadsplatsen. ISV definierar det rabatterade grossistpriset som görs tillgängligt för partnern, kanalpartnern kan sedan lägga till pålägg ovanpå grossistpriset för att komma fram till det slutliga kundpriset och presenterar erbjudandet för kunden för godkännande och köp. Godkännande och köp av MPO följer samma process som ISV:s privata erbjudanden till kunden. Läs mer om flerparts privat erbjudande.
Terminologi
- MPO-upphovsman – MPO är ett samarbete mellan ISV och kanalpartner på samma anpassade avtal för en specifik kund, den part som först skapar MPO utses till "upphovsman" för erbjudandet, vanligtvis ISV för de produkter som ingår i MPO. Det kan bara finnas en upphovsman för en viss MPO.
- MPO-säljare – Den kanalpartner som förbereder erbjudandet med det slutliga kundpriset och presenterar erbjudandet för kunden är säljaren av MPO. Det kan bara finnas en säljare för en viss MPO.
- Product – en enda enhet som representerar ett erbjudande på Azure Marketplace. Det finns en produkt per listningssida.
- Plan – en enskild version av en viss produkt. Det kan finnas flera planer för en viss produkt som representerar olika prisnivåer eller villkor.
- Job – en uppgift som skapas när du gör en begäran i det här API:et. När du använder det här API:et för att hantera privata erbjudanden och privata erbjudanden för flera delar skapas ett jobb för att slutföra begäran. När jobbet har slutförts kan du få mer information om det relevanta privata erbjudandet (flera delar).
Scenarier som stöds
- Skapa ett privat erbjudande för en kund
- Skapa ett privat erbjudande för en återförsäljare
- Skapa ett privat erbjudande för flera parter för en kund
- Ta bort ett privat erbjudande
- Dra tillbaka ett privat erbjudande
- Fråga efter en lista över privata flerparts erbjudanden
- Fråga efter en lista över produkter och planer
Gör dig redo att använda det här API:et
Innan du skriver kod för att anropa API:et för privata erbjudanden kontrollerar du att du har slutfört följande krav. Samma krav gäller för alla publiceringspartners.
Steg 1: Slutför kraven för att använda Microsofts API för produktinmatning (en gång)
Du eller din organisation måste ha en Microsoft Entra-katalog och global administratörsbehörighet. Om du redan använder Microsoft 365 eller andra företagstjänster från Microsoft har du redan Microsoft Entra-katalog. Annars kan du skapa ett nytt Microsoft Entra-ID i Partnercenter utan kostnad.
Du måste associera en Microsoft Entra ID applikation med ditt Partnercenter-konto och hämta ditt klient-ID, program-ID och nyckel. Du behöver dessa värden för att hämta den Microsoft Entra-åtkomsttoken som du använder i anrop till API:et för privata erbjudanden.
Steg 2: Skaffa en Microsoft Entra-åtkomsttoken (varje gång)
Innan du använder någon av metoderna i Microsoft Store Submission API behöver du en Microsoft Entra-åtkomsttoken för att skicka till auktoriseringsrubriken för varje metod i API:et. Du har 60 minuter på dig att använda en token innan den upphör att gälla. Efter förfallodatumet kan du uppdatera en token så att du kan fortsätta att använda den i ytterligare anrop till API:et.
För att erhålla åtkomsttoken, se Service to Service Calls Using Client Credentials för att skicka en HTTP POST till https://login.microsoftonline.com/<tenant_id>/oauth2/token endpoint. Här är en exempelbegäran:
POST https://login.microsoftonline.com/<tenant_id>/oauth2/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded; charset=utf-8
grant_type=client_credentials
&client_id=<your_client_id>
&client_secret=<your_client_secret>
&resource=https://graph.microsoft.com/
För värdet av tenant-ID i POST-URI:n och parametrarna klient-ID och klient-hemlighet anger du tenant-ID, klient-ID och nyckel för ditt program som du hämtade från Partner Center i föregående avsnitt. För resursparametern måste du ange https://graph.microsoft.com/.
Hitta produkt-, plan- och privata erbjudande-ID:n
ID | Var du hittar dem |
---|---|
client_id | Se Associera ett Microsoft Entra-program med ditt Partnercenter-konto. |
hyresgäst-ID | Se Associera ett Microsoft Entra-program med ditt Partnercenter-konto. |
klientens_hemlighet | Se Associera ett Microsoft Entra-program med ditt Partnercenter-konto. |
produktId | Se avsnittet Hämta produkter i den här artikeln. |
planId | Se Hämta planer för en specifik produkt i den här artikeln. |
privaterbjudandeId | Se Hämta privata erbjudanden i den här artikeln. |
Hämta produkter
Ett privat erbjudande baseras på en befintlig produkt i ditt Partnercenter-konto. Om du vill se en lista över produkter som är associerade med ditt Partnercenter-konto använder du det här API-anropet:
GET https://graph.microsoft.com/rp/product-ingestion/product?$version=2022-07-01
Svaret visas i följande exempelformat:
{
"value": [
{
"$schema": "https://schema.mp.microsoft.com/schema/product/2022-07-01",
"id": "string",
"identity": {
"externalId": "string"
},
"type": "enum",
"alias": "string"
}
],
"@nextLink": "opaque_uri"
}
Hämta planer för en specifik produkt
För produkter som innehåller mer än en plan kanske du vill skapa ett privat erbjudande baserat på en specifik plan. I så fall behöver du planens ID. Hämta en lista över planerna (till exempel varianter eller SKU:er) för produkten med hjälp av följande API-anrop:
GET https://graph.microsoft.com/rp/product-ingestion/plan?product=<product-id>&$version=2022-07-01
Svaret visas i följande exempelformat:
{
"value": [
{
"$schema": "https://schema.mp.microsoft.com/schema/plan/2022-07-01",
"product": "string",
"id": "string",
"identity": {
"externalId": "string"
},
"alias": "string"
}
]
}
Hämta privata erbjudanden
Om du vill se en lista över alla privata erbjudanden, inklusive privata erbjudanden för flera delar, som är associerade med ditt konto, använder du följande API-anrop:
GET https://graph.microsoft.com/rp/product-ingestion/private-offer/query?$version=2023-07-15
Så här använder du API:et
Med API:et för privata erbjudanden kan du skapa och hantera privata erbjudanden som är associerade med produkter och planer i ditt Partnercenter-konto. Här är en sammanfattning av det typiska anropsmönstret när du använder det här API:et.
Steg 1: Gör begäran
När du gör ett API-anrop för att skapa, ta bort, ta bort eller uppgradera ett privat erbjudande skapas ett nytt jobb för att slutföra den begärda aktiviteten. API-svaret innehåller ett jobId som är associerat med jobbet.
Steg 2: Sök efter jobbstatus
Med hjälp av jobId från det första API-svaret kan du söka efter jobbstatus. Jobbets status är antingen Körs eller Slutförd. När jobbet har slutförts blir resultatet antingen Lyckades eller Misslyckades. Undvik prestandaproblem genom att inte kontrollera ett jobb mer än en gång per minut.
jobStatus | Beskrivning |
---|---|
Ej påbörjad | Jobbet har ännu inte startat. detta är en del av svaret på den första begäran. |
Löpning | Jobbet körs fortfarande. |
Fullbordad | Jobbet har slutförts. Mer information finns i jobResult. |
jobbResultat | Beskrivning |
Avvaktan | Jobbet har ännu inte slutförts. |
Lyckades | Jobbet har slutförts. Det här jobbet returnerar också en resourceURI som refererar till det privata erbjudandet som är relaterat till jobbet. Använd den här resurs-URI:n för att hämta fullständig information om ett privat erbjudande. |
Misslyckades | Jobbet misslyckades. Detta returnerar även eventuella relevanta fel som hjälper dig att fastställa orsaken till felet. |
Mer information finns i Fråga status för ett befintligt jobb.
Steg 3: Hämta information från slutförda jobb
Ett lyckat jobb returnerar en *resourceUri* som refererar till det relevanta privata erbjudandet. Använd den här resurs-URI:n för att få mer information om det privata erbjudandet i framtiden, till exempel privateofferId.
Ett misslyckat jobb innehåller fel som ger information om varför jobbet misslyckades och hur du löser problemet.
Mer information finns i Hämta information om ett befintligt privat erbjudande.
Hur ISV och kanalpartner bör samarbeta för multipartsprivata erbjudanden med API:et
Både ISV och kanalpartner kan använda samma API:er för att skapa och hantera ett visst MPO. Resurser i ett MPO som kan påverka API:et beror dock på om anroparen för API:et är ISV (originator) eller kanalpartnern (säljaren) för MPO. Samma ISV/channel-partnerpubliceringsflöde och affärsregler som styr Partnercenter speglas i API:et. Här är en översikt:
API-åtgärd | ISV (Ursprungsgivare) | Kanalpartner (säljare) |
---|---|---|
Skapa |
|
|
Ta bort |
|
|
Dra tillbaka |
|
|