Eksempel Javascript-kode til at hente klient-id, validere det, og derefter returnere det i svaroverskrift
Nyheder
Kom godt i gang
- Vejledning til hurtig start for administratorer
- Vejledning til hurtig start for brugere
- For udviklere
- Bibliotek med videoselvstudier
- Ofte stillede spørgsmål
Administrer
- Oversigt over Admin Console
- Brugeradministration
- Tilføjelse af brugere
- Opret funktionsfokuserede brugere
- Søg efter brugere med klargøringsfejl
- Skift navn/e-mailadresse
- Rediger en brugers gruppemedlemskab
- Rediger en brugers gruppemedlemskab via gruppegrænsefladen
- Forfrem en bruger til en administratorrolle
- Brugeridentitetstyper og enkeltlogin
- Skift brugeridentitet
- Godkend brugere med MS Azure
- Godkend brugere med Google-føderation
- Produktprofiler
- Login-oplevelse
- Konto-/gruppeindstillinger
- Oversigt over indstillinger
- Globale indstillinger
- Kontoniveau og ID
- Ny modtageroplevelse
- Selvunderskrivelsesarbejdsforløb
- Send i massevis
- Webformularer
- Arbejdsforløb for brugerdefineret afsendelse
- Power Automate-arbejdsforløb
- Biblioteksdokumenter
- Indsaml formulardata med aftaler
- Begrænset dokumentsynlighed
- Vedhæft en PDF-kopi af den underskrevne aftale
- Inkluder et link i mailen
- Medtag et billede i e-mailen
- Filer, der vedhæftes i mail, navngives som
- Vedhæft redigeringsrapport til dokumenter
- Flet flere dokumenter sammen til ét
- Download individuelle dokumenter
- Upload et underskrevet dokument
- Delegering til brugere af min konto
- Tillad eksterne modtagere at delegere
- Tilladelse til at underskrive
- Tilladelse til at sende
- Autoritet til at tilføje elektroniske segl
- Indstil en standardtidszone
- Indstil et standarddatoformat
- Brugere i flere grupper (UMG)
- Tilladelser for gruppeadministratorer
- Udskift modtager
- Revisionsrapport
- Fodnote om transaktion
- Beskeder og vejledning i produktet
- Tilgængelige PDF'er
- Ny oprettelsesoplevelse
- Sundhedsplejekunde
- Kontoopsætning
- Tilføj logo
- Tilpas firmaets værtsnavn/URL
- Tilføj firmanavn
- URL-omdirigering efter aftale
- Signaturindstillinger
- Velformaterede signaturer
- Tillad modtagere at underskrive ved
- Underskrivere kan ændre deres navn
- Tillad modtagere at bruge deres gemte signatur
- Brugerdefinerede vilkår for anvendelse og videregivelse af oplysninger
- Naviger modtagere gennem formularfelter
- Genstart aftalearbejdsforløb
- Afvis at underskrive
- Tillad arbejdsforløb for stempler
- Kræv, at underskrivere angiver deres titel eller virksomhed
- Tillad underskrivere at udskrive og placere en håndskreven signatur
- Vis meddelelser ved e-signering
- Kræve, at underskrivere bruger en mobilenhed til at oprette deres underskrift
- Anmod om IP-adresse fra underskrivere
- Udelad firmanavn og titel fra deltagelsesstempler
- Digitale signaturer
- Elektroniske segl
- Digital identitet
- Rapportindstillinger
- Ny rapportoplevelse
- Klassiske rapportindstillinger
- Sikkerhedsindstillinger
- Indstillinger for Single Sign-on
- Husk mig-indstillinger
- Politik for adgangskode til login
- Styrke af login-adgangskode
- Varighed af websession
- PDF-krypteringstype
- API
- Adgang for bruger- og gruppeoplysninger
- Tilladte IP-områder
- Kontodeling
- Tilladelser til kontodeling
- Kontroller til aftaledeling
- Bekræftelse af underskrivers identitet
- Adgangskode til underskrivelse af aftaler
- Dokumentadgangskodens styrke
- Bloker underskrivere efter geolokalitet
- Telefongodkendelse
- Videnbaseret godkendelse (KBA)
- Tillad sideudtrækning
- Udløb af dokumentlink
- Upload et klientcertifikat til webhooks/tilbagekald
- Tidsstempel
- Afsendelsesindstillinger
- Vis Send-siden efter login
- Kræv modtagernavn ved afsendelse
- Lås navneværdier for kendte brugere
- Tilladte modtagerroller
- Tillad e-vidner
- Modtagergrupper
- CC'er
- Adgang til modtagerrapport
- Obligatoriske felter
- Vedhæftning af dokumenter
- Samkopiering af felter
- Rediger aftaler
- Aftalenavn
- Sprog
- Private beskeder
- Tilladte signaturtyper
- Påmindelser
- Beskyttelse af underskrevne dokumenter med adgangskode
- Send aftalenotifikation via
- Muligheder for underskriveridentifikation
- Indholdsbeskyttelse
- Aktivér Notarize-transaktioner
- Dokumentudløb
- Forhåndsvisning, placer signaturer, og tilføj felter
- Rækkefølge for underskrivelse
- Liquid-tilstand
- Brugerdefinerede arbejdsforløbskontrolelementer
- Uploadindstillinger for e-underskrivelsessiden
- Omdirigering af bekræftelses-URL efter underskrivelse
- Beskedskabeloner
- Indstillinger for biomedicin
- Arbejdsforløbintegration
- Notariseringsindstillinger
- Integration af betalinger
- Underskrivermeddelelser
- SAML-indstillinger
- SAML-konfiguration
- Installer Microsoft Active Directory Federation Service
- Installer Okta
- Installer OneLogin
- Installer Oracle Identity Federation
- SAML-konfiguration
- Dataforvaltning
- Tidsstempelindstillinger
- Eksternt arkiv
- Kontosprog
- E-mailindstillinger
- Migrering fra echosign.com til adobesign.com
- Konfigurer indstillinger for modtagere
- Vejledning om forskriftsmæssige krav
- Hjælp til handicappede
- HIPAA
- Persondataforordning
- 21 CFR del 11 og EudraLex bilag 11
- Kunder i sundhedssektoren
- IVES-understøttelse
- "Lagring" af aftaler
- EU/UK-overvejelser
- Download aftaler i massevis
- Gør krav på dit domæne
- Rapportér misbrug-links
Send, underskriv og administrer aftaler
- Modtagerindstillinger
- Annuller en mailpåmindelse
- Indstillinger på e-underskrivelsessiden
- Oversigt over e-underskrivelsessiden
- Åbn for at læse aftalen uden felter
- Afvis at underskrive en aftale
- Deleger underskrivelsesautoritet
- Genstart aftalen
- Download en PDF af aftalen
- Se aftalens historik
- Vis aftalemeddelelserne
- Konvertér fra elektronisk til håndskreven signatur
- Konvertér fra håndskreven til elektronisk signatur
- Naviger formularfelterne
- Ryd dataene fra formularfelterne
- Forstørrelse og navigation på e-underskrivelsesside
- Skift det sprog, der bruges i aftaleværktøjerne og -oplysningerne
- Gennemse de juridiske meddelelser
- Juster Acrobat Sign-cookieindstillinger
- Send aftaler
- Oprettelse af felter i dokumenter
- Oprettelsesmiljø i appen
- Opret formularer med teksttags
- Opret formularer med Acrobat (AcroForms)
- Felter
- Ofte stillede spørgsmål om oprettelse
- Underskriv aftaler
- Administrer aftaler
- Administrer sideoversigt
- Deleger aftaler
- Udskift modtagere
- Begræns dokumentsynlighed
- Annuller en aftale
- Opret nye påmindelser
- Gennemgå påmindelser
- Annuller en påmindelse
- Få adgang til Power Automate-forløb
- Flere handlinger ...
- Sådan fungerer søgning
- Se en aftale
- Opret en skabelon fra en aftale
- Skjul/vis aftaler fra visning
- Upload en underskrevet aftale
- Rediger en sendt aftales filer og felter
- Rediger en modtagers godkendelsesmetode
- Tilføj eller rediger en udløbsdato
- Føj en note til aftalen
- Del en individuel aftale
- Annuller deling af en aftale
- Download en individuel aftale
- Download de enkelte filer i en aftale
- Download revisionsrapporten for en aftale
- Download feltindholdet af en aftale
- Revisionsrapport
- Rapportering og dataeksport
- Oversigt
- Giv brugere adgang til rapportering
- Rapportdiagrammer
- Dataeksporter
- Omdøb en rapport/eksport
- Dubler en rapport/eksport
- Planlæg en rapport/eksport
- Slet en rapport/eksport
- Brug af kontroltransaktion
Avancerede aftalefunktioner og arbejdsforløb
- Webformularer
- Genanvendelige skabeloner (Biblioteksskabeloner)
- Amerikanske regeringsformularer i Acrobat Sign-biblioteket
- Opret en biblioteksskabelon
- Skift en biblioteksskabelons navn
- Skift en biblioteksskabelons type
- Skift en biblioteksskabelons tilladelsesniveau
- Kopiér, rediger og gem en delt skabelon
- Download de aggregerede feltdata for en biblioteksskabelon
- Overfør ejerskab af webformularer og biblioteksskabeloner
- Power Automate-arbejdsforløb
- Oversigt over Power Automate-integrationen og inkluderede rettigheder
- Aktivér Power Automate-integrationen
- Kontekstintegrerede handlinger på siden Administrer
- Spor Power Automate-brug
- Opret et nyt forløb (eksempler)
- Udløsere, der bruges til forløb
- Import af forløb uden for Acrobat Sign
- Administrer forløb
- Rediger forløb
- Del forløb
- Deaktivere eller aktivere forløb
- Slet forløb
- Nyttige skabeloner
- Kun administrator
- Aftalearkivering
- Arkivering af webformularaftaler
- Gem udfyldte webformulardokumenter i SharePoint-bibliotek
- Gem udfyldte webformulardokumenter i OneDrive for Business
- Gem alle fuldførte dokumenter i Google Drive
- Arkiver udfyldte webformulardokumenter i Box
- Udtrækning af aftaledata
- Aftalenotifikationer
- Send brugerdefinerede mailnotifikationer med dit aftaleindhold og din underskrevne aftale
- Få dine Adobe Acrobat Sign-notifikationer i en Teams-kanal
- Få dine Adobe Acrobat Sign-notifikationer i Slack
- Få dine Adobe Acrobat Sign-notifikationer på Webex
- Aftalegenerering
- Generer dokument fra Power App-formular og Word-skabelon, send til underskrivelse
- Generér aftale fra Word-skabelon i OneDrive, og få signatur
- Generér aftale for markeret Excel-række, send til gennemgang og underskrivelse
- Arbejdsforløb for brugerdefineret afsendelse
- Del brugere og aftaler
Integrer med andre produkter
- Oversigt over Acrobat Sign-integrationer
- Acrobat Sign til Salesforce
- Acrobat Sign til Microsoft
- Andre integrationer
- Partneradministrerede integrationer
- Sådan oprettes en integrationsnøgle
Acrobat Sign-udvikler
- REST API'er
- Webhooks
Support og fejlfinding
Oversigt
En webhook er en brugerdefineret HTTPS-anmodning, der udløses, når en bestemt hændelse opstår på kildewebstedet (Adobe Acrobat Sign i dette tilfælde).
En webhook er derfor blot en REST-tjeneste, der accepterer data eller en strøm af data.
Webhooks er beregnet til tjeneste-til-tjeneste-kommunikation i en PUSH-model.
Når der opstår en abonneret hændelse, skaber Acrobat Sign en HTTPS POST med JSON-brødtekst og leverer det til den angivne URL-adresse.
Før du konfigurerer webhooks, skal du sørge for, at dit netværk accepterer de IP-intervaller, der kræves til funktionalitet.
Webhooks har flere fordele i forhold til den tidligere callback-metode, hvoraf nogle er:
- Administratorer kan aktivere deres egne webhooks uden at skulle involvere Acrobat Sign-support til at vise tilbagekald-URL'en
- Webhooks er bedre i forhold til datas "friskhed", kommunikationseffektivitet og sikkerhed. Ingen meningsmåling påkrævet
- Webhooks giver nemt mulighed for forskellige niveauer af omfang (Konto/Gruppe/Bruger/Ressource).
- Webhooks er en mere moderne API-løsning, der giver mulighed for nemmere konfiguration af moderne programmer
- Flere webhooks kan konfigureres pr. omfang (Konto/Gruppe/Bruger/Ressource), hvor tilbagekald skulle være unikke
- Webhooks giver mulighed for at vælge de data, der skal returneres, hvor tilbagekald er en "alt eller intet"-løsning
- Metadata, der bæres med en webhook, kan konfigureres (grundlæggende eller detaljeret)
- Webhooks er langt nemmere at oprette, redigere eller deaktivere efter behov, da brugergrænsefladen er helt inden for administratorkontrol.
Dette dokument er primært fokuseret på Webhooks-brugergrænseflade i webprogrammet Acrobat Sign (Tidligere Adobe Sign).
Udviklere, der leder efter API-oplysninger, kan finde flere oplysninger her:
Forudsætninger
Du skal lade IP-intervallerne for webhooks passere din netværkssikkerhed for at tjenesten kan fungere.
Den ældre tilbagekaldelses-URL-tjeneste i REST v5 bruger de samme IP-intervaller som webhook-tjenesten.
Administratorer kan logge på Adobe Admin Console for at tilføje brugere. Når du er logget på, skal du gå til administratormenuen og rulle ned til Webhooks.
Sådan bruges det
Administratorer skal først have en webhook-tjeneste, der er klar til at acceptere det indgående push fra Acrobat Sign. Der er mange muligheder i denne henseende, og så længe tjenesten kan acceptere POST- og GET-anmodninger, vil webhook være vellykket.
Når tjenesten er klar, kan en Acrobat Sign-administrator oprette en ny webhook fra Webhook-grænsefladen i Konto-menuen på Acrobat Sign-webstedet.
Administratorer kan konfigurere webhooken til at udløses for hændelserne Aftale, Webformular (widget) eller Send i massevis (MegaSign). Biblioteksskabelon-ressourcen (biblioteksdokument) kan også konfigureres via API'en.
Omfanget af webhooken kan være hele kontoen eller individuelle grupper via administratorgrænsefladen. API'en giver mulighed for mere finkornethed gennem valg af BRUGER- eller RESSOURCE-omfang.
Den type data, der skubbes til webadressen, kan konfigureres og kan omfatte ting som aftaleoplysninger, deltageroplysninger, dokumentoplysninger og så videre.
Når webhooken er konfigureret og gemt, vil Acrobat Sign skubbe et nyt JSON-objekt til den definerede URL, hver gang udløserhændelsen udløses. Ingen løbende manipulation af webhook er påkrævet, medmindre du ønsker at ændre begivenhedens udløserkriterier eller JSON nyttelast.
Godkendelse af hensigten med webhook-URL'en
Før en webhook registreres, kontrollerer Acrobat Sign, om den webhook-URL, der er angivet i registreringsanmodningen, vil modtage notifikationer eller ej. Når Acrobat Sign modtager en ny webhook-registreringsanmodning, foretages der til dette formål først en verifikationsanmodning til webhook-URL'en. Denne bekræftelsesanmodning er en HTTPS GET-anmodning sendt til webhook-URL'en. Denne anmodning har et brugerdefineret HTTP header X-AdobeSign-ClientId. Værdien i denne overskrift er indstillet til klient-id (Application ID) for API-programmet, der anmoder om at oprette/registrere webhooken. For at kunne registrere en webhook skal webhook-URL'en svare på denne verifikationsanmodning med en 2XX-svarkode, OG ydermere SKAL den sende samme klient-id-værdi tilbage på én af følgende to måder:
- I en svaroverskrift X-AdobeSign-ClientId. Det er samme overskrift, der sendes i anmodningen og gentages i svaret.
- Eller i JSON-svarets brødtekst, hvor nøglen til xAdobeSignClientId og dens værdi er samme klient-id, der sendes i anmodningen.
Webhooken vil kun blive registreret på et svar (2XX svarkode) og validering af klient-id enten i overskrift eller svartekst. Formålet med denne bekræftelsesanmodning er at vise, at din webhook-URL virkelig ønsker at modtage notifikationer på den pågældende URL. Hvis du ved et uheld indtastede den forkerte URL, svarer URL'en ikke korrekt på bekræftelsen af hensigten, og Acrobat Sign sender ingen notifikationer til den URL. Derudover kan webhook-URL'en også validere, at den kun vil modtage notifikationer via de webhooks, der er registreret af et bestemt program. Det kan gøres ved at validere klient-id'et for programmet, der blev sendt i X-AdobeSign-ClientId-overskriften. Hvis webhook-URL'en ikke genkender klient-id'et, MÅ DEN IKKE svare med succesresponskoden, og Acrobat Sign vil sørge for, at URL-adressen ikke registreres som en webhook.
Bekræftelsen af webhook URL-opkald vil blive foretaget i følgende scenarier:
- Registrering af webhook: Hvis denne bekræftelse af webhook URL-opkaldet mislykkes, vil webhooken ikke blive oprettet.
- Opdaterer Webhook: INAKTIV til AKTIV: Hvis denne bekræftelse af webhook URL-opkaldet mislykkes, vil webhook-tilstanden ikke blive ændret til AKTIV.
Sådan reagerer du på en webhook-notifikation
Acrobat Sign udfører en implicit verificering af hensigten i hver enkelt webhook-notifikationsanmodning, der sendes til webhook-URL'en. Således indeholder hver enkelt webhook-meddelelse HTTPS-anmodning også den brugerdefinerede HTTP-header kaldet X-AdobeSign-ClientId. Værdien af denne overskrift er klient-id (Application ID) for det program, der oprettede webhook. Vi anser webhook-notifikationen for at være leveret med succes, hvis, og kun hvis, et svar om succes (2XX-svarkode) returneres, og klient-id sendes i enten HTTP-sidehovedet (X-AdobeSign-ClientId) eller i en JSON-svartekst med nøgle som xAdobeSignClientId og værdi som det samme klient-id, ellers forsøger vi igen at levere notifikationen til webhook-URL, indtil forsøgene er opbrugt.
Som nævnt ovenfor er overskriften 'X-AdobeSign-ClientId', som er inkluderet i hver enkelt anmodning om meddelelse fra Sign, værdien af denne overskrift (klient-id) bør ekko tilbage som svar på en af to måder:
1. HTTP-overskrift X-AdobeSign-ClientId og værdi som denne klient-id
|
---|
// Hent klient-id var clientid = request.headers['X-ADOBESIGN-CLIENTID'];
//Valider det if (clientid ==="BGBQIIE7H253K6") // Erstat 'BGBQIIE7H253K6' med klient-id'et for det program, hvormed webhook'en er oprettet { //Return it in response header response.headers['X-AdobeSign-ClientId'] = clientid; response.status = 200; // default value } |
Eksempel på PHP-kode til at hente klient-id, validere det, og derefter returnere det i svaroverskriften |
---|
<?php // Hent klient-id $clientid = $_SERVER['HTTP_X_ADOBESIGN_CLIENTID']; //Valider det if($clientid == "BGBQIIE7H253K6") //Erstat 'BGBQIIE7H253K6' med klient-id'et for det program, hvormed webhook'en er oprettet { //Return it in response header header("X-AdobeSign-ClientId:$clientid"); header("HTTP/1.1 200 OK"); // default value } ?> |
2. JSON-svartekst med nøgle som xAdobeSignClientId og værdi som samme klient-id
Eksempel på Javascript-kode til at hente klient-id, validere den og returnere den i svarteksten |
---|
// Hent klient-id var clientid = request.headers['X-ADOBESIGN-CLIENTID'];
//Valider det if (clientid ==="BGBQIIE7H253K6") // Erstat 'BGBQIIE7H253K6' med klient-id'et for det program, hvormed webhook'en er oprettet { var responseBody = { "xAdobeSignClientId" : clientid // Return Client Id in the body }; response.headers['Content-Type'] = 'application/json'; response.body = responseBody; response.status = 200; } |
Eksempel på PHP-kode til at hente klient-id, validere den, og returnere den i svarteksten |
---|
<?php // Hent klient-id $clientid = $_SERVER['HTTP_X_ADOBESIGN_CLIENTID']; //Valider det if($clientid == "BGBQIIE7H253K6") //Erstat 'BGBQIIE7H253K6' med klient-id'et for det program, hvormed webhook'en er oprettet { //Return it in response body header("Content-Type: application/json"); $body = array('xAdobeSignClientId' => $clientid); echo json_encode($body); header("HTTP/1.1 200 OK"); // default value } ?> |
Eksempel på JSON-svarteksten |
---|
{ "xAdobeSignClientId": "BGBQIIE7H253K6" } |
Forudsætninger
Du skal have:
- En Microsoft-konto med licens til at oprette Azure Functions-programmer
- Du kan oprette et eksisterende Azur Function-program via https://docs.microsoft.com/da-dk/azure/azure-functions/functions-create-first-azure-function
- Grundlæggende kendskab til Javascript, så du kan forstå og skrive koden på et hvilket som helst sprog efter eget valg
Skridt til at oprette en Azure Functions-udløser, der fungerer som en Acrobat Sign-webhook
Sådan opretter du en Javascript HTTP-udløserfunktion:
1. Log ind via din Microsoft-konto https://portal.azure.com/
2. Åbn dit Azure Function-program, som vises under fanen Function-programmer.
Dette vil åbne din liste over Azure Function-programmer:
3. Vælg det program, hvor du vil oprette denne nye funktion
4. Klik på knappen Opret (+) for at oprette en ny Azure-funktion
5. Vælg Webhook + API som scenarie og Javascript som sprog
6. Klik på Opret denne funktion
Der oprettes en ny funktion, der har kan håndtere en indgående API-anmodning.
Tilføj logik for registrere Acrobat Sign-webhook
Før en webhook er registreret, bekræfter Acrobat Sign, at den webhook URL, der er angivet i registreringsanmodningen, virkelig har til hensigt at modtage meddelelser eller ej. Når en ny webhook registreringsanmodning modtages af Acrobat Sign til dette formål, foretager den først en verificeringsanmodning til webhook-URL'en. Denne verificeringsanmodning er en HTTPS GET-anmodning, som er sendt til webhook-URL'en med en brugerdefineret HTTP-overskrift X-AdobeSign-ClientId. Værdien i denne overskrift er indstillet til klient-id for det program, der anmoder om at oprette/registrere webhook. For at kunne registrere en webhook reagerer webhook-URL'en på denne verifikationsanmodning med en 2XX-svarkode, OG den kan desuden sende den samme klient-id-værdi tilbage på én af følgende to måder.
Der er to muligheder, du kan følge:
Valgmulighed 1: Klient-id i X-AdobeSign-ClientId som svaroverskrift
Send X-AdobeSign-ClientId i svaroverskriften. Det er den samme overskrift, der sendes i anmodningen og gentages i svaret.
Erstat Index.js-filen med følgende:
module.exports = function (context, req) {
var clientId = req.headers['x-adobesign-clientid'];
// Validate that the incoming ClientID is genuine
if (clientId === '123XXX456') {
context.res = {
// status: 200, /* Defaults to 200 */ // any 2XX response is acceptable
body: "Notification Accepted",
headers : {
'x-adobesign-clientid' : req.headers['x-adobesign-clientid']
}
};
}
else {
context.res = {
status: 400,
body: "Opps!! Illegitimate Call identified"
};
}
context.done();
};
Test adfærden ved at trods anmodningen:
1. Klik på knappen Test i øverste højre hjørne
2. Trods anmodningen om dummy
Selvom svaroverskrifter ikke er vist ovenfor, kan du stadig observere det ved at trodse det ved hjælp af postbud/DHC eller en anden tjeneste.
Mulighed 2: Klient-id i svarbrødteksten med nøglen xAdobeSignClientId
I JSON-svarets brødtekst, hvor nøglen til xAdobeSignClientId og dens værdi er det samme klient-id, der sendes i anmodningen.
Erstat Index.js-filen med følgende:
module.exports = function (context, req) {
var clientId = req.headers['x-adobesign-clientid'];
// Validate that the incoming ClientID is genuine
if (clientId === '123XXX456') {
context.res = {
// status: 200, /* Defaults to 200 */ // any 2XX response is acceptable
body: {
'xAdobeSignClientId' : clientId
},
headers : {
'Content-Type' : 'application/json'
}
};
}
else {
context.res = {
status: 400,
body: "Opps!! Illegitimate Call identified"
};
}
context.done();
};
Test adfærden ved at trodse anmodningen
1. Klik på knappen Test i øverste højre hjørne
2. Trods anmodningen om dummy
Bemærk også, at den samme adfærd for client-id forventes, når webhook-URL modtager POST-notifikationer.
Klar til brug
Når du har verificeret adfærden, fungerer webhook-URL'en i henhold til Acrobat Sign-standarderne. Du kan yderligere opdatere den brugerdefinerede logik i henhold til dine krav.
Hent funktions-URL
- Klik på Hent funktions-URL
Kopiér URL'en, og brug den til at oprette webhooks i Acrobat Sign.
Oprettelse af AWS Lambda-funktionen
For at oprette en AWS Lambda-funktion skal du logge ind på din AWS Management Console og vælge AWS Lambda-tjenesten fra listen over tjenester.
- Klik på indstillingen Opret en Lambda-funktion vha. "Forfatter fra bunden"
- På siden Konfigurer funktion indtaster du funktionsnavnet "lambdaWebhooks" og vælger Node.js 4.3 som Runtime
- For Rollen, skal du vælge en eksisterende rolle, eller oprette en ny rolle fra skabelon(er)
- Hvis du har valgt Opret ny rolle fra skabelon(er), skal du indtaste et rollenavn (f.eks. rollelamda) og vælge Simple Microservices-tilladelser fra listen Poiliti-skabeloner
- Klik på knappen Opret funktion
- På den nye AWS lamda funktionsside skal du vælge "Rediger kode i linje" som "Kodeindstastningstype" og beholde index.handler som Handler.
- Tilføj logik for at registrere Acrobat Sign Webhook
Før en webhook er registreret, bekræfter Acrobat Sign, at den webhook URL, der er angivet i registreringsanmodningen, virkelig har til hensigt at modtage meddelelser eller ej. Når en ny webhook registreringsanmodning modtages af Acrobat Sign til dette formål, foretager den først en verificeringsanmodning til webhook-URL'en. Denne verificeringsanmodning er en HTTPS GET-anmodning, som er sendt til webhook-URL'en med en brugerdefineret HTTP-overskrift X-AdobeSign-ClientId. Værdien i denne overskrift er indstillet til klient-id for det program, der anmoder om at oprette/registrere webhook. For at kunne registrere en webhook reagerer webhook-URL'en på denne verifikationsanmodning med en 2XX-svarkode, OG den kan desuden sende den samme klient-id-værdi tilbage på én af følgende to måder. Bemærk også, at den samme adfærd for client-id forventes, når webhook-URL modtager POST-notifikationer.
Følg et af de to tilfælde:
Tilfælde 1: Send Client-Id i X-AdobeSign-ClientId som svaroverskrift
- Send X-AdobeSign-ClientId i svaroverskriften. Det er den samme overskrift, der sendes i anmodningen og gentages i svaret.
Kodestykke
I index.js-filen skal du erstatte den automatisk genererede kodestykke med følgende kode:
- Send X-AdobeSign-ClientId i svaroverskriften. Det er den samme overskrift, der sendes i anmodningen og gentages i svaret.
Prøveknude JS-kode til at hente klient-id, validere det, og derefter returnere det i svaroverskrift |
---|
exports.handler = function index(event, context, callback) { // Hent klient-id var clientid = event.headers['X-AdobeSign-ClientId'];
//Valider det if (clientid =="BGBQIIE7H253K6") // Erstat 'BGBQIIE7H253K6' med klient-id'et for det program, hvormed webhook'en er oprettet { var response = { statusCode: 200, headers: { "X-AdobeSign-ClientId": clientid } }; callback(null,response); } else { callback("Oops!! illegitimate call"); } } |
Case 2: Klient-id i svarlegemet med nøgle xAdobeSignClientId
I JSON-svarets brødtekst, hvor nøglen til xAdobeSignClientId og dens værdi er det samme klient-id, der sendes i anmodningen.
Kodestykke
Erstat Index.js-filen med følgende:
Prøveknude JS-kode til at hente klient-id, validere det, og derefter returnere det i svaroverskrift |
---|
exports.handler = function index(event, context, callback) { // Hent klient-id var clientid = event.headers['X-AdobeSign-ClientId'];
//Valider det if (clientid =="BGBQIIE7H253K6") // Erstat 'BGBQIIE7H253K6' med klient-id'et for det program, hvormed webhook'en er oprettet { var responseBody = { xAdobeSignClientId : clientid };
var response = { statusCode: 200, body: JSON.stringify(responseBody) };
callback(null,response); } else { callback("Opps!! illegitimate call"); } } |
- Gem funktionen. Lambda-funktionen er skabt, og vi er næsten klar til at bruge den i en webhook i realtid.
Konfiguration af AWS API Gateway
For at gøre denne Lambda offentligt tilgængelig via en HTTP-metode skal vi konfigurere AWS API Gateway ved hjælp af vores funktion (oprettet ovenfor) som backend for API'en.
Vælg API-gatewayen fra AWS-tjenesterne i AWS Management Console, og klik på knappen Opret API
- Vælg Ny API på siden Opret ny API, og indtast webhooks som API-navn.
- Klik på knappen Opret API
- Vælg rullelisten Handlinger, og vælg indstillingen Opret ressource
- Markér muligheden Konfigurer som en proxyressource, og angiv valider som Ressourcenanv og {proxy+} i Ressourcesti
- Lad indstillingen Aktiver API Gateway CORS være umarkeret, og klik på knappen Opret ressource
- Hold Lambda Function Proxy valgt som Integrationstype, og vælg det område, hvor du har oprettet din Lambda-funktion i rullelisten Lambda-region (sandsynligvis er det samme område, hvor du opretter API Gateway).
- Indtast valider som Lambda-funktionen og klik på knappen Gem
- I pop op-vinduet Tilføj tilladelse til Lambda-funktion skal du vælge OK
Hvis alle ovenstående trin udføres korrekt, ser du noget som dette:
Implementering af API
Det næste skridt er at implementere denne API, så den bliver klar til brug.
- I rullemenuen Handlinger skal du vælge Implementer API
- Vælg [Ny fase] i implementeringsfasen, og indtast prod (eller noget, du gerne vil identificere denne fase) i fase-navnet
- Klik på knappen Udrul
API er nu klar til brug, og du kan finde den finde URL i den blå boks, som vises herunder:
Bemærk denne webadresse, da du skal angive den som din webadresse til webhook i realtid.
Klar til brug
Det er gjort. Brug url'en ovenfor med "/{nodeJSfunctionName}"POST /webhooks API-anmodning. Når du har verificeret adfærden, er webhook-URL'en funktionel i henhold til
Acrobat Sign-standarder. Du kan yderligere opdatere/tilføje den brugerdefinerede logik i henhold til dit krav.
Aktivering og deaktivering
Adgang til Webhooks-funktionen er som standard aktiveret for Enterprise-konti.
Administratorer på gruppeniveau kan oprette/styre de webhooks, der kun opererer inden for deres gruppe.
Adgang til Webhooks-siden kan findes i venstre skinne i Admin-menuen.
Samtidighedsbaseret satsbegrænsning
Oprettelses- og notifikationshændelser for webhook (og tilbagekaldelse) er begrænset i antallet af samtidige notifikationer, der aktivt leveres til kunden fra Acrobat Sign-systemet. Denne grænse gælder for kontoen, så den inkluderer alle grupper på kontoen.
Denne type satsbegrænsning forhindrer en dårligt designet konto i at bruge en for stor mængde serverressourcer og har dermed en negativ effekt på alle andre kunder i det pågældende servermiljø.
Antallet af samtidige hændelser pr. konto er blevet beregnet for at sikre, at konti med velfungerende webhooks modtager deres meddelelser hurtigst muligt og sjældent oplever, at meddelelser forsinkes på grund af for mange anmodninger. De nuværende tærskler er:
Handling |
Maksimalt antal |
Beskrivelse |
Oprettelse af Webhook |
10 |
Højst ti samtidige forespørgsler om oprettelse af webhook er tilladt pr. konto. |
Webhook-/tilbagekaldsmeddelelse |
30 |
Det maksimale antal samtidige webhook- og tilbagekaldelsesmeddelelser pr. konto er 30. |
Anbefalede fremgangsmåder
- Abonner på specifikke, nødvendige hændelser for at begrænse antallet af HTTPS-anmodninger til serveren – jo mere specifik du kan lave dine webhooks, jo mindre volumen skal du gennemgå.
- Vær dubletresistent - Hvis du har mere end én app, der deler den samme webhook-URL og den samme bruger tilknyttet hver app, sendes den samme begivenhed til din webhook flere gange (én gang pr. app). I nogle tilfælde kan din webhook modtage duplikerede begivenheder. Din webhook applikation skal være tolerant over for dette og udlede af event-ID.
- Svar altid hurtigt på webhooks – din app har kun 5 sekunder til at svare på webhook-forespørgsler. For bekræftelsesanmodningen er dette sjældent et problem, da din app ikke behøver at gøre noget rigtigt arbejde for at svare. For notifikationsanmodninger vil din app normalt gøre noget, der tager tid, som svar på anmodningen. Det anbefales at arbejde på en separat tråd eller asynkront med en kø for at sikre, at du kan svare inden for fem sekunder
- Administrer samtidighed – når en bruger foretager en række ændringer hurtigt efter hinanden, vil din app sandsynligvis modtage flere notifikationer for den samme bruger på omtrent samme tid. Hvis du ikke er forsigtig med, hvordan du administrerer samtidighed, kan din app ende med at behandle de samme ændringer for den samme bruger mere end én gang. For at drage fordel af Acrobat Sign-webhooks skal en klar forståelse af brugen af oplysningerne forstås. Sørg for at stille spørgsmål som:
- Hvilke data vil du returnere i nyttedataene?
- Hvem får adgang til disse oplysninger?
- Hvilke beslutninger eller rapporter bliver der genereret?
- Anbefalinger til modtagelse af et underskrevet dokument – der er flere faktorer, der skal overvejes, når du beslutter, hvordan du modtager en underskrevet PDF fra Acrobat Sign i dit dokumenthåndteringssystem.
Selvom det er helt acceptabelt at vælge muligheden Aftalesigneret dokument, mens du opretter en webhook, kan du overveje at bruge Acrobat Sign API til at hente dokumenterne, når en udløsende begivenhed (såsom aftalestatus Komplet) modtages.
Ting at huske på ...
JSON størrelsesbegrænsning
JSON nyttelasten er begrænset til 10 MB.
Hvis en begivenhed genererer en større nyttelast, vil en webhook blive udløst, men de betingede parameterattributter, hvis der i anmodningen, vil blive fjernet for at reducere størrelsen af nyttelasten.
"ConditionalParametersTrimmed" vil blive returneret i svaret, når dette sker for at informere klienten om, at oplysningerne conditionalParameters er blevet fjernet.
“conditionalParametersTrimmed” er et array-objekt, der indeholder oplysninger om de nøgler, der er blevet trimmet.
Trunkeringen vil blive udført i følgende rækkefølge :
- includeSignedDocuments
- includeParticipantsInfo
- includeDocumentsInfo
- includeDetailedInfo
Underskrevne dokumenter afkortes først, efterfulgt af deltageroplysninger, dokumentoplysninger og endelig detaljerede oplysninger.
Dette kan f.eks. ske på en aftalefuldførelseshændelse, hvis den omfatter underskrevet dokument (base 64-kodet) samt for en aftale med flere formularfelter
Acrobat Sign-webhooks leverer notifikationer til afsenderen af aftalen og enhver webhook, der er konfigureret inden for den gruppe, som aftalen blev sendt fra. Konto-webhooks modtager alle hændelser.
Afsender: Bruger A | Underskriver: Bruger B | Modtager: Bruger C
Bruger A og Bruger B er på forskellige konti
Bruger A og Bruger C er på forskellige konti
Brugssituation |
Notifikation? |
Kommentarer/noter |
Bruger A's konto har webhook på KONTO-niveau (oprettet af bruger A eller kontoadministrator). |
Ja |
En webhook på KONTO-niveau får besked om alle hændelser, der udløses på den konto. |
Bruger A's konto har webhook på GRUPPE-niveau (oprettet af bruger A/kontoadministrator). Antagelse: Bruger A og gruppeadministrator er i samme gruppe. |
Ja |
En webhook på GRUPPE-niveau får besked om alle hændelser, der udløses i den gruppe. |
Bruger A har webhook på BRUGER-niveau. |
Ja |
Som afsender udløses bruger A's webhook på BRUGER-niveau |
Bruger A har webhook på RESSOURCE-niveau (for ovenstående sendte aftale). |
Ja |
|
Bruger B's konto har webhook på KONTO-niveau (oprettet af bruger B eller kontoadministrator). |
Nej |
Bruger B's webhook på KONTO-niveau betragtes som en underskriverwebhook. |
Bruger B's konto har webhook på GRUPPE-niveau (oprettet af bruger B eller konto-/gruppeadministrator). Antagelse: Bruger B og gruppeadministrator er i samme gruppe. |
Nej |
Bruger B's webhook på GRUPPE-niveau betragtes som en underskriverwebhook. |
Bruger B har webhook på BRUGER-niveau. |
Nej |
Bruger B's webhook på BRUGER-niveau betragtes som en underskriverwebhook. |
Bruger C's konto har webhook på KONTO-niveau (oprettet af bruger C eller kontoadministrator). |
Nej |
Bruger C's webhook på KONTO-niveau betragtes som en webhook uden ophavsmand. |
Bruger C's konto har webhook på GRUPPE-niveau (oprettet af bruger C eller konto-/gruppeadministrator). Antagelse: Bruger C og gruppeadministrator er i samme gruppe. |
Nej |
Bruger C's webhook på GRUPPE-niveau betragtes som en webhook uden ophavsmand. |
Bruger C har webhook på BRUGER-niveau. |
Nej |
Bruger C's webhook på BRUGER-niveau betragtes som en webhook uden ophavsmand. |
Afsender: Bruger A | Underskriver: Bruger B | Modtager: Bruger C
Bruger A, Bruger B og Bruger C er på samme konto
Brugssituation |
Notifikation? |
Noter |
Bruger A's konto har webhook på KONTO-niveau (oprettet af bruger A eller kontoadministrator). |
Ja |
Underretning for webhooks på KONTO-niveau om hændelser udløst af kontoen. |
Bruger A's konto har webhook på GRUPPE-niveau (oprettet af bruger A/kontoadministrator). Antagelse: Bruger A og gruppeadministrator er i samme gruppe. |
Ja |
Underretning for webhooks på GRUPPE-niveau om hændelser udløst af brugere i deres gruppe. |
Bruger A har webhook på BRUGER-niveau. |
Ja |
Som afsender udløses bruger A's webhook på Bruger-niveau |
Bruger A har webhook på RESSOURCE-niveau (for ovenstående sendte aftale). |
Ja |
|
Bruger B's konto har webhook på KONTO-niveau (oprettet af bruger B eller kontoadministrator). |
Ja |
Da bruger A og bruger B er på samme konto, underrettes en webhook på KONTO-niveau om alle hændelser, der udløses på den konto. |
Bruger B's konto har webhook på GRUPPE-niveau (oprettet af bruger B eller konto-/gruppeadministrator). Antagelse: Bruger A, Bruger B og gruppeadministrator er i samme gruppe. |
Ja |
Da bruger A og bruger B er i samme gruppe, underrettes en webhook på GRUPPE-niveau om alle hændelser, der udløses i den gruppe. |
Bruger B's konto har webhook på GRUPPE-niveau (oprettet af bruger B eller konto-/gruppeadministrator). Antagelse: Bruger A og Bruger B er i forskellige grupper. |
Nej |
Bruger B's webhook på GRUPPE-niveau betragtes som en underskriverwebhook. Bruger A's webhook (RESSOURCE/BRUGER/GRUPPE/KONTO) udløses. |
Bruger B har webhook på BRUGER-niveau. |
Nej |
Som modtager udløses bruger B's webhook på BRUGER-niveau ikke. |
Bruger C's konto har webhook på KONTO-niveau (oprettet af bruger C eller kontoadministrator). |
Ja |
Da bruger A og bruger C er på samme konto, underrettes en webhook på KONTO-niveau om alle hændelser, der udløses på den konto. |
Bruger C's konto har webhook på GRUPPE-niveau (oprettet af bruger C eller konto-/gruppeadministrator). Antagelse: Bruger A, Bruger C gruppeadministrator er i samme gruppe. |
Ja |
Da bruger A og bruger C er i samme gruppe, underrettes en webhook på GRUPPE-niveau om alle hændelser, der udløses i den gruppe. |
Bruger C's konto har webhook på GRUPPE-niveau (oprettet af bruger C eller konto-/gruppeadministrator). Antagelse: Bruger A og Bruger C er i forskellige grupper. |
Nej |
Bruger C's webhook på GRUPPE-niveau betragtes som en webhook uden ophavsmand. Bruger A's webhook (RESSOURCE/BRUGER/GRUPPE/KONTO) udløses. |
Bruger C har webhook på BRUGER-niveau. |
Nej |
Bruger C's webhook på BRUGER-niveau betragtes som en webhook uden ophavsmand. |
Prøv igen, når lyttetjenesten er nede
Hvis mål-URL'en til webhooken er nede af en eller anden grund, sætter Acrobat Sign JSON i kø og prøver igen i en progressiv cyklus over 72 timer.
De ikke-leverede hændelser forbliver i en "forsøg igen"-kø, og der gøres den bedste indsats i løbet af de næste 72 timer for at levere notifikationerne i den rækkefølge, de opstod i.
Strategien for at prøve at levere notifikationer igen er en fordobling af tiden mellem forsøg, startende med et interval på 1 minut, der stiger til hver 12. time, hvilket resulterer i 15 forsøg i løbet af 72 timer.
Hvis webhook-modtageren ikke svarer inden for 72 timer, og der ikke har været nogen vellykkede notifikationsleverancer inden for de sidste syv dage, deaktiveres webhooken. Der sendes ingen notifikationer til denne webadresse, før webhook er aktiveret igen.
Alle meddelelser mellem den tid webhook er deaktiveret og derefter aktiveret går igen tabt.