PHPackages                             cashcamer/cashcamer - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Payment Processing](/categories/payments)
4. /
5. cashcamer/cashcamer

ActiveLibrary[Payment Processing](/categories/payments)

cashcamer/cashcamer
===================

Laravel Cashier-style package for manual mobile money payments in Cameroon (MTN Mobile Money, Orange Money)

v1.0.0(8mo ago)00MITBladePHP ^8.2

Since Aug 27Pushed 8mo agoCompare

[ Source](https://github.com/fokouarnaud/cashcamer)[ Packagist](https://packagist.org/packages/cashcamer/cashcamer)[ Docs](https://github.com/fokouarnaud/cashcamer)[ RSS](/packages/cashcamer-cashcamer/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (4)Versions (2)Used By (0)

CashCamer 💳
===========

[](#cashcamer-)

Un package Laravel Cashier-style spécialement conçu pour les paiements mobile money au Cameroun. Compatible avec **MTN Mobile Money** et **Orange Money** avec validation manuelle sécurisée.

[![Laravel](https://camo.githubusercontent.com/dd6bbd91de4659cb352c03d04c7091fc8162f4a21457356ed43af6f243bc2829/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d7631312532422532302537432532307631322532422d4646324432303f7374796c653d666f722d7468652d6261646765266c6f676f3d6c61726176656c)](https://camo.githubusercontent.com/dd6bbd91de4659cb352c03d04c7091fc8162f4a21457356ed43af6f243bc2829/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d7631312532422532302537432532307631322532422d4646324432303f7374796c653d666f722d7468652d6261646765266c6f676f3d6c61726176656c)[![PHP](https://camo.githubusercontent.com/f19b87974033c7510d2aaf974b8915b3be7d304f48131f4dfa4d91ca1d12d9a4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e322532422d3737374242343f7374796c653d666f722d7468652d6261646765266c6f676f3d706870)](https://camo.githubusercontent.com/f19b87974033c7510d2aaf974b8915b3be7d304f48131f4dfa4d91ca1d12d9a4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e322532422d3737374242343f7374796c653d666f722d7468652d6261646765266c6f676f3d706870)[![License](https://camo.githubusercontent.com/153acf9dff19deb8abfc598c53bac50a4ceae0f5c83a552711060d3d78d2c057/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d677265656e3f7374796c653d666f722d7468652d6261646765)](https://camo.githubusercontent.com/153acf9dff19deb8abfc598c53bac50a4ceae0f5c83a552711060d3d78d2c057/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d677265656e3f7374796c653d666f722d7468652d6261646765)

✨ Caractéristiques
------------------

[](#-caractéristiques)

- 🏦 **Support Multi-Opérateurs** : MTN Mobile Money et Orange Money
- ✅ **Validation Manuelle** : Confirmation sécurisée des transactions
- 🎛️ **Dashboard Admin** : Interface complète pour gérer les paiements
- 📊 **Statistiques** : Suivi détaillé des transactions
- ⚖️ **Conformité CGV** : Respecte la réglementation camerounaise
- 🔒 **Sécurisé** : Gestion sécurisée des données et transactions
- 🚀 **Facile à Intégrer** : Configuration minimale requise
- 🎨 **Interface Flexible** : Modes modal et page dédiée
- 🔧 **Sélection Opérateur** : Automatique ou manuelle
- ⚙️ **Panel Admin** : Configuration des opérateurs en temps réel
- 📱 **Responsive Design** : Interface adaptée mobile et desktop

📋 Prérequis
-----------

[](#-prérequis)

- PHP 8.2+
- Laravel 11.0+ ou Laravel 12.0+
- Base de données (MySQL, PostgreSQL, SQLite)

🚀 Installation
--------------

[](#-installation)

### 1. Installation via Composer

[](#1-installation-via-composer)

```
composer require cashcamer/cashcamer
```

### 2. Publication des assets

[](#2-publication-des-assets)

```
# Publier la configuration
php artisan vendor:publish --provider="CashCamer\CashCamer\CashCamerServiceProvider" --tag="cashcamer-config"

# Publier les migrations
php artisan vendor:publish --provider="CashCamer\CashCamer\CashCamerServiceProvider" --tag="cashcamer-migrations"

# Publier les vues (optionnel)
php artisan vendor:publish --provider="CashCamer\CashCamer\CashCamerServiceProvider" --tag="cashcamer-views"
```

### 3. Migration de la base de données

[](#3-migration-de-la-base-de-données)

```
php artisan migrate
```

### 4. Configuration

[](#4-configuration)

Ajoutez les variables d'environnement dans votre fichier `.env` :

```
# Informations entreprise
CASHCAMER_BUSINESS_NAME="Votre Entreprise"
CASHCAMER_BUSINESS_ADDRESS="Votre Adresse, Cameroun"
CASHCAMER_BUSINESS_PHONE="+237 6XX XXX XXX"
CASHCAMER_BUSINESS_EMAIL="contact@votre-domaine.cm"
CASHCAMER_ADMIN_EMAIL="admin@votre-domaine.cm"

# Configuration d'affichage
CASHCAMER_DISPLAY_MODE=modal # modal, page, auto
CASHCAMER_SELECTION_MODE=auto # auto, manual, admin_only
CASHCAMER_SHOW_LOGOS=true
CASHCAMER_ALLOW_OVERRIDE=true
```

📖 Utilisation
-------------

[](#-utilisation)

### Créer un paiement

[](#créer-un-paiement)

```
use CashCamer\CashCamer\Facades\CashCamer;

$payment = CashCamer::createPayment([
    'phone_number' => '680123456',      // Numéro MTN ou Orange
    'amount' => 25000,                  // Montant en FCFA
    'description' => 'Achat produit',   // Description optionnelle
    'customer_id' => auth()->id(),      // ID client optionnel
]);

echo "Référence: " . $payment->reference;
echo "Montant: " . $payment->formatted_amount;
echo "Opérateur: " . $payment->provider_name;
```

### Vérifier le statut d'un paiement

[](#vérifier-le-statut-dun-paiement)

```
$payment = CashCamer::getPaymentByReference('CC-ABC123DEF');

if ($payment->isConfirmed()) {
    // Paiement confirmé
} elseif ($payment->isPending()) {
    // En attente de confirmation
} elseif ($payment->isExpired()) {
    // Paiement expiré
}
```

### Confirmer un paiement (Admin)

[](#confirmer-un-paiement-admin)

```
CashCamer::confirmPayment($payment, 'TRANSACTION_ID_123', auth()->id());
```

### Rejeter un paiement (Admin)

[](#rejeter-un-paiement-admin)

```
CashCamer::failPayment($payment, 'Solde insuffisant');
```

### Obtenir des statistiques

[](#obtenir-des-statistiques)

```
$stats = CashCamer::getStatistics();

echo "Total paiements: " . $stats['total_payments'];
echo "Paiements confirmés: " . $stats['confirmed_payments'];
echo "Montant total: " . $stats['total_amount'] . " FCFA";
```

🎯 Routes
--------

[](#-routes)

Le package fournit des routes prêtes à l'emploi :

```
// Routes publiques
GET  /cashcamer/payment              // Formulaire de paiement
POST /cashcamer/payment              // Créer un paiement
GET  /cashcamer/payment/{ref}        // Détails du paiement (nouvelle)
GET  /cashcamer/payment/{ref}/status // Vérifier le statut
GET  /cashcamer/payment/{ref}/success // Page de succès
GET  /cashcamer/payment/{ref}/failed  // Page d'échec

// Routes admin (nécessitent authentication)
GET  /cashcamer/admin                        // Dashboard
GET  /cashcamer/admin/payments               // Liste des paiements
GET  /cashcamer/admin/settings               // Panel de configuration (nouveau)
POST /cashcamer/admin/settings/providers     // Mise à jour des opérateurs (nouveau)
POST /cashcamer/admin/payments/{id}/confirm  // Confirmer
POST /cashcamer/admin/payments/{id}/fail     // Rejeter

// Routes API
GET  /api/cashcamer/config           // Configuration frontend (nouveau)
```

🎨 Interface utilisateur
-----------------------

[](#-interface-utilisateur)

### Formulaire de paiement intégré

[](#formulaire-de-paiement-intégré)

Le package inclut un formulaire de paiement moderne avec :

- Détection automatique de l'opérateur (MTN/Orange)
- Validation en temps réel
- Instructions de paiement claires
- Interface responsive

### Dashboard administrateur

[](#dashboard-administrateur)

Interface complète avec :

- Statistiques en temps réel
- Liste des paiements en attente
- Outils de gestion des transactions
- Graphiques et rapports
- **Panel de configuration des opérateurs (nouveau)**

### Modes d'affichage des paiements

[](#modes-daffichage-des-paiements)

**Mode Modal (par défaut)**Instructions affichées dans une fenêtre modale overlay, idéal pour une expérience e-commerce fluide.

**Mode Page dédiée**
Redirection vers une page complète avec instructions détaillées, parfait pour les paiements complexes.

**Mode Automatique**
Choix intelligent basé sur l'appareil et le contexte (mobile = page, desktop = modal).

### Sélection des opérateurs

[](#sélection-des-opérateurs)

**Automatique** : Détection basée sur le préfixe du numéro de téléphone
**Manuelle** : L'utilisateur choisit entre MTN et Orange Money
**Admin uniquement** : Seuls les administrateurs peuvent forcer un opérateur

🔧 Configuration avancée
-----------------------

[](#-configuration-avancée)

### Personnaliser les opérateurs

[](#personnaliser-les-opérateurs)

```
// config/cashcamer.php

'providers' => [
    'mtn' => [
        'name' => 'MTN Mobile Money',
        'prefixes' => ['650', '651', '652', '653', '654', '680', '681', '682', '683', '684'],
        'enabled' => true,
    ],
    'orange' => [
        'name' => 'Orange Money',
        'prefixes' => ['655', '656', '657', '658', '659', '697', '698', '699'],
        'enabled' => true,
    ],
],
```

### Limites de paiement

[](#limites-de-paiement)

```
'payment' => [
    'currency' => 'XAF',
    'min_amount' => 100,
    'max_amount' => 1000000,
    'timeout_minutes' => 30,
],
```

### Middleware personnalisé

[](#middleware-personnalisé)

```
'routes' => [
    'prefix' => 'cashcamer',
    'middleware' => ['web'],
    'admin_middleware' => ['web', 'auth', 'admin'],
],
```

📱 Numéros supportés
-------------------

[](#-numéros-supportés)

### MTN Mobile Money

[](#mtn-mobile-money)

- Préfixes : 650, 651, 652, 653, 654, 680, 681, 682, 683, 684

### Orange Money

[](#orange-money)

- Préfixes : 655, 656, 657, 658, 659, 697, 698, 699

🧪 Tests
-------

[](#-tests)

Exécuter les tests :

```
# Tests du package
cd packages/cashcamer
./vendor/bin/phpunit

# Tests avec coverage
./vendor/bin/phpunit --coverage-html coverage
```

📝 Événements
------------

[](#-événements)

Le package émet des événements pour les intégrations personnalisées :

```
use CashCamer\CashCamer\Events\PaymentConfirmed;
use CashCamer\CashCamer\Events\PaymentFailed;
use CashCamer\CashCamer\Events\PaymentExpired;

// Écouter les événements
Event::listen(PaymentConfirmed::class, function ($event) {
    $payment = $event->payment;
    // Logique personnalisée...
});
```

🔐 Sécurité
----------

[](#-sécurité)

- Validation stricte des entrées utilisateur
- Protection CSRF intégrée
- Chiffrement des données sensibles
- Logs d'audit complets
- Conformité RGPD/protection des données

🤝 Contribution
--------------

[](#-contribution)

Les contributions sont les bienvenues ! Consultez le [Guide de contribution](CONTRIBUTING.md).

1. Fork le projet
2. Créez une branche feature (`git checkout -b feature/NouvelleFonctionnalite`)
3. Commit vos changements (`git commit -am 'Ajouter nouvelle fonctionnalité'`)
4. Push vers la branche (`git push origin feature/NouvelleFonctionnalite`)
5. Ouvrez une Pull Request

📄 Licence
---------

[](#-licence)

Ce package est open source sous licence [MIT](LICENSE).

🏢 À propos
----------

[](#-à-propos)

Développé spécialement pour répondre aux besoins des entreprises camerounaises en matière de paiements mobile money. Respecte les réglementations locales et les meilleures pratiques de sécurité.

### Auteur

[](#auteur)

**Cedric Kameni**
Email:

### Support

[](#support)

- 📧 Email:
- 🐛 Issues: [GitHub Issues](https://github.com/cashcamer/cashcamer/issues)
- 📖 Documentation: [docs.cashcamer.cm](https://docs.cashcamer.cm)

---

⭐ **Si ce package vous est utile, n'hésitez pas à lui donner une étoile !**

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance59

Moderate activity, may be stable

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

258d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/d22f0a06c26cd016eb7657d2bae84027f646bbbe8db51722dc5e6cc8f27ef55b?d=identicon)[fokouarnaud](/maintainers/fokouarnaud)

---

Top Contributors

[![fokouarnaud](https://avatars.githubusercontent.com/u/30840421?v=4)](https://github.com/fokouarnaud "fokouarnaud (1 commits)")

---

Tags

laravelpaymentmobile-moneyfintechcashierafricaOrange MoneymtnCameroon

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/cashcamer-cashcamer/health.svg)

```
[![Health](https://phpackages.com/badges/cashcamer-cashcamer/health.svg)](https://phpackages.com/packages/cashcamer-cashcamer)
```

###  Alternatives

[tsaiyihua/laravel-linepay

linepay library for laravel

102.9k](/packages/tsaiyihua-laravel-linepay)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
