Skip to content

Instantly share code, notes, and snippets.

@rena2019
Last active September 30, 2024 23:37
Show Gist options
  • Save rena2019/a2d32769a685ed26c3e3b3bbfe151859 to your computer and use it in GitHub Desktop.
Save rena2019/a2d32769a685ed26c3e3b3bbfe151859 to your computer and use it in GitHub Desktop.
DeutschlandTicket Anomalien

DeutschlandTicket Anomalien

Einige DeutschlandTickets sind anders als die anderen. Preislich soll es für 49EUR starten und für ganz Deutschland einen bestimmten Featureset mitbringen. Folgende Verkehrsverbunde wollen allerdings Zusatzoptionen anbieten:

Falls Ihr noch weitere kennt: einfach unten als Kommentar oder via Twitter ergaenzen

  • Dresdner Verkehrsbetriebe AG (DVB) @ Verkehrsverbund Oberelbe (VVO) bzw siehe PDF vom VVO

    • Deutschlandticket Plus Mitnahme (+10 EUR)
      Berechtigt zur Mitnahme im Verkehrsverbund Oberelbe (VVO) von einem Hund oder einem Fahrrad ohne zeitliche Einschränkung sowie einem weiteren Erwachsenen und bis zu vier Schülern bis zum 15. Geburtstag von Montag bis Freitag zwischen 18 und 4 Uhr sowie ganztags an Wochenenden und Feiertagen.
    • Deutschlandticket Plus MOBI (+7EUR)
      Die Nutzung des MOBIbikes ist in den ersten 30 Minuten kostenfrei und ab der 31. Minute zahlen Sie nur 1 Euro je 30 Minuten (24 Stunden-Tarif = 15 Euro). Bei MOBIcar zahlen Sie keine Kaution, keinen Startpreis und keine monatliche Grundgebühr.
  • Verkehrs- und Tarifverbund Stuttgart GmbH (VVS)

    • VVS-TicketPlus (+9,90 EUR)
      Für 9,90 Euro monatlich ist das DeutschlandTicket im VVS-Gebiet übertragbar und kann beliebig an andere Personen weitergegeben werden. Zusätzlich dürfen damit am Wochenende und feiertags sowie unter der Woche ab 19 Uhr ein Erwachsener sowie bis zu drei oder alle eigenen Kinder bis einschließlich 17 Jahre im VVS-Gebiet kostenlos mitfahren.
    • 1. Klasse Zuschlag (+49 EUR)
      Keine Lust auf 2. Klasse? Dann jetzt das Upgrade zum DeutchlandTicket dazubestellen und für 49 Euro monatlich im gesamten VVS-Gebiet in der 1. Klasse fahren.
  • Stadtwerke Bielefeld (moBiel)

    • Vorteile
      Wir erweitern unsere Abo-Vorteile auf alle Deutschlandtickets, die bei moBiel bestellt werden:
      • 60 Freiminuten bei jeder Ausleihe beim Fahrradverleihsystem von meinSiggi
      • einmalig 50 Freiminuten beim Verleihsystem der E-Roller von meineAlma
      • 8,50 € Startguthaben und 30% Rabatt bei jeder Fahrt beim E-Carsharing CITYca
      • die Anmeldegebühr von 30,00 € entfällt beim Carsharing cambio
      • Teilnahme am Bonusprogramm »Ihr Plus zum Abo«
      • erweiterte Mobilitätsgarantie
  • Verkehrsverbund Mittelsachsen (VMS)

    • VMS-DeutschlandTicket+ (10EUR)
      • Mitnahme von bis zu fünf Personen, davon maximal eine Person ab dem 15. Geburtstag: montags bis freitags von 18 Uhr bis 4 Uhr des Folgetages. An Wochenenden und Feiertagen gilt die Regelung ganztags
      • Ganztägige Mitnahme eines Hundes oder eines Fahrrades
      • Es gilt im gesamten Gebiet des VMS, außer in der Drahtseilbahn Augustusburg und der Fichtelbergbahn
  • Verkehrsverbund Rhein-Neckar (VRN)

    • Vorteile
      Für die Mitnahme von Hunden und Fahrrädern gelten die Regelungen des örtlichen Verkehrsverbundes. Das heißt im Gebiet des VRN wird gemäß den VRN-Tarifbestimmungen für Hunde, die nicht in einer Hundetransportbox mitgenommen werden ein Fahrschein benötigt. Das gleiche gilt für Fahrräder, die an Werktagen montags bis freitags zwischen 6:00 Uhr und 9:00 Uhr mitgenommen werden.
  • Verkehrs-Aktiengesellschaft (VAG) Nürnberg

    • VAG_Rad Fahrradverleih in Nürnberg
      Käufer*innen, die das Deutschlandticket bei uns erwerben, erhalten pro Monat 600 Freiminuten.
  • Jobticket in Schleswig-Holstein NAH.SH-Jobticket für 16,55 EUR bzw. 31,55 EUR

  • Freiburger Verkehrs AG (VAG) @ Regio-Verkehrsverbund Freiburg (RVF)

    • RVF Mobilitäts-Rabatte
      • Frelo: 30 Minuten pro Ausleihe inklusive
      • VAG Fahrradboxen: 15 Euro Rabatt auf die Jahresmiete
      • FREIBURGbikes: 10 % Rabatt beim Ausleihen eines Fahrrads
      • Fahrradparkhaus: Mit der Jahreskarte 12 Monate parken, 11 Monate bezahlen
      • Grüne Flotte: 10 % auf Zeit- und Kilometerpreis
      • Stadtmobil Südbaden: 10 % auf Zeit- und Kilometerpreis im KLASSIKmodell
      • my-e-car: 10 % auf Zeit- und Kilometerpreis
      • Schauinslandbahn: Berg- und Talfahrt für 11,00 Euro statt 14,00 Euro / Einfache Fahrt für 8,50 Euro statt 10,50 Euro
      • Fernbustickets: Erlass der Buchungsgebühr von 2 Euro beim Kauf in einem VAG-Kundenzentrum
      • IG-Dreiseenbahn Dampfzugfahrten: 1 Euro Rabatt bei Einfacher Fahrt / 2 Euro Rabatt bei Hin- und Rückfahrt / 4 Euro Rabatt bei Familien-/Tageskarte
  • Rhein-Main-Verkehrsverbund (RMV)

    • RMV-Mitnahmeregelung
      Das Deutschlandticket beinhaltet zwar nicht bundesweit die unentgeltliche Mitnahme von Fahrrädern und von Hunden. Die Mitnahme von Fahrrädern und von Hunden ist jedoch im Gebiet des RMV kostenlos.
  • Berliner Verkehrsbetriebe (BVG)

    • 25-Euro-Jelbi-Guthaben
      Das 25-Euro-Jelbi-Guthaben wird beim Erwerb eines Deutschlandtickets in Form eines Handytickets für eine der BVG Apps (Ticket, Fahrinfo & Jelbi) einmalig ab Abo-Startdatum ausgegeben. Beim Erwerb der fahrCard entfällt das Recht auf den Gutschein.
  • Bodensee-Oberschwaben Verkehrsverbund

    • bodo-Upgrade
      • Für 9,90 Euro monatlich ermöglicht es die Mitnahme weiterer Personen (montags bis freitags ab 18.00 Uhr, an Wochenenden und Feiertagen ganztags) sowie und die Übertragbarkeit des Deutschlandtickets auf jede beliebige andere Person (zu jedem beliebigen Zeitpunkt)
      • Mit einem Zuschlag von 19,30 Euro monatlich ist im Zug die zeitlich uneingeschränkte Fahrradmitnahme möglich (in Bussen auf einzelnen Linien laut bodo-Tarifbestimmungen)
  • weitere Rabatte auf: https://www.deutschlandticket-rabatte.de/

  • mydealz: Deutschlandticket: Deals, Infos & Besonderheiten nach Bundesland bzw. Verkehrsverbund | Übersicht

DeutschlandTicket Apps

Einige Apps mit denen man das DeutschlandTicket buchen kann

Andere Apps

Einige (merkwürdige) Apps/Anbieter bei denen man das DeutschlandTicket buchen kann bzw von denen man es nicht erwarten würde.

Ohne App

DeutschlandTicket ohne App kaufen? Dann entweder ab zur Servicestelle oder

  • Harzer Schmalspurbahnen GmbH (HSB)

    "Das Deutschlandticket erhalten Sie per E-Mail. Nach Abo-Abschluss erhalten Sie postalisch einen Gutschein für eine einfache Brockenfahrt zugeschickt."

  • Transdev Vertrieb GmbH

    "Rechtzeitig vor dem Start des Tickets erhalten die registrierten Kunden per E-Mail einen UIC-Barcode zum Selbstausdruck und/oder aufs Handy als Fahrtberechtigung."

  • "Start-Karte" des ÖPNV Landkreis Greiz (Papierticket)

Laut Webseite der "PRG Personen- und Reiseverkehrs GmbH Greiz": "Fahrgäste können das Deutschland-Ticket in Form einer sogenannten „Start-Karte“ auch in den Bussen der PRG Personen- und Reiseverkehrs GmbH Greiz und der RVG Regionalverkehr Gera/Land GmbH als Papierticket jeweils für den laufenden Kalendermonat erhalten."

Twitter Nutzer @TramFauli meint dazu: "Das Deutschlandticket ist digital, haben sie gesagt. Es gibt es als Abo, haben sie gesagt. Außer in Gallien, ähm dem Landkreis Greiz. Da kann man es beim Busfahrer seines Vertrauens als Papierticket gegen Bargeld kaufen."

  • Deutschlandticket Tübingen Bürgerinnen und Bürger mit Wohnsitz im Stadtgebiet Tübingen erhalten das Ticket für 6 Monate im Voraus als kleine Kärtchen auf dickem Papier und perforierten Rändern.

Chipkarte

Alternative bieten einige Verkehrsverbünde das Ticket auch als Chipkarte an (zumindest jene Verbünde, die das eTicket Deutschland bereits seit Jahren unterstützen). Vorteil: es entfällt das monatliche Nachladen des Online Tickets bzw Aufladen des Smartphone Akkus, da die Chipkarte meisst 5 Jahre gültig ist. Twitter Nutzer @rail_rocker sammelt alle verfügbaren Chipkarten Motive auf einer Deutschlandkarte

  • BSAG/VBN Chipkarten implementieren anscheinend den nur in diesem Verkehrsverbund genutzten Geldkarten Standard der auch bereits für die BOB/MIA/TIM/JOB Karten seit 2005 eingesetzt wird. Erkennbar sind die Chipkarte an dem üblichen Smartcard Kontaktfeld. Kunden mit diesen Karten werden Probleme bei der Kontrolle in anderen Verbünden haben

@blockchiffre

  • KVV Plastikkarten kommen ohne Chip, d.h. sobald der Aztec Barcode (mit 1 Jahr Gültigkeit) abgerubbelt ist macht die Fahrkarten Kontrolle nur noch halb soviel Spass.

  • VRR Kunden, die bereits ein Abo vor dem Erscheinen des DeutschlandTickets hatten, erhalten einen irgendwie zu klein wirkenden Aufkleber ;-)

Probleme

49 Gründe

Grunde Nr.4 Grund Nr.14 Grunde Nr.22 Grunde Nr.23 Grunde Nr.24 Grunde Nr.31 Grunde Nr.39 Grunde Nr.47

@bastigruenwald
Copy link

bastigruenwald commented May 4, 2024

Device-Binding bedeutet, dass Du eine proprietäre App o.ä. hast, die das durchsetzt. Andernfalls kannst Du die Daten einfach auf verschiedene Geräte kopieren/laden.

Du brauchst mir nicht erklären, was Device Binding ist, das gehört zu meinem Beruf. ;-) Aber eine Antwort, warum eine (zukünftige) Device-Binding-Strategie nicht Ziel dieses Prozesses ist, hat mir hier bisher noch niemand geben können.

Dabei lief das In vielen Ländern ganz ähnlich: Zuerst Papier verbieten, damit man darüber ein digitales Revoke- und Device-Binding-System einführen kann, um vorhandenen Missbrauch zu minimieren. Das dieser stattfindet, haben mittlerweile ja genug Verbünde bestätigt. Das digital bezieht sich dann halt nicht auf den Aztec-Code zur Informationsübermittlung sondern darauf, dass ich einen papierigen Aztec-Codes nicht untermonatlich revoken kann, außer das Kontrollgerät des ZUBs ist an einem ZPVS angeschlossen.

Der Millionenschaden, den z.B. die RMV mit betrügerischen D-Tickets gemeldet hat, sind so ein Beispiel, die mir eine klare Motivation zeigen, warum man hier die Zügel anziehen möchte. Denn ein Aztec-Code, der über gestohlene Bankdaten beschafft wurde aber formal für einen Monat korrekt ist, kann eben nicht so einfach zurückgezogen werden, wenn ein Offline-Lesegerät ohne ZPVS nichts anderes ausliest als den korrekten Namen und Geburtsdatum und das Ding ausgedruckt/gescreenshottet ist. Der Aztec-Code ist für den ZUB korrekt, tatsächlich ist er aber betrügerisch ergaunert worden. War der vermeintliche Kauf mit einer geplatzten Lastschrift erst kurz vorher, helfen auch keine Sperrdatenbanken.

Wenn also das Gerät des Kontrolleurs es nicht kann, ist die zusätzliche Lösung, dass das Endgerät des Kunden die Verifizierung übernimmt. Mittels Device-Binding, ziemlich sicher auch über Wallet-Lösungen, wird das Ding dann bei einer geplatzten Lastschrift revoked, verschwindet aus Wallet oder App. Und das ist der Grund, warum alle Arten von Kopien nicht (mehr) anerkannt werden dürfen. Aber das hatte ich oben ja schon mal erklärt. Im Ausland ist das schon seit Jahren völlig normal. Das alles ist in Deutschland jetzt noch nicht der Fall, auch Ticket-to-Show-Lösungen sind noch erlaubt. Aber es könnte der Grund dafür sein, warum man diese "digitale" Lösung nach Vorbild anderer Länder nun auch möchte.

Ich verstehe daher nicht, wo hier dieser Fokus auf "Deutschland versteht Aztec-Codes nicht!" herkommt. Meiner Meinung nach liegt die Strategie hier langzeitmäßig ganz woanders: Es geht darum, den Verlust aus betrügerischen Käufen damit zu mindern (abgeschafft wird es natürlich nicht, aber erschwert durchaus). Ob das bei uns jetzt in ein, zwei, drei Jahren oder nie der Fall ist, weiß ich auch nicht - aber so lange die Grundlage dafür nicht geschaffen ist (und die wurde von der Bundesregierung diesbezüglich geschaffen) passiert ja auch nichts. Und es reicht schon, wenn da ein großer Verkehsverbund wie der RMV feststellt, dass er damit viel Geld sparen könnte, um den entsprechenden Druck zu machen. Genau deswegen muss es diese bundeseinheitliche Regelung geben.

Natürlich ist das Spekulatius, weil ich bei den Verhandlungen nicht am Tisch war - ich glaube nur, die Motivation für "digital" ist nicht "Oh, das klingt so modern, lass es uns digital nennen und dann Aztecs auf Papier verbannen" sondern: "Oha, das Ausland hat gezeigt, dass wir mit rein digitalen Tickets Betrugsversuche besser minimieren - lass uns das langfristig, über Übergangslösungen, versuchen auch für das D-Ticket einzuführen und die Verbünde dazu zwingen, Papier auch hier abzuschaffen."

@geos-github
Copy link

geos-github commented May 5, 2024

Das sind eine ganze Reihe interessanter Aspekte.
Zunächst muss man sagen, dass es für das Deutschlandticket eine Sperrliste gibt. Diese muss täglich in die Kontrollgeräte geladen werden (ob der jeweilige Kontolleur/Betreiber das macht, ist natürlich eine betriebliche Frage). Sie funktioniert somit (auch) offline, und selbst wenn wir 32 bit Deutschlandticketnummern (also 4 Byte) und maximal 100 Mio. gesperrte Deutschlandtickets unterstellen, hätte die Liste unkomprimiert 0,4 GB Umfang, was für Geräte und (lokale) Übertragung heutzutage kein Thema sein sollte.
Das ist der Mechanismus, der von einem Anbieter genutzt werden muss, wenn ein Abo gekündigt wird oder wenn es aus anderen Gründen gesperrt werden soll (z.B. keine Zahlung erfolgt). Diesen Mechanismus haben der RMV (und wohl auch andere) auch genutzt, als die Lastschriften zurückgebucht wurden, das Problem ist allerdings, dass dies natürlich (je nachdem, wie schnell der Kontoeigentümer das bemerkt und darauf reagiert) erst nach Tagen oder Wochen (maximal 8 Wochen sind für eine Lastschriftstornierung möglich) geschieht; und während dieser Zeit ist das Deutschlandticket gültig.
Ein Mechanismus, das Ticket auf dem Kundenendgerät zu sperren, würde an dieser Problematik absolut nichts ändern (das Kernproblem bei diesen Betrügereien ist, dass hier eine digitale direkt nutzbare Leistung gegen Lastschriftzahlung an einen unverifizierten Kunden verkauft wird; das kann ja nicht gut gehen. Irgendwie merken die Entscheider dies nun oder lernen es auf die schmerzliche Tour, wenn sie es zuvor nicht verstanden haben. Die DB erfordert für alle Abos seit Dezember 2023 übrigens eine Verifikation des Lastschriftkontos und zwar auf sehr fragwürdige Weise. Wer's noch nicht mitbekommen hat: https://www.heise.de/news/Deutsche-Bahn-Wer-ein-Abo-per-Lastschrift-zahlt-muss-Bankkonto-bestaetigen-9578677.html. Das ist sehr unschön, ist aber genau eine Folge dieser Thematik).
Abos/Fahrscheine auf dem Endgerät es Kunden zu sperren, ist zudem ein sehr fragwürdiger Ansatz (aus Sicherheitssicht). Einer der Grundsätze in der Betrugs-/Angriffsverhinderung lautet, dass Client Side Security keine Lösung ist, sondern man immer Sicherheitslösung auf der Server-/Anbieterseite implementieren muss (was mit der Sperrliste auch so umgesetzt wird). Andernfalls können sie leicht umgangen werden.
Davon nun unbenommen stellt sich die Frage, ob es beim Deutschlandticket eine Agenda/Planung gibt wie vom Vorposter skizziert. Wer klar eine Agenda in diese Richtung hat, ist E-Tcket-Deutschland (https://www.eticket-deutschland.de/motics), allerdings unterstelle ich ihnen, dass sie ausreichend Durchblick besitzen, zu verstehen, dass dafür eben keine statischen Barcodes genutzt werden können (auch nicht in Wallets, die offene Standards verwenden) und dass umgekehrt, solange dies noch geschieht, es unerheblich ist, ob diese auf Papier oder sonstwie präsentiert werden. Insofern ist der aktuelle Zustand sicher nicht allein auf deren Mist gewachsen. Außerdem geht es dort nicht darum, Nichtzahlung usw. zu bekämpfen, sondern (mehr oder weniger) zu verhindern, dass eine Person mit einer Kopie eines personalisierten (und an sich gültigen) Tickets einer anderen Person fährt. Das fällt nicht auf, solange kein Abgleich gegen einen Lichtbildausweis erfolgt, und das machen erfahrungsgemäß Kontrolleure sehr selten (was Betrüger wissen). Eine Weitergabe/Verleihen des Tickets ist natürlich weiterhin möglich, aber eben gebunden an das Endgerät (wie bei der Chipkarte auch).
Ich glaube eher dass es beim Deutschlandticket soviele Mitspieler und Reinreder mit höchst unterschiedlichen Interessen und (Digital-) Verständnisstand gibt, dass im Effekt keine konsequent verfolgte Agenda existiert, und ich denke dass Betrugsverhinderung da nicht das dominierende Motiv war und ist oder zumindest nicht fachlich betrachtet worden ist (sonst hätte es solche konzeptionellen Patzer wie Lastschrift durch unverifizierte Abonnenten erst gar nicht gegeben).

Woanders habe ich geschrieben (bzgl. der AGB des Deutschlandtickets):
Der zugrundeliegende kognitive/kulturelle Problem ist schlicht, dass viele (auch Entscheider und Autoren solcher AGBs offenbar) in Kategorien analoger Fahrscheine denken. Bei diesen ist es klar, dass der physisch ausgegeben Fahrschein/Abonachweis auch so bei der Kontrolle vorgelegt werden muss. Das gilt auch, wenn er technische Elemente enthält, die eine digitale Kontrolle ermöglichen. Das trifft z.B. auf die Chipkarten zu und auch auf Reisepässe u.ä. Wenn jemand den Chip in einer Chipkarte klonen würde oder in einem Pass und damit eine technisch perfekte Doublette erstellte (was, und darauf fußt das Sicherheitsmodell, nicht einfach ist), dann wäre dies zweifellos eine Fälschung und kein gültiger Fahrschein (letzteres ist natürlich Definitionssache; man könnte auch hier Kopien anerkennen, aber auf Grund der Bauart einer Chipkarte, die Kopien ja explizit erschweren soll, ist dies definitiv nicht vorgesehen).
Bei einem digitalen Fahrschein oder Abonachweis, der digital übermittelt wird (versandt, heruntergeladen), gibt es jedoch erstmal kein relevantes Trägermedium. Er kann auch beliebig kopiert werden; jedes "Exemplar", das auf ein Medium kopiert wurde, ist eine Kopie. Und solange es keine Spezifikation für das Medium und damit einhergehende analoge Sicherheitsmerkmale o.ä. gibt (was in den meisten Fällen auch unsinnig wäre, da die Speicherung nicht unter der Kontrolle des Herausgebers geschieht), ist auch keine Kopie besser oder schlechter als eine andere, solange sie problemlos lesbar und die Integrität des digitalen Inhalts sichergestellt ist.
Prüfen durch Inaugenscheinnahme geht damit per Definition nicht mehr. Ein Ausschluss bestimmter Medien ist natürlich juristisch machbar, aber inhaltlich nicht begründbar.
Das haben die Macher dieses Konstruktes offenbar bislang nicht verstanden.

@geos-github
Copy link

Laut Angaben auf https://www.bodo.de/deutschlandticket.html bietet der BODO Verkehrsverbund weiterhin das Deutschlandticket zum Ausdrucken (zusätzlich zur Chipkarte) an. Ob diese Angaben noch aktuell sind, ist allerdings unklar. In vielen anderen Verkehrsverbünden wird jeweils explizit angegeben, dass es "Print@home" nur bis Ende 2023 oder bis Ende April 2024 gäbe.
Unter https://www.dbregiobus-bawue.de/tickets/deutschlandticket steht dies analog unter "Wie erhalte ich das D-Ticket - als Handy-Ticket oder Chipkarte?"

@sokripon
Copy link

sokripon commented May 17, 2024

Ich schreib einfach mal hier was zu mo.pla und vll hilft es ja irgendjemanden.
Leider sieht man nur in der IOS app den Button zum hinzufügen.
Um den auch in der Webapp zu sehen einfach in die Browser console(wenn man auf dem link https://app.mopla.solutions/home ist) Capacitor.getPlatform = function(){return "ios"} ausführen, zu einen anderen Tab wechseln und zurück und der Button sollte vorhanden sein. Das drücken löst natürlich ein Fehler aus wenn man an seinem PC ist und den drückt. Also hab ich einfach ein simples script gemacht um die .pkpass file runterzuladen. (In der Browser Konsole ausführen)

let ticketUrl = "https://backend.mopla.solutions/api/passengers/tickets";
let appleWalletUrl = "https://backend.mopla.solutions/api/passengers/appleWalletPass?ticketId=";
let googleWalletUrl = "https://backend.mopla.solutions/api/passengers/googleWallet?ticketId=";

let accessToken = JSON.parse(localStorage.getItem("localUser")).stsTokenManager.accessToken;
let bearer = 'Bearer ' + accessToken;
let ticketID = null;
let aztecCode = null;
fetch(ticketUrl, {
    method: 'GET',
    headers: {
        'Authorization': bearer,
        'Content-Type': 'application/json'
    }
})
.then(response => {
    if (!response.ok) {
        throw new Error(`HTTP error! status: ${response.status}`);
    }
    return response.json();
})
.then(data => {
    const germanyTicket = data.find(ticket => ticket.type === "GERMANYTICKET" && ticket.status === "VALID");

    if (!germanyTicket) {
        throw new Error("No valid Germany ticket found.");
    }

    ticketID = germanyTicket.id;
    aztecCode = germanyTicket.aztecCode;

    return fetch(appleWalletUrl + ticketID, {
        method: 'GET',
        headers: {
            'Authorization': bearer,
            'Content-Type': 'application/json'
        }
    });
})
.then(response => {
    if (!response.ok) {
        throw new Error(`HTTP error! status: ${response.status}`);
    }
    return response.blob();
})
.then(blob => {
    const url = window.URL.createObjectURL(blob);
    const a = document.createElement("a");
    a.href = url;
    a.download = "germanyTicket.pkpass";
    document.body.appendChild(a);
    a.click();
    document.body.removeChild(a);
    window.URL.revokeObjectURL(url);

    return fetch(googleWalletUrl + ticketID, {
        mode: 'cors',
        method: 'GET',
        headers: {
            'Authorization': bearer,
            'Content-Type': 'application/json'
        }
    });
})
.then(response => {
    if (!response.ok) {
        throw new Error(`HTTP error! status: ${response.status}`);
    }
    return response.json();
})
.then(data => {
    const googleWalletKeyUrl = data.link;
    console.log("Google wallet url: " + googleWalletKeyUrl);
})
.catch(error => {
    console.error('Error:', error);
});

Das öffnet ein Speicher dialog mit dem man dann die pkfile runterladen kann.
Die kann man dann in einer Wallet app die pkpass files lesen kann wie PassAndroid öffnen.
Ich habe auch ein verweiß zur GoogleWallet integration gefunden aber diese scheint noch kein UI Element zu haben und gibt noch ein fehler bei google zurück.

This pass is only used for testing. Ask your administrator to give you access.

@Gigger0815
Copy link

Gigger0815 commented May 18, 2024 via email

@sokripon
Copy link

sokripon commented Jun 1, 2024

https://gist.github.com/rena2019/a2d32769a685ed26c3e3b3bbfe151859?permalink_comment_id=5060859#gistcomment-5060859
Der google wallet link von mo.pla geht inzwischen, in der mo.pla app gibt es zwar immer noch keine Button dazu aber der link den man durch das script kriegt geht inzwischen, also man kann mo.pla so problemlos in die google Wallet hinzufügen. Ich weiß aber nicht ob der aztec code in der google Wallet auch valide ist, der ist zumindest nicht Identisch mit dem von der App.

image

@speerwerfer
Copy link

Ich schreib einfach mal hier was zu mo.pla und vll hilft es ja irgendjemanden. Leider sieht man nur in der IOS app den Button zum hinzufügen. Um den auch in der Webapp zu sehen einfach in die Browser console(wenn man auf dem link https://app.mopla.solutions/home ist) Capacitor.getPlatform = function(){return "ios"} ausführen, zu einen anderen Tab wechseln und zurück und der Button sollte vorhanden sein. Das drücken löst natürlich ein Fehler aus wenn man an seinem PC ist und den drückt. Also hab ich einfach ein simples script gemacht um die .pkpass file runterzuladen. (In der Browser Konsole ausführen)

Das funktioniert bei mir unter Linux im Firefox nicht. Kann jemand bestätigen, dass dies so aktuell noch funktioniert?

@sokripon
Copy link

sokripon commented Aug 31, 2024

Ich schreib einfach mal hier was zu mo.pla und vll hilft es ja irgendjemanden. Leider sieht man nur in der IOS app den Button zum hinzufügen. Um den auch in der Webapp zu sehen einfach in die Browser console(wenn man auf dem link https://app.mopla.solutions/home ist) Capacitor.getPlatform = function(){return "ios"} ausführen, zu einen anderen Tab wechseln und zurück und der Button sollte vorhanden sein. Das drücken löst natürlich ein Fehler aus wenn man an seinem PC ist und den drückt. Also hab ich einfach ein simples script gemacht um die .pkpass file runterzuladen. (In der Browser Konsole ausführen)

Das funktioniert bei mir unter Linux im Firefox nicht. Kann jemand bestätigen, dass dies so aktuell noch funktioniert?

@speerwerfer das Seiten laden in firefox scheint ein wenig anders zu funktionieren, nachdem du Capacitor.getPlatform = function(){return "ios"} ausgeführt hast, klick auf den "Benötigen Sie Hilfe?" Text, und danach einfach ins leere, danach sollte es angezeigt werden.

Hab auch das script geupdated, das sollte jetzt auch auf firefox funktionieren, einfach das ausführen und die pk file sollte runtergeladen werden.

@speerwerfer
Copy link

speerwerfer commented Sep 1, 2024

@sokripon

Hab auch das script geupdated, das sollte jetzt auch auf firefox funktionieren, einfach das ausführen und die pk file sollte runtergeladen werden.

Danke, das funktioniert jetzt. Hast du das ganze auch schon mal per Pythonscript versucht? Ich scheitere an dem Loginprozess und dem notwendigen Bearer Token.

@theconundrum3924
Copy link

Hi,
Vielleicht als Ergänzung zu diesem Artikel:
Es gibt bei www.germanytransitpass.com noch eine neue Option, sich das Deutschlandticket ohne App zu holen: Hier kann man sich das Ticket auf der Website bestellen & bekommt dann eine Mail, um das Ticket in Google oder Apple Wallet zu laden. Ich habe es ausprobiert & bei mir hat es gut funktioniert, aber es wäre auch interessant noch mehr Feedback von anderen Leuten zu bekommen, ob es bei Ihnen auch funktioniert.
Ich habe mir dort das D-Ticket am 12.August besorgt und konnte es problemlos noch zum Ende des Monats kündigen.

@geos-github
Copy link

geos-github commented Sep 3, 2024

Danke für den Hinweis. Die FAQ sagt allerdings etwas anderes. Man kann sich also nicht darauf verlassen.
Ich konnte auch keine Angabe finden, welches Verkehrsunternehmen das D-Ticket hier ausstellt. Zumindest im D-Ticket selbst sollte das enthalten sein. Beim Versuch, es zu kaufen, kommt "This shop has not been activated yet".
Interessant ist auch, dass sie eine (vermutlich die eigene) PLZ vorgeben. Die meisten Leute, zumal ausländische Besucher, werden das nicht ändern. Wenn also ab 2025 tatsächlich die Einnahmen per PLZ vergeben werden, wird das (vermutlich sehr kleine) dahinterstehende Verkehrsunternehmen diese (weiterhin wie dieses Jahr) bekommen. Damit ist auch klar, wie der Business Case aussieht. Die PLZ gehört übrigens zu Großbreitenbach in Südthüringen:
https://de.wikipedia.org/wiki/Gro%C3%9Fbreitenbach

@speerwerfer
Copy link

speerwerfer commented Sep 16, 2024

hier mal ein Pythonscript, mit dem man das Deutschlandticket von mo.pla als pkpass herunterladen kann:

import requests
import json
import sys
from argparse import ArgumentParser
from datetime import datetime, timedelta
import calendar

parser = ArgumentParser(description="mo.pla pkpass downloader")
parser.add_argument("-u", "--username", dest="username", help="mo.pla username")
parser.add_argument("-p", "--password", dest="password", help="mo.pla password")
parser.add_argument("-o", "-output", dest="outputfile", default="deutschlandticket", help="name of the outputfile (default=deutschlandticket.pkpass)")
args = parser.parse_args()

if not args.username:
    print("no username set")
    sys.exit()

if not args.password:
    print("no password set")
    sys.exit()    

googleUrl = 'https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=AIzaSyDs7EoghaZrC-39RFyeRS_DdacygMvinzQ'
#header = {'Content-Type': 'application/json'}
payload = {'identifier': args.username,'continueUri': 'https://app.mopla.solutions/welcome?login'}
r = requests.post(googleUrl, data=payload)

googleUrl = 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=AIzaSyDs7EoghaZrC-39RFyeRS_DdacygMvinzQ'
payload = {'email': args.username,'password': args.password,'returnSecureToken': 'true'}
r = requests.post(googleUrl, data=payload)
idToken = r.json().get('idToken')

googleUrl = 'https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=AIzaSyDs7EoghaZrC-39RFyeRS_DdacygMvinzQ'
payload = {'idToken': idToken }
r = requests.post(googleUrl, data=payload)
response = r.json().get('idToken')

url = 'https://backend.mopla.solutions/api/whoami'
header = {
    'Content-Type': 'application/json', 
    'Authorization': 'Bearer ' + idToken
    }
r = requests.get(url, headers=header)

url = 'https://backend.mopla.solutions/api/passengers/tickets'
r = requests.get(url, headers=header)
tickets = []
for item in r.json():
    gueltig_ab = datetime.strptime(item['validFrom'], "%Y-%m-%dT%H:%M:%S%z").date() + timedelta(days=1)
    tickets.append((item['id'], calendar.month_name[gueltig_ab.month]))

if not tickets:
    print("Keine Tickets gefunden. Programm wird abgebrochen.")
    sys.exit()

url = 'https://backend.mopla.solutions/api/passengers/appleWalletPass'
header = {
    'Content-Type': 'application/json', 
    'Authorization': 'Bearer ' + idToken
    }

for id, monat in tickets:
    payload = {'ticketId': id}
    r = requests.get(url, headers=header, params=payload)
    output_file = args.outputfile + '_' + monat + '.pkpass'
    with open(output_file, 'wb') as fd:
        for chunk in r.iter_content(chunk_size=128):
            fd.write(chunk)
    print('Datei ' + output_file + ' erzeugt!')

@Gigger0815
Copy link

Gigger0815 commented Sep 16, 2024 via email

@geos-github
Copy link

Wurdest Du in letzter Zeit mit einem auf Papier ausgedruckten Deutschlandticket kontrolliert? Gab es da irgendwelche Probleme?

@Gigger0815
Copy link

Gigger0815 commented Sep 16, 2024 via email

@geos-github
Copy link

Hat jemand Erfahrung, welche Anbieter des Deutschlandtickets als Chipkarte eine monatliche Rechnung bereitstellen (gerne auch zum Runterladen über ein Kundenkonto z.B.)? Die VAG z.B. scheint das nicht zu tun.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment