Skip to main content

endi_payment

Project description

NB : À parir de la version 2.0, cette librairie ne supporte plus python 2

Cette librairie a pour objectif de fournir un ensemble cohérent pour la gestion des encaissements, ce afin de répondre aux exigences de la loi de finance 2018. Le texte suivant http://bofip.impots.gouv.fr/bofip/10691-PGP décrit plus en détail le besoin à couvrir

Elle fonctionne comme suit :

  • Les opérations d’encaissement sont effectuées au travers d’une API publique

  • Pour chaque opération d’encaissement, une entrée est écrite dans le journal

Le journal est le garant de l’intégrité des opérations d’encaissement.

Activation du module

L’api publique est configurable dans enDI au travers du fichier de configuration .ini.

Assurez-vous que la librairie endi_payment est bien dans les endi.includes

endi.includes = ...
                   ...
                   endi_payment

Configurez le service endi.interfaces.IPaymentRecordService

endi.interfaces.IPaymentRecordService = endi_payment.public.PaymentService

Configurez les journaux de ‘endi_payment’. Voir la documentation sur le module python logging pour le détail : https://docs.python.org/2/library/logging.html ainsi que les exemples dans le fichier development.ini.sample.

Configurez le service de journalisation endi_payment.interfaces.IPaymentRecordHistoryService à utiliser.

endi_payment propose deux services de journalisation

HistoryLogService : Service par défaut, prévu pour le mode développement, se content de journaliser les actions sans détails.

HistoryDBService : Journalise les actions effectuées dans une base de données spécifiques (pas forcément sur le même serveur mysql)

HistoryDBService

Pour activer la journalisation détaillée dans une base de données spécifiques ajouter la ligne suivante dans la section [app:endi] du fichier .ini

endi_payment.interfaces.IPaymentRecordHistoryService = endi_payment.history.endi_payment.history.HistoryDBService

Créer une nouvelle base de données, vous pouvez utiliser l’utilitaire ./tools/add_payment_database.sh fournit dans le repository endi.

cd endi/
./tools/add_payment_database.sh
# Suivez les instructions

Puis saisissez les informations de connexion de la nouvelle base de données dans la section [app:endi] du fichier .ini

endi_payment_db.url = mysql://endi_payment:endi_payment@localhost/endi_payment?charset=utf8

Archivage

Afin de certifier l’historique des actions sur les encaissements, endi_payment permet l’utilisation d’un service d’archivage.

Version locale, ajouter la ligne suivante à la configuration .ini du service endi dans la section [app:endi]

endi_payment.interfaces.IPaymentArchiveService=endi_payment.archive.FileArchiveService
endi_payment_archive_storage_path=<chemin sur disque pour le stockage des journaux>

La version locale fournie une solution acceptable de certification des journaux d’encaissement.

Afin d’obtenir une solution plus endurcie, on préfèrera l’utilisation d’un service distant avec un tiers certifié.

Une configuration complète contient donc les informations suivantes

endi.includes =
            ....
            endi_payment

# Accès à la bdd de traitement des paiements
endi_payment_db.url = mysql://endi_payment:endi_payment@localhost/endi_payment?charset=utf8

# Le service qui sera utilisé depuis endi pour agir sur les encaissements
endi.interfaces.IPaymentRecordService = endi_payment.public.PaymentService

# Le service qui sera utilisé par endi_payment pour stocker l'historique des actions d'encaissement
endi_payment.interfaces.IPaymentRecordHistoryService = endi_payment.history.HistoryDBService

# Le service en charge de la génération d'une archive avec un peu de certification d'intégrité des journaux
endi_payment.interfaces.IPaymentArchiveService = endi_payment.archive.FileArchiveService

# Le chemin utilisé par le service d'archivage pour le stockage sur disque
endi_payment_archive_storage_path = /var/endi/files/treasury/payment_storage

Consultation des journaux

Si le service HistoryDBService est utilisé, endi_payment ajoute automatiquement une entrée dans le menu Comptabilité d’enDI permettant la consultation du journal des modifications apportées aux encaissements.

Validation locale d’archive

Pour chaque action d’encaissement dans enDI, une entrée est ajoutée dans l’historique d’encaissement.

Cette entrée :

  • contient un hash de l’entrée précédente de l’historique.

  • est ajoutée à un journal mensuel des modifications

  • est associée à une entrée de “scellement” dans la table endi_payment_archive_seal. La clé de scellement correspond à la somme sha1 du fichier journal.

En l’absence d’un tiers de confiance, cette méthode rend compliquée la réécriture de l’historique et fournie une garantie assez élevée d’intégrité des données.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

endi_payment-1.3.0b2.tar.gz (30.1 kB view details)

Uploaded Source

Built Distribution

endi_payment-1.3.0b2-py3-none-any.whl (34.8 kB view details)

Uploaded Python 3

File details

Details for the file endi_payment-1.3.0b2.tar.gz.

File metadata

  • Download URL: endi_payment-1.3.0b2.tar.gz
  • Upload date:
  • Size: 30.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.37.0 CPython/3.7.6

File hashes

Hashes for endi_payment-1.3.0b2.tar.gz
Algorithm Hash digest
SHA256 756cfc50cb05a3d99d3d07514eb2ca49b9b67c6eedbf4ca329af05d6db659829
MD5 e864630174fb2c04dcef2bd8fe38eb28
BLAKE2b-256 570984fcdfbb710502d3ac1912532e35e727edcda28a0b633143df45a454eda7

See more details on using hashes here.

File details

Details for the file endi_payment-1.3.0b2-py3-none-any.whl.

File metadata

  • Download URL: endi_payment-1.3.0b2-py3-none-any.whl
  • Upload date:
  • Size: 34.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.37.0 CPython/3.7.6

File hashes

Hashes for endi_payment-1.3.0b2-py3-none-any.whl
Algorithm Hash digest
SHA256 95cdd7c82563dabcd2d4c79f9d20f1a627a4c8d09bdc03b6bb5c47f38f2ebf56
MD5 c7f1950123a45d4b5f8710f75ab0b638
BLAKE2b-256 e8f7d4e40e47de527b29d6b193f5d2a617bf50bb6e1ff33b6cdbea56240f7db0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page