Aktivera och avaktivera tjänster i Vitec Express

← Alla tjänsteintegrationer

Beskrivning

En aktiverbar tjänst är en partnertjänst som användaren aktiverar och avaktiverar på ett objekt under affärens gång, istället för att beställa en gång.

Skillnaden mot standardflödet är att det inte finns någon beställning som levereras och blir klar. Tjänsten har istället ett läge: aktiv eller avaktiverad. Varje gång användaren ändrar läget anropar Vitec Express er, och ni svarar på om det gick bra.

Använd detta flöde när er tjänst ska följa objektet över tid, t. ex. en bevakning eller en publicering som ska kunna stängas av igen.

Så här ser det ut för användaren

Tjänsten visas i tjänstelistan på objektet med en aktiveringsknapp. När användaren aktiverar tjänsten flyttas den upp bland de aktiva tjänsterna, och när den avaktiveras hamnar den tillbaka bland de tillgängliga tjänsterna.

Aktiverbara tjänster har varken knappen "Beställ" eller "Avbeställ", och de har inget avbeställningsflöde. Hela interaktionen sker via aktiveringsknappen.

Medan anropet till er pågår är knappen låst. Svarar ni med ett fel så återgår knappen till sitt tidigare läge och användaren får ert felmeddelande.

Komma igång

Börja med att registrera er i vår Connectportal.

Meddela oss på Vitec med följande information genom att klicka här:

  • Partner id eller namn så att vi kan identifiera er i Connectportalen.
  • Namn på tjänsten.
  • Beskrivning av tjänsten.
  • Bas-url till er tjänst.
  • Om ni vill ha en gemensam endpoint eller två separata för aktivering respektive avaktivering, se Konfiguration nedan.
  • Taggningar, ord som användaren ska kunna söka på för att hitta tjänsten.
  • Särskilda önskemål (Är det t. ex. endast vissa kunder som ska kunna använda tjänsten?).

Vi märker upp tjänsten som aktiverbar på vår sida. Det är den märkningen som gör att aktiveringsknappen visas i Vitec Express istället för det vanliga beställningsflödet.

Fundera gärna också på vilka metoder det är ni skulle behöva nyttja i Connect.

Autentisering

Tokenbaserad autentisering innebär att vi genererar en token och skickar med i alla anrop till er. Tokenet skickas som en parameter i URL:en tillsammans med ett kund-id (customerId), på samma sätt som i standardflödet.

https://my-service.example/activation?customerId=M123&isActive=true&token=B2aJbxq%2FHPX567%2F8QBjwuGxKtL1wcDF9amnY%2BJLe1BEff7qWesnZvw%3D%3D


För att få ut parametrarna som rör tokenet så anropa Connect via denna metod

Autentisering med basic authentication sker via HTTP headern "Authorization: Basic {value}".

Övriga parametrar skickas direkt i URL:en.


För bättre autentiseringsskydd så rekommenderar vi den tokenbaserade autentiseringen.

Ingen autentisering, vi skickar parametrarna direkt i URL:en.

Konfiguration

På tjänsten anges de sökvägar vi ska anropa. Sökvägarna är relativa mot er bas-url. Ni väljer mellan två upplägg, och valet styr om vi skickar med parametern isActive.

Ni anger en sökväg som tar emot både aktivering och avaktivering. Vi skickar då alltid med parametern isActive, som talar om vilket läge användaren har valt: true när tjänsten aktiveras och false när den avaktiveras.

Med sökvägen /api/service/activation anropar vi:

  • GET {bas-url}/api/service/activation?customerId=M123&isActive=true
  • GET {bas-url}/api/service/activation?customerId=M123&isActive=false

Välj detta om ni hanterar båda fallen i samma endpoint.

Ni anger två sökvägar, en för att aktivera tjänsten och en för att avaktivera den.

Parametern isActive skickas inte i det här upplägget, eftersom sökvägen redan säger vad som ska hända.

Med sökvägarna /api/service/activate och /api/service/deactivate anropar vi:

  • GET {bas-url}/api/service/activate?customerId=M123
  • GET {bas-url}/api/service/deactivate?customerId=M123

Välj detta om ni har skilda endpoints för de två fallen.

Flöde

Översikt av flödet:

sequenceDiagram title Aktivera och avaktivera tjänst actor User as Användare participant Express participant Partner opt Aktivera tjänsten User->>+Express: Aktiverar tjänsten Express->>+Partner: GET aktivera (isActive=true) Partner-->>-Express: HTTP 200 Express->>Express: Sätter status OrderReceived Express-->>-User: Tjänsten visas som aktiv end opt Avaktivera tjänsten User->>+Express: Avaktiverar tjänsten Express->>+Partner: GET avaktivera (isActive=false) Partner-->>-Express: HTTP 200 Express->>Express: Sätter status Delivered Express-->>-User: Tjänsten visas som avslutad end opt Fel hos partnern User->>+Express: Aktiverar eller avaktiverar Express->>+Partner: GET aktivera eller avaktivera Partner-->>-Express: Fel, eller isSuccessful false Express->>Express: Ingen status sparas Express-->>-User: Felmeddelande, knappen återgår end opt Schemalagd händelse Express->>+Partner: GET aktivera eller avaktivera Partner-->>-Express: HTTP 200 Express->>Express: Sätter status end
Anrop vid aktivering och avaktivering

Aktivering och avaktivering sker med ett GET-anrop mot er bas-url sammansatt med den konfigurerade sökvägen. Till skillnad från standardflödet öppnas ingen sida för användaren, utan anropet sker i bakgrunden medan användaren väntar.

För bostäder så kommer ni att få följande information i anropet:

Via URL parametrar.

  • customerId, id på kontoret.
  • token, token.
  • isActive, true eller false (endast om ni har en gemensam endpoint).

Via Connect

  • OrderId, id på beställningen.
  • UserId, id på inloggad användare.
  • CustomerId, id på kontoret.
  • TenantId, id på kundens miljö.
  • ChainId, id på kedjan (Endast med om kontoret tillhör en kedja).
  • TargetId, id på bostaden.
  • TargetType, typen av bostad (Motsvarar de typer som går att hämta via Connect).
  • OrderUserId, ägare för beställningen.

Via URL parametrar.

  • orderId, id på beställningen.
  • userId, id på användaren som äger beställningen.
  • currentUserId, id på inloggad användare.
  • customerId, id på kontoret.
  • chainId, id på kedjan (Endast med om kontoret tillhör en kedja).
  • estateId, id på bostaden.
  • estateType, typen av bostad (Motsvarar de typer som går att hämta via Connect).
  • isActive, true eller false (endast om ni har en gemensam endpoint).

Observera att samma orderId följer med varje gång tjänsten aktiveras eller avaktiveras på ett och samma objekt. Det är alltså inte en ny beställning varje gång användaren aktiverar tjänsten igen.

Vi väntar på ert svar innan användaren får återkoppling. Standardtiden är 60 sekunder, men vi kan konfigurera en annan tid för er tjänst om ni behöver längre tid.

Svar

Vi vill att ni svarar med statuskod 200 när ändringen har genomförts hos er. Alla andra statuskoder tolkas som fel.

Ni kan också svara med en body för att styra vad användaren får se. En body med isSuccessful satt till false behandlas som ett fel även om ni svarar med statuskod 200.

En tom body eller följande räcker för att ändringen ska räknas som genomförd.

{
  "isSuccessful": true
}

displayedMessage är den text som visas för användaren i Vitec Express. errorMessage är den tekniska texten som loggas.

{
  "isSuccessful": false,
  "errors": [
    {
      "errorMessage": "Subscription 4711 is not valid for this estate",
      "displayedMessage": "Tjänsten kunde inte aktiveras eftersom abonnemanget har gått ut."
    }
  ]
}
Status och felhantering

I det här flödet är det Vitec Express som äger statusen på beställningen. Efter ett lyckat anrop till er sätter vi själva statusen:

  • Tjänsten aktiveras: status sätts till OrderReceived, och tjänsten visas som aktiv.
  • Tjänsten avaktiveras: status sätts till Delivered, och tjänsten visas som avslutad.

Blir det fel sparas ingenting. Det innebär att tjänsten behåller det läge den hade innan användaren försökte ändra den, och att användaren kan försöka igen.

Ni ska därför inte använda metoden för att uppdatera orderstatus för att styra om tjänsten är på eller av. Aktiveringsknappen i Vitec Express läser av statusen på beställningen, så egna statusuppdateringar gör att knappen visar fel läge och att användaren får notifieringar som inte hör hemma i det här flödet. Av samma skäl ingår inte användarinteraktioner i det här flödet.

Behöver ni meddela användaren något, gör det i svaret på anropet via displayedMessage.

Schemalagda händelser

En aktiverbar tjänst kan även aktiveras eller avaktiveras automatiskt genom Schemalagda händelser i Vitec Express, t. ex. när ett objekt byter status.

Anropet till er ser exakt likadant ut som när en användare gör ändringen manuellt. Räkna alltså med att kunna ta emot aktiveringar och avaktiveringar utan att någon användare sitter och väntar just då.