Download the PHP package banelsems/lara-sgmef-qr without Composer

On this page you can find all versions of the php package banelsems/lara-sgmef-qr. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package lara-sgmef-qr

LaraSgmefQR

Package Laravel pour intégrer l'API e-MECeF / SyGM-eMCF de la Direction Générale des Impôts du Bénin.

Latest Version PHP Version Laravel Version Tests PHPStan

LaraSgmefQR v4.0.0 fournit un client API, des DTOs, une interface web, des jobs Laravel et des outils de conformité pour créer, confirmer, annuler, vérifier, exporter et documenter des factures e-MECeF.

Fonctionnalites v4

Installation

Publier les vues est optionnel :

Configuration

Ajoutez les variables utiles dans .env :

En production, protegez toujours l'interface web :

L'interface est disponible sur /sgmef par defaut :

Utilisation PHP

Creer et confirmer une facture de vente

Multi-paiement

Le total des paiements doit etre egal au total des lignes.

Types acceptes : ESPECES, VIREMENT, CARTEBANCAIRE, MOBILEMONEY, CHEQUES, CREDIT, AUTRE.

Avoir FA/EA avec reference obligatoire

Pour une facture d'avoir, reference doit contenir l'UID de la facture originale.

Taxe specifique et modification de prix

Multi-IFU

Par defaut, le package lit SGMEF_DEFAULT_IFU. Pour une application multi-etablissements, fournissez votre propre resolver :

Puis liez-le dans un service provider de l'application :

Vous pouvez ensuite injecter le resolver pour construire vos DTOs :

Jobs Laravel et API async

Le package fournit une API async additive via InvoiceQueueDispatcher qui dispatche des jobs sur la queue configuree. Les jobs appellent les memes services metier (InvoiceManager) que l'API synchrone — aucune logique metier n'est dupliquee.

Configuration

Dispatcher async (recommande)

Tous les dispatchs utilisent afterCommit() pour ne s'envoyer qu'apres commit de la transaction DB courante.

Jobs directs (bas niveau)

Securite des retries

Job tries Raison
CreateInvoiceJob 1 POST /invoice non-idempotent
ConfirmInvoiceJob 1 PUT /confirm non-idempotent
CancelInvoiceJob 1 PUT /cancel non-idempotent
SyncInvoiceJob 3 GET /invoice safe-to-retry
CleanupExpiredPendingInvoicesJob 1 Idempotent mais non-retryable

Les jobs Create/Confirm/Cancel sont ShouldBeUnique pour eviter deux operations concurrentes sur la meme facture.

Expiration des factures pending

La commande sgmef:cleanup-expired marque les factures pending dont expires_at est depasse au statut EXPIRED (distinct d'ERROR).

Le scheduling est automatiquement enregistre par le ServiceProvider si SGMEF_CLEANUP_ENABLED=true (defaut). L'event InvoiceExpired est dispatche pour chaque facture expiree.

QR code PNG

QrCodeService::png() produit desormais de vrais PNG (signature \x89PNG). Necessite ext-gd. Sans ext-gd, une RuntimeException explicite est levee (png() ne retourne jamais silencieusement du SVG). Utilisez svg() pour un format vectoriel sans dependance.

Verification post-confirmation

Apres confirmation, verifiez l'integrite d'une facture via le VerificationService :

Le service verifie 8 controles : statut confirmed, UID present, QR code present et valide, code MECeF present, date/heure, counters, NIM.

Annulation alternative (POST)

En plus du PUT /cancel standard, une annulation alternative via POST /invoice/cancel est disponible :

Securite : rate limiting et pre-validation JWT

Le SgmefSecurityGuard valide le token JWT avant chaque appel API et limite le nombre de requetes sortantes par minute :

L'event SgmefAuthenticationAlert est dispatche sur les reponses 401/403. Ecoutez-le pour integrer un systeme d'alerte de securite :

Commandes

Generer un export STAT CSV :

Generer le dossier d'auto-declaration e-MECeF :

La configuration emecef_test_cases contient 20 cas de test DGI automatisables. Les appels reseau restent mockables dans les tests; les appels reels exigent un token et un IFU valides fournis par l'application hote.

Services utiles

Cycle de vie et statuts

Le modele Banelsems\LaraSgmefQr\Models\Invoice stocke les factures locales et l'audit API.

Statuts disponibles :

Champs importants :

Gestion des erreurs

Les logs du client API evitent de persister les tokens et payloads complets. En production, gardez les logs applicatifs dans un canal protege.

Tests et qualite

Resultats actuels :

Remarques :

Compatibilite

Ressources

Licence

MIT. Voir LICENSE.


All versions of lara-sgmef-qr with dependencies

PHP Build Version
Package Version
Requires php Version ^8.1|^8.2|^8.3|^8.4
ext-curl Version *
ext-json Version *
bacon/bacon-qr-code Version ^3.0
barryvdh/laravel-dompdf Version ^3.1
guzzlehttp/guzzle Version ^7.0
laravel/framework Version ^10.0|^11.0|^12.0|^13.0
spatie/browsershot Version ^5.0
spatie/laravel-data Version ^4.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package banelsems/lara-sgmef-qr contains the following files

Loading the files please wait ...