Alle kodeeksempler kommer i C# (.NET), Java, og Node.js varianter. Kodeeksemplerne kan downloades fra: CPR Code samples Bitbucket. Bemærk dog at kun java eksempler er fuldt udbygget.
For at kunne anvende kodeeksemplerne, er det nødvendigt at have et idriftsættelsesmiljø installeret, i de downloadede kodeeksemplers sprog.
Environment | Minimum Version | Notes |
---|---|---|
Java | JDK 17 | No implementation-specific notes. |
.NET (C#) | 8.0 | No implementation-specific notes. |
Node.js | På vej. |
Samtlige kodeeksempler er blevet testet i Windows 10 (x64).
Kodeeksempler til CPR interface kan dowloades med Git:
.NET: git clone https://bitbucket.org/cprcodesamples/gctp-examples-csharp.git Java: git clone https://bitbucket.org/cprcodesamples/gctp-examples-java.git Node.js: På vej |
Hvis du ikke har Git installeret (eller foretrækker et grafisk user interface), kan du downloade kodeeksemplerne fra CPR code samples Bitbucket:
Så snart kodeeksemplerne er downloadet, vil det være muligt at pakke arkivet ud til en mappe efter eget valg.
For instruktioner om de kommandoer, der er nødvendige for at køre de specifikke kodeeksempler, se Bitbucket repository, som du hentede eksemplet fra.
Her vises eksempler på hvordan forskellige GCTP forespørgsler og responser ser ud inklusiv visse HTTP header nogle HTTP header værdier undlades.
POST /cpr-online-gctp/gctp HTTP/1.1 Host: gctp.cpr.dk User-Agent: CPR/1.0 Content-Length: 184 Content-Type: text/xml <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> <root xmlns="http://www.cpr.dk"> <Gctp v="2.0"> <Sik function="signon" userid="PERSONKODE" password="PASSWORD"/> </Gctp> </root> |
Bemærk at "userid" og "password" værdier skal udfyldes korrekt.
HTTP/1.1 200 Date: Thu, 25 Nov 2021 15:29:22 GMT Set-Cookie: Token=...; Expires=Thu, 25-Nov-2021 17:29:22 GMT Content-Type: text/xml;charset=ISO-8859-1 Content-Length: 118 Set-Cookie: AlteonP=201618953; path=/; secure; HttpOnly; SameSite=Lax <root xmlns="http://www.cpr.dk"> <Gctp v="2.0"> <Sik> <Kvit r="returKode" t="Signon udført" v="900"/> </Sik> </Gctp> </root> |
Bemærk at der findes flere Set-Cookie HTTP headers. Brugerens login token er angivet som cookie i en Set-Cookie header og GCTP-respons kvitteringen har værdi 900 (signon udført).
HTTP/1.1 200 Date: Thu, 25 Nov 2021 15:29:22 GMT Content-Type: text/xml;charset=ISO-8859-1 Content-Length: 130 Set-Cookie: AlteonP=201618953; path=/; secure; HttpOnly; SameSite=Lax <root xmlns="http://www.cpr.dk"> <Gctp v="2.0"> <Sik> <Kvit r="returKode" t="Ugyldig kodeord indtastet" v="905"/> </Sik> </Gctp> </root> |
Bemærk at HTTP statuskoden er 200 og brugeren er ikke logget på systemet (ingen Set-Cookie HTTP header der indeholder et token). GCTP-respons kvitteringen har værdi 905 (Ugyldig kodeord indtastet).
POST /cpr-online-gctp/gctp HTTP/1.1 Host: gctp.cpr.dk User-Agent: CPR/1.0 Cookie: Token=... Content-Type: text/xml Content-Length: 260 <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> <root xmlns="http://www.cpr.dk"> <Gctp v="2.0"> <System r="CprSoeg"> <Service r="STAMP"> <CprServiceHeader r="STAMP"> <Key> <Field r="PNR" v="0000009999"/> </Key> </CprServiceHeader> </Service> </System> </Gctp> |
Bemærk at login token er angivet som den eneste cookie i Cookie HTTP-headeren.
HTTP/1.1 200 Date: Thu, 25 Nov 2021 15:49:06 GMT Content-Type: text/xml;charset=ISO-8859-1 Content-Length: 1136 Set-Cookie: AlteonP=257126245; path=/; secure; HttpOnly; SameSite=Lax <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> <root xmlns="http://www.cpr.dk"> <Gctp v="2.0" env=""> <System r="CprSoeg"> <Service r="STAMP"> <CprServiceHeader r="STAMP" ts="20211125165745906505"/> <CprData u="O"> <Rolle r="HovedRolle"> <Praes r="STAMPNR"> <Field r="PNR" v="0000009999"/> <Field r="I_VENT_MRK"/> <Field r="ADRNVN" v="Efternavn,Fornavn Mellemnavn" t="Fornavn Mellemnavn Efternavn"/> <Field r="KOEN" v="K"/> <Field r="STATUS" v="01"/> <Field r="STARTDATOSTATUS"/> <Field r="PNRGAELD"/> <Field r="FOEDDATO" v="19700101"/> <Field r="FOEDDATOUSM"/> <Field r="BESKYT"/> <Field r="CONVN"/> <Field r="ETAGE"/> <Field r="HUSNR" v="007"/> <Field r="SIDEDOER"/> <Field r="BNR"/> <Field r="KOMKOD" v="0000" t="Kommunenavn" tl="Udvidet kommunenavn"/> <Field r="VEJKOD" v="0000" t="Testvej"/> <Field r="BYNVN"/> <Field r="LOKALITET"/> <Field r="POSTNR" v="0000" t="Postdistriktsnavn"/> <Field r="UDR_LANDEKOD"/> <Field r="UDLANDSADR1"/> <Field r="UDLANDSADR2"/> <Field r="UDLANDSADR3"/> <Field r="UDLANDSADR4"/> <Field r="UDLANDSADR5"/> <Field r="STADR" v="Vejnavn 7"/> </Praes> </Rolle> </CprData> <Kvit r="Ok" t="" v="0"/> </Service> </System> </Gctp> </root> |
Bemærk at GCTP-respons kvitteringen har værdi 0 (Ok).
HTTP/1.1 200 Date: Thu, 25 Nov 2021 15:49:06 GMT Content-Type: text/xml;charset=ISO-8859-1 Content-Length: 308 Set-Cookie: AlteonP=257126245; path=/; secure; HttpOnly; SameSite=Lax <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> <root xmlns="http://www.cpr.dk"> <Gctp v="2.0" env=""> <System r="CprSoeg"> <Service r="STAMP"> <CprServiceHeader r="STAMP" ts="20211125170558453023"/> <Kvit r="Fejl" t="Personen 000000-9999 findes ikke i CPR." v="172"/> </Service> </System> </Gctp> </root> |
Bemærk at HTTP statuskoden er 200 og GCTP-respons kvitteringen har værdi 172 (Personen findes ikke i CPR).
Som udgangspunkt returneres der altid statuskode 200 i HTTP-responsen hvis den pågældende GCTP-service har svaret. I så fald skal GCTP-responsen i HTTP-responsens "body" fortolkes for at afgøre resultatet af forespørgslen.
Der anbefales følgende i forhold til fortolkning af GCTP-responserne: