Druckdaten-Generierung
Nach dem Tutorial Draft erzeugen (s. Editor-Aufruf) wird nun beschrieben wie eine PDF-Druckdatei eines bestimmten Entwurfs von einem bestimmten Benutzer erzeugt werden kann.
Um im letzten Schritt auf die Druckdatei zugreifen zu können muss die Benutzerkennung bekannt sein.
Folgende Schritte sind durchzuführen:
1. Druckdaten-Generierung planen
Zuerst rufen wir die Methode api-ext/pdf-processing auf und fügen einen Authorisierungs-Header hinzu.
POST /api-ext/pdf-processing HTTP/1.1
Host: testshop.demo.printformer.net
Accept: application/json
Authorization: Bearer 04HjIzShfiAAD7SB32ViD2DeRlEyHd6E
Content-Type: application/json
Content-Length: 150
{
"draftIds": [
"sxoejeaxkplunbbvwgsc5ychkqqeo3y1"
],
"stateChangedNotifyUrl": "https://webhook.site/195f6e9e-adff-441a-bc09-9e727698b685"
}
Key | Value (Wert) |
---|---|
draftIds | Hier kann ein JSON-Array mit DraftIds hinzugefügt werden, für die eine Druckdatei erzeugt werden soll. |
stateChangedNotifyUrl | Hier kann eine URL eingestellt werden, an die der printformer melden kann, dass der Auftrag verarbeitet wurde. Diese Beispieldaten zeigen den Aufbau dieser Benachrichtigung. Die draftStates enthalten jede draftId aus dem Batch-Job. Der Status zeigt ob die Druckdatengenerierung erfolgreich (processed), fehlgeschlagen (failed), in Bearbeitung (in-process) oder ausstehend (pending) war.
CODE
|
Im Response erhalten wir die processingId für diesen Job. Diese ID ist wichtig, um den Status des Batch-Jobs (Stapelverarbeitung) in den nächsten Schritten zu überprüfen.
{
"processingId": "1e0cbbef8b860f779a493c20414026d3"
}
2. Status für den Draft-batch anhand der Verarbeitungs-ID prüfen
Wenn man nicht über die NotifyUrl über den Batch-Job informiert werden möchte, kann der Status auch manuell mit der API-Methode "api-ext/pdf-processing/{processingId}" geprüft werden. Diese API-Methode muss über GET aufgerufen werden.
GET /api-ext/pdf-processing/1e0cbbef8b860f779a493c20414026d3 HTTP/1.1
Host: testshop.demo.printformer.net
Accept: application/json
Authorization: Bearer 04HjIzShfiAAD7SB32ViD2DeRlEyHd6E
Als Response erhalten wir die Rückmeldung ob die Druckdatei generiert wurde
{
"processingId": "1e0cbbef8b860f779a493c20414026d3",
"draftStates": [
{
"draftId": "sxoejeaxkplunbbvwgsc5ychkqqeo3y1",
"state": "processed",
"message": null
}
]
}
3. Druckdatei abrufen
Nach Erhalt der Information, dass der Draft bearbeitet wurde, kann die Druckdatei abgerufen werden. Hierfür kann die Methode "api-ext/files/draft/{draft}/print" verwendet werden.
JWT Token generieren
Um sich als Besitzer eines Drafts anzumelden muss ein JWT Token generiert werden.
Mittels jwt.io kann dieser überprüft werden, im nächsten Schritt wird damit die Editor-URL entschlüsselt, verifiziert und generiert.
Folgende Informationen werden dafür benötigt:
Attribut | Position | Beispiel Value | Beschreibung |
---|---|---|---|
jti | Header | ONVS6545F7ABCDE | Random String, der nur einmal verwendet werden kann |
client | Payload | vD3rU3Qw | printformer API Zugangsdaten |
user | Payload | YNrcxoTy | Benutzer mit dem der Draft erstellt wurde |
iat | Payload | 1516239022 | Zeitstempel |
Danach muss die JWT Signatur mit dem printformer API Key verifiziert werden.
Jetzt können die Druckdaten unter folgender URL abgerufen werden:
{printformer URL}/api-ext/files/draft/{draftId}/print?jwt={JWT Token}
Beispiel-URL:
https://testshop.demo.printformer.net/api-ext/files/draft/b0ad067db9a58dca4fd90eb291246e78/print?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImp0aSI6Ik9OVlM2NTQ1RjdBQkNEWiJ9.eyJjbGllbnQiOiJ2RDNyVTNRdyIsInVzZXIiOiJZTnJjeG9UeSIsImlhdCI6MTUxNjIzOTAyMn0.Px5tC7eTH_jRvhpKMANc9lkFzV7xOfEzLwtJbK-HY9o