Table des matières
Liste des illustrations
Illustration1: Exemple d’URL avec paramètre unique complétée ... 15
Illustration 2: Résultats d’une URL avec paramètres principaux ... 16
Illustration 3: Résultats d’une URL avec paramètres complexes ... 17
Illustration 4: Résultats d’URL comprenant la recherche avancée ... 18
Illustration 5: Modèle de code Deeplink ... 19
Illustration 6: Code JavaScript (modèle) ... 20
Illustration 7: Code HTML (modèle) ... 20
1. Informations générales 3
1.1. Deep Links 3
2. Structure URL et paramètres 4
2.1. Informations générales 4
2.2. Paramètres standard 5
2.2.1. De 5
2.2.2. À 5
2.2.3. Date 6
2.2.4. Heure 6
2.2.5. Via 7
2.2.6. Moyen de transport 7
2.3. Paramètres complexes 8
3. Exemples 15
3.1. URL avec paramètre unique 15
3.2. URL avec paramètres principaux 15
3.3. URL avec paramètres complexes 16
3.4. Paramétrer une URL en utilisant la recherche avancée 17
4. Modèle de code 19
4.1. Code 20
4.1.1. Javascript 20
4.1.2. HTML 20
Page 3/20
1. Informations générales
- Le deep linking (ou lien profond) permet d’accéder au webshop de CFF.ch à l’aide d’une URL. Le chemin et les paramètres de l’URL peuvent être utilisés pour transmettre des données à l’application de cff.ch. Le deep linking est possible pour l’horaire et le webshop.
- Tous les paramètres de type String de caractères doivent être codés en UTF-8 à l’aide de l’«encodage-pourcent» (RFC-3986), sauf indication contraire (p. ex. Base64).
- Tous les paramètres sont sensibles à la casse. La notation chameau (premier mot com- mençant par une minuscule) est utilisée pour les ensembles de mots.
Exemple: lowerCamelCase
- Les paramètres vides ou non spécifiés sont ignorés
- L’interface n’est accessible que par https, les redirections en http ne sont pas suivies.
- Différents niveaux d’encodage-pourcent sont requis en fonction du navigateur utilisé par la clientèle. Nous avons remarqué que les accolades et les guillemets doivent être enco- dés en pourcent pour la plupart des navigateurs.
- Les paramètres et les chaînes de caractères dans les champs de données doivent être mis entre guillemets.
Exemple: name=Basel -> “name”=“Basel”
Exemple-URL: Voir chapitre 2.2.5 Via
(Conformément à la notation JSON (https://www.w3schools.com/js/js_json_syntax.asp).
1.1. Deep Links
Environnement de production
Schéma https allemand https://www.sbb.ch/de/kaufen/
Schéma https français https://www.sbb.ch/fr/acheter/
Schéma https italien https://www.sbb.ch/it/acquistare/
Schéma https anglais https://www.sbb.ch/en/buying/
2. Structure URL et paramètres
https://www.sbb.ch/de/kaufen/pages/fahrplan/fahrplan.xhtml https://www.sbb.ch/fr/acheter/pages/fahrplan/fahrplan.xhtml https://www.sbb.ch/it/acquistare/pages/fahrplan/fahrplan.xhtml https://www.sbb.ch/en/buying/pages/fahrplan/fahrplan.xhtml
2.1. Informations générales
Combinaison de paramètresLes paramètres peuvent être combinés à volonté avec le caractère «&».
Exemple: combinaison de «von» et «datum»
https://www.sbb.ch/fr/acheter/pages/fahrplan/fa- hrplan.xhtml?von=Zürich+HB&datum=01.06.2022
Codage des caractères dans l’URL
Les caractères suivants doivent déjà être codés dans l’URL pour que le navigateur puisse l’ou- vrir:
«test» = %22test%22 [test] = %5Btest%5D {test} = %7Btest%7D
2.2. Paramètres standard
Le présent chapitre porte sur les paramètres standard, c’est-à-dire les paramètres simples les plus utilisés.
2.2.1. De
Nom von
Description Indication de «De» du trajet au moyen de l’arrêt de départ, de l’adresse ou du point d'intérêt
Type String
Valeurs/format -
Exemple von=Zürich+HB
Valeur standard (par défaut)
Vide
Exemple d’URL https://www.sbb.ch/fr/acheter/pages/fahrplan/fahrplan.xhtml?von=Zürich+HB
2.2.2. À
Nom nach
Description Indication de «À» au moyen de l’arrêt d’arrivée, de l’adresse ou du point d'intérêt
Type String
Valeurs/format -
Exemple nach=3014+Bern+Wylerstrasse+123 Valeur standard (par
défaut)
Vide
Exemple d’URL https://www.sbb.ch/fr/acheter/pages/fahrplan/fahrplan.xhtml?nach=3014+Bern+Wylerstrasse+123
2.2.3. Date
Nom datum
Description Date du départ ou de l’arrivée souhaités.
Type Date
Valeurs/format jj.MM.aaaa
Exemple datum=01.06.2022 Valeur standard (par
défaut)
Date actuelle
exemple d’URL https://www.sbb.ch/fr/acheter/pages/fahrplan/fahrplan.xhtml?datum=01.06.2022
2.2.4. Heure
Nom zeit
Description Heure du départ ou de l’arrivée souhaités.
Type Heure
Valeurs/format hh:mm
Exemple zeit=12:00
Valeur standard (par défaut)
Heure actuelle
Exemple d’URL https://www.sbb.ch/fr/acheter/pages/fahrplan/fahrplan.xhtml?zeit=12:00
Page 7/20
2.2.5. Via
Nom vias
Type Champ de données
Sous-paramètres Dauer; name (voir le tableau ci-dessous pour plus de détails)
Exemple ?vias=[{“name“:“Basel“,“dauer“:“00:15“},{ “name“:“Bern“,“dauer“:“01:00“}]
Description Arrêt intermédiaire, adresse ou point d'intérêt (5 arrêts intermédiaires max.). Si plus d’un arrêt inter- médiaire est ajouté, veuillez inclure également le paramètre «Recherche avancée» (voir l’exemple ci- dessous). Chaque sous-paramètre d’arrêt intermédiaire doit être placé entre des accolades {} (voir cha- pitre 2.1) et les paramètres et leurs valeurs doivent être placés entre guillemets, comme indiqué dans l’exemple. Les espaces ne sont pas requises dans les champs de données et peuvent être omises.
Exemple d’URL https://www.sbb.ch/fr/acheter/pages/fahrplan/fahrplan.xhtml?vias=%5B%7B%22name%22:%22Ba- sel%22,%22dauer%22:%2200:15%22%7D,%7B%22name%22:%22Bern%22,%22dauer%22:%2201:00
%22%7D%5D&erweiterteSuche=true
2.2.6. Moyen de transport
Nom verkehrsmittel
Type Champ de données
Sous-paramètres ice_tgv | ic_ec | ir | re_d | s_sn_r | arz_ex | Bus | Bateau | Funiculaire/Chemin de fer à crémaillère | Tram/Métro | lokaler_transit
Exemple ?verkehrsmittel=[“ic_ec“,“ir“]
Description Limite les trajets en fonction du moyen de transport.
Exemple d’URL https://www.sbb.ch/fr/acheter/pages/fahrplan/fahrplan.xhtml?vias=%5B%7B%22name%22:%22Ba- sel%22,%22dauer%22:%2200:15%22%7D,%7B%22name%22:%22Bern%22,%22dauer%22:%2201:00
%22%7D%5D&erweiterteSuche=true&verkehrsmittel=%5B%22ic_ec%22, %22bus%22, %22boot%22,
%22tram%22%5D
2.3. Paramètres complexes
Nom Description Type Valeurs/format Exemple Valeur
standard des para- mètres op- tionnels
Exemple d’URL
vias Arrêt intermédiaire Voir chapitre 2.2.5 pour l’utilisation de paramètres com- plexes ou de plu- sieurs arrêts inter- médiaires
Array vias=[“Bern”] Vide https://www.sbb.ch/fr/acheter/pages/fahrplan/fa-
hrplan.xhtml?vias=%5B%22Bern%22%5D
name (vias) Sous-paramètres de Via
Arrêt intermédiaire, adresse ou point d'intérêt.
Doit être entre guille- mets.
String String Name=”Biel/Bienne” Vide Voir chapitre 2.2.5
dauer (vias)
Sous-paramètres de via
Durée de l’arrêt in- termédiaire. Doit être entre guille- mets.
Time hh:mm dauer=”12:00” Vide Voir chapitre 2.2.5
an Départ ou arrivée Boolean true=départ an=true départ https://www.sbb.ch/fr/acheter/pages/fahrplan/fa- hrplan.xhtml?an=true
Page 9/20
Indique si l’heure donnée concerne le départ ou l’arrivée.
false=arrivée
suche Recherche directe Réalisation de la re- cherche d’une cor- respondance
Boolean true=recherche
false=ne pas effec- tuer de
recherche
suche=true false https://www.sbb.ch/fr/acheter/pages/fahrplan/fa-
hrplan.xhtml?von=Zürich+HB&nach=Bern&suche=true
erweiterte- Suche
Recherche avan- cée
Détermine si la re- cherche avancée est affichée ou non
Boolean true=la recherche avancée est affi- chée
false=la recherche avancée n’est pas affichée
erweiterte- Suche=true
false https://www.sbb.ch/fr/acheter/pages/fahrplan/fa- hrplan.xhtml?erweiterteSuche=true
verkehrsmit- tel
Sélection du moyen de trans- port
Présélectionne le moyen de transport spécifié. Voir cha- pitre 0.
Array verkehrsmit-
tel=[“ic_ec“]
Sélectionne automati- quement tous les moyens de transport
https://www.sbb.ch/fr/acheter/pages/fahrplan/fa-
hrplan.xhtml?verkehrsmittel=%5B%22s_sn_r%22%5D
optionen Limite les résultats de correspon- dances
direct: uniquement les trajets directs de- puis la gare de dé- part jusqu’à la gare d’arrivée, sans ar- rêts.
sleepingcart: unique- ment les trajets com- portant des voitures- lits.
couchete: unique- ment les trajets com- portant des cou- chettes.
all: tous les trajets possibles.
Enum all | direct | sleepingcart | couchette
optionen=direct all https://www.sbb.ch/fr/acheter/pages/fahrplan/fa- hrplan.xhtml?optionen=direct
barrierefrei Voyager sans bar- rières
Uniquement les tra- jets permettant des voyages sans bar- rières.
withrestriction: tra- jets permettant des
Enum Norestriction | withrestriction | self
| helped | announcement | norestriction
barrierefrei=self norestriction https://www.sbb.ch/fr/acheter/pages/fahrplan/fa- hrplan.xhtml?barrierefrei=helped&erweiterte- Suche=true
Page 11/20
voyages sans bar- rières.
self: possibilité d’em- barquement et de débarquement auto- nomes.
helped: assistance à l’embarquement et au débarquement.
announcement: em- barquement/débar- quement possibles après annonce préa- lable.
belegung Trajets selon taux d’occupation Uniquement les tra- jets avec un taux d’occupation prévu.
firstlow: trajets avec taux d’occupation faible en première classe.
firstmedium: trajets avec taux
Enum firstlow | firstmedium | firsthigh | secondlow | secondmedium | secondhigh
belegung=second- medium
secondhigh https://www.sbb.ch/fr/acheter/pages/fahrplan/fa- hrplan.xhtml?belegung=secondlow&erweiterte- Suche=true
d’occupation faible à moyen en première classe.
firsthigh: trajets avec taux d’occupation moyen à élevé en première classe.
secondlow: trajets de retour avec taux d’occupation faible en deuxième classe.
secondmedium: tra- jets avec taux d’oc- cupation faible à moyen en deuxième classe.
secondhigh: trajets avec taux d’occupa- tion moyen à élevé en deuxième classe.
velo Emplacements pour vélos
Uniquement les tra- jets permettant le transport de vélos.
Boolean true = transport de vélos permis (uni- quement en Suisse)
velo=true False https://www.sbb.ch/fr/acheter/pages/fahrplan/fa- hrplan.xhtml?velo=true
gruppenrei- sen
Voyages de groupe Boolean true = voyage de
groupe permis gruppenreisen=true False https://www.sbb.ch/fr/acheter/pages/fahrplan/fa- hrplan.xhtml?gruppenreisen=true
Page 13/20
Uniquement les tra- jets permettant des voyages de groupe.
(uniquement en Suisse)
ohnenei- gezuege
Sans trains pendu- laires
Uniquement les tra- jets n’utilisant pas de trains pendulaires.
Boolean true=n’affiche au- cun train pendu- laire
ohneneige- zuege=true
False https://www.sbb.ch/fr/acheter/pages/fahrplan/fa- hrplan.xhtml?ohneneigezuege=true
alternativver- bindungen
Alternatives Inclure les trajets al- ternatifs dans les ré- sultats.
Boolean true = chercher les
autres trajets alternativverb- indungen=true
False https://www.sbb.ch/fr/acheter/pages/fahrplan/fa- hrplan.xhtml?alternativverbindungen=true
alternatives- tops
Autres arrêts pos- sibles
Rechercher trajets supplémentaires au départ de/à destina- tion d’une gare proche du départ ou de l’arrivée.
Boolean true = afficher les autres arrêts pos- sibles
alternatives- tops=true
False https://www.sbb.ch/fr/acheter/pages/fahrplan/fa- hrplan.xhtml?alternativestops=true
umsteigezeit Durée des change- ments de train Indique la durée de changement néces- saire à chaque arrêt.
zehn: Au moins 10 minutes
Enum normal | zehn |
zwanzig | dreissig umsteigezeit=zehn normal https://www.sbb.ch/fr/acheter/pages/fahrplan/fa- hrplan.xhtml?umsteigezeit=zehn
zwanzig: Au moins 20 minutes
dreissig: Au moins 30 minutes
normal: durée de changement nor- male
3. Exemples
Le présent chapitre propose des exemples d’URL possibles ainsi que les résultats prévus.
3.1. URL avec paramètre unique
Paramètre: nach=BernURL: https://www.sbb.ch/fr/acheter/pages/fahrplan/fahrplan.xhtml?nach=Bern
Illustration1: Exemple d’URL avec paramètre unique complétée
3.2. URL avec paramètres principaux
Parameter 1: von=Zürich+HBParameter 2: nach=Bern
Parameter 3: datum=01.06.2022 (valeur par défaut: date actuelle) Parameter 4: zeit=16:00 (valeur par défaut: heure actuelle)
Parameter 5: suche=true (active la recherche directe = les résultats sont directement affichés) URL: https://www.sbb.ch/fr/acheter/pages/fahrplan/fa-
hrplan.xhtml?von=Zürich+HB&nach=Bern&datum=01.06.2022&zeit=16:00&suche=true
Illustration 2: Résultats d’une URL avec paramètres principaux
3.3. URL avec paramètres complexes
Parameter 1: von=BernParameter 2: nach=Luzern
Parameter 3: vias=[{name:Olten, dauer:02:00}]
Parameter 4: erweiterteSuche=true (affiche la recherche avancée)
URL: https://www.sbb.ch/fr/acheter/pages/fahrplan/fahrplan.xhtml?von=Bern&nach=Lu- zern&vias=%5B%7B%22name%22:%22Ol-
ten%22,%22dauer%22:%2202:00%22%7D%5D&erweiterteSuche=true
Page 17/20
Illustration 3: Résultats d’une URL avec paramètres complexes
3.4. Paramétrer une URL en utilisant la recherche avancée
Parameter 1: von=SolothurnParameter 2: nach=Olten
Parameter 3: ohneneigezuege=true Parameter 4: velo=true
Parameter 5: verkehrsmittel=[«s_sn_r»]
Parameter 6: erweiterteSuche=true (affiche la recherche avancée)
Parameter 7: suche=true (active la recherche directe = les résultats sont directement affichés) URL: https://www.sbb.ch/fr/acheter/pages/fahrplan/fahrplan.xhtml?von=Solothurn&nach=Olten
&ohneneigezuege=true&velo=true&verkehrsmittel=%5B%22s_sn_r%22%5D&erweiterteSu- che=true&suche=true
Illustration 4: Résultats d’URL comprenant la recherche avancée
Page 19/20
4. Modèle de code
Les fichiers «index.html» et «Extensions.svg» servent de modèles de code pour la mise en œuvre des deeplinks. Les deux documents doivent se trouver dans le même dossier.
«index.html» = HTML et code JavaScript
«Extensions.svg» = logo CFF
La fenêtre suivante apparaît à l’ouverture de «index.html»:
Illustration 5: Modèle de code Deeplink
Attention
La valeur «À: Bern» est utilisée à titre d’exemple dans le présent extrait du modèle. Elle peut être modifiée pour une autre valeur:
<input id="to" type="text" name="to" style="border:none; background:none; font-size:18px; font-family:’Verdana’;" value="Bern">
4.1. Code
4.1.1. JavascriptIllustration 6: Code JavaScript (modèle)
1 = Définir la date et l’heure actuelles
2 = Fonction «callSBB()»: ouvrir le deeplink avec les valeurs indiquées
4.1.2. HTML
Illustration 7: Code HTML (modèle)
1 = Inclure le logo (Extension.svg) 2 = Appeler la fonction «callSBB()»