Traitement par lots et lots plus

Cette solution assure un dialogue par échanges de fichiers structurés en mode off-line entre le commerçant et Paybox. L’application de vente du site Marchand doit collecter les informations sensibles telles que le n° de carte et les transmet à Paybox via un dialogue sécurisé de serveur à serveur. Traitement Par Lot est également utilisé pour valider les encaissements des transactions préalablement autorisées via Paybox System, mais également assurer des remboursements et annulations.

Protocole d’échange

Le produit “Traitement par Lots par dépôt de fichiers” permet de traiter un ensemble de transactions via un fichier crypté et signé qui est déposé sur les serveurs Paybox. Une fois le fichier traité par nos soins, la réponse à chaque question est remise à disposition de l’expéditeur par l’intermédiaire d’un second fichier appelé fichier “status”.
Ainsi, le commerçant prépare le fichier “Question” au format XML contenant les paiements à réaliser, annuler ou modifier : il ne doit contenir que les transactions d’un seul commerce (site/rang unique).
Ce fichier doit respecter :

  • Le schéma XML : à télécharger-ici. A l’aide de l’infrastructure XML, vous pourrez valider la forme et la nature des données.
  • Les spécifications XML de l’organisation W3C relatif au chiffrement (http://www.w3.org/TR/xmlenc-core) et à la signature (http://www.w3.org/TR/xmldsig-core/) suivant l’algorithme AES avec des clés RSA.

L’utilisation de ces standards et préconisations, permettra une meilleure pérennité de la solution, une indépendance vis-à-vis des plateformes et un accroissement de la sécurité.

Principe des échanges

Pré-requis

Les pré-requis pour la mise en place de ce traitement sont décrits dans le document Traitement Par Lot : Procédures de dépôts
Chaque fichier “Question” déposé doit contenir un numéro séquentiel croissant.
Il est conseillé d’envoyer un nouveau fichier “Question” qu’après réception du fichier “status” précédent.
Il sera possible de consulter et de gérer les paiements effectués via le Back-Office commerçant.
Seuls les paiements acceptés par le centre d’autorisation seront envoyés en fin de journée au centre de télécollecte pour traitement.

Dépôt par le commerçant

Cette procédure nécessite que le commerçant vienne se connecter sur l’un de nos serveurs afin d’y déposer ses fichiers. Les 2 serveurs mis à disposition sont « sftp2.paybox.com » et « sftp.paybox.com »
Ces machines jouent le rôle en fait de frontal du traitement par lot en effectuant des vérifications préliminaires avant traitement sur les fichiers : chaque client y dépose ses fichiers, et, chaque client à son répertoire dédié. Cela signifie que lorsque le client se connecte sur cette machine, il ne peut pas naviguer dans toute l’arborescence du disque.
Lors du dépôt de fichiers, la connexion s’effectue en sftp (“s” comme secure) sur le port TCP 5752. L’authentification du commerçant s’effectue par une clé publique que vous devez nous  fournir, et, de votre côté vous devez conserver votre clé privée. Ainsi, il n’est pas nécessaire de demander la saisie d’un mot de passe ce qui permet l’exécution de script de connexion automatique.

Chaque fichier déposé est tout de même cryptés même si la connexion est sécurisée.
Une fois le fichier traité, il sera remis à votre disposition dans votre répertoire dédié avec une extension particulière (« .status.xml ») afin de le différencier du fichier original.

Gestion des fichiers

Chaque programme concerné par les procédures de dépôt et de retrait devra s’assurer qu’un fichier n’est pas en cours d’utilisation par un autre. Pour cela, la commande “fuser” est en mesure d’effectuer ce test.
En n’effectuant pas ce contrôle, le risque encouru est de ne pas récupérer la totalité d’un fichier.

Les échanges de fichiers doivent s’effectuer en respectant les extensions suivantes :

  • Les fichiers déposés dans votre répertoire « /home/in » doivent avoir l’extension “.xml”.
  • Dès que votre fichier est pris en compte par notre chaîne de traitement, celui-ci est recopié dans le répertoire ” /home/encours”.
  • A l’issue du traitement, le fichier contenant les réponses sera présent dans le répertoire « /home/out » avec l’extension ” .status.xml”

Il est important de noter que votre répertoire de dépôt est limité en taille, c’est-à-dire, que la purge de ce répertoire est à votre charge. Par ailleurs, tout fichier portant une extension autre que celle mentionnée précédemment sera supprimé par notre système.
Dans le répertoire ” /home/out “, un fichier avec l’extension avec « .err » peut signifier que :

  • La signature électronique n’a pas été vérifiée (clé publique du commerçant en possession de Paybox pas liée avec la clé privée du commerçant),
  • Le déchiffrement du fichier est en erreur (clé publique de Paybox non utilisé au moment du chiffrement du fichier par exemple),
  • La vérification du schéma est en erreur.

Cinématique générale

La cinématique à retenir est la suivante :

  1. Création du fichier « Question » au format XML avec validation de celui-ci par l’intermédiaire de notre schéma « PayboxSignedBatch.xsd »,
  2. Signature électronique du fichier avec votre clé RSA privée et condensé SHA-1,
  3. Chiffrement du fichier suivant l’algorithme AES et avec notre clé publique RSA en téléchargement depuis notre site institutionnel www.paybox.com,
  4. Dépôt du fichier dans le répertoire « /home/in »,
  5. Déchiffrement du fichier par Paybox à partir de notre clé privée RSA,
  6. Vérification de la signature à l’aide de la clé publique RSA que vous nous avez fournie,
  7. Vérification par Paybox de la validité et conformité du fichier « Question » au schéma XML,
  8. Traitement des enregistrements par Paybox. Il est à noter qu’il faut environ 1 seconde pour le traitement d’une transaction,
  9. Génération du fichier des réponses « .status.xml » signé par Paybox,
  10. Mise à disposition du fichier des réponses dans le répertoire « /home/out »,
  11. Récupération du fichier et vérification de la validité et conformité du fichier « status » au schéma XML par l’intermédiaire du schéma « PayboxBatch.status.xsd ».

Commandes utiles

Voici la syntaxe de quelques commandes sous LINUX permettant de gérer vos répertoires de dépôts et de récupération. Dans les commandes ci-dessous, “user” correspond à votre nom d’utilisateur fourni par les services techniques de Paybox:

  • Transfert de fichier vers nos serveurs :
sftp –p5752 fichier_a_transmettre.xml user@sftp2.paybox.com:/home/in
  •  Récupération d’un fichier depuis nos serveurs :
sftp –p5752 user@sftp2.paybox.com:/home/out/fichier_a_recuperer.status.xml /nom_du_repertoire_local_sur_votre_serveur/
  •  Connaître la liste des fichiers sur les serveurs Paybox :
ssh –p5752 user@sftp2.paybox.com “ls –la /home/out/”
  •  Supprimer un fichier sur les serveurs Paybox :
ssh –p5752 user@sftp2.paybox.com “rm –f /home/out/fichier_a_supprimer”

La connexion en ssh simple (ssh –p5752 user@sftp2.paybox.com) est possible mais elle sera coupée par nos serveurs au bout de 5 secondes en indiquant comme motif que ce type de connexion est refusé.

Informations sur la signature électronique et le chiffrement

L’utilisation des signatures numériques ou électroniques permet à chacune des parties de s’assurer de l’identité de l’émetteur et cela indépendamment de la méthode de transfert utilisée.

La signature s’effectue avant le chiffrement du fichier afin de renforcer la sécurité et en application du principe « Only what is Seen Should be Signed ».

En production, toute signature non validée doit vous mettre en garde sur l’origine du fichier et vous devez vous rapprocher de notre service support.
Le chiffrement du fichier est effectué au moment de la génération du fichier « Question » mais n’est pas présent dans le fichier « status » car il n’y a pas dans ce dernier de données sensibles. Le chiffrement repose sur tout le contenu de l’élément « Merchant » de manière à laisser en clair les informations Numéro de lot, Date, Numéro de site et Rang. Le fichier « status » est signé électroniquement par les applications Paybox.