Django reusable package for African mobile money payments
Project description
django-mobile-money
Package Django reusable pour les paiements Mobile Money africains. Integrez Wave, Orange Money, MTN MoMo et Moov Money en 3 lignes de code.
Backends supportes
| Provider | Pays | Statut |
|---|---|---|
| Wave | CI, SN | Stable |
| Orange Money | CI, SN, CM, BF, ML, GN | Stable |
| MTN MoMo | CI, GH, CM, BJ, SN, UG | Stable |
| Moov Money | CI, BJ, TG, BF, ML, NE | Stable |
Installation
pip install django-mobile-money
Quickstart
1. INSTALLED_APPS
INSTALLED_APPS = [
"django_mobile_money",
]
2. settings.py
MOBILE_MONEY = {
"DEFAULT_BACKEND": "wave",
"WAVE": {
"API_KEY": env("WAVE_API_KEY"),
"SANDBOX": True,
},
"ORANGE_MONEY": {
"CLIENT_ID": env("ORANGE_CLIENT_ID"),
"CLIENT_SECRET": env("ORANGE_CLIENT_SECRET"),
},
"MTN_MOMO": {
"SUBSCRIPTION_KEY": env("MTN_SUBSCRIPTION_KEY"),
"ENVIRONMENT": "sandbox",
},
"MOOV_MONEY": {
"USERNAME": env("MOOV_USERNAME"),
"PASSWORD": env("MOOV_PASSWORD"),
"PARTNER_ID": env("MOOV_PARTNER_ID"),
},
}
3. urls.py
urlpatterns = [
path("mobile-money/", include("django_mobile_money.urls")),
]
4. Lancer un paiement
from django_mobile_money import pay
result = pay(
phone="+22507XXXXXXXX",
amount=5000,
backend="wave",
)
if result["status"] == "success":
print("Paiement confirme :", result["transaction_id"])
elif result["status"] == "pending":
print("En attente de confirmation")
else:
print("Echec :", result["message"])
Reponse standardisee
{
"status": "pending" | "success" | "failed",
"transaction_id": str,
"provider_reference": str,
"message": str,
"raw_response": dict,
}
Modeles Django
- MobileTransaction - historique complet des paiements
- WebhookLog - logs des webhooks entrants
Signals
from django.dispatch import receiver
from django_mobile_money.signals import payment_success
@receiver(payment_success)
def on_payment_success(sender, transaction, backend_id, **kwargs):
print(f"Paiement reussi : {transaction.transaction_id}")
Template tags
{% load mobile_money_tags %}
{% payment_button phone="+22507XXXXXXXX" amount=5000 backend="wave" %}
{% transaction_status_badge transaction.status %}
Tests
uv run pytest -v
uv run coverage run -m pytest && uv run coverage report
# 34 tests - 92% coverage
Contribution
Voir CONTRIBUTING.md — les contributions sont les bienvenues !
Auteur
OURA KONAN ROMEO - Django Developer & IT Instructor Abidjan, Cote d Ivoire https://github.com/oura02
Licence
MIT 2026 OURA KONAN ROMEO
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django_mobile_money-0.7.0.tar.gz.
File metadata
- Download URL: django_mobile_money-0.7.0.tar.gz
- Upload date:
- Size: 20.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
adc036d49e5147758dbec0f5c83e79de0bbaa51c61ab6e27fb035f40dc7699b8
|
|
| MD5 |
d366d05f318bcdd2a9dc375f76a70a8f
|
|
| BLAKE2b-256 |
6f8cf3dc88532e3bf125b7c4e57d530b6a490e9122b54c072d74994602fe1727
|
File details
Details for the file django_mobile_money-0.7.0-py3-none-any.whl.
File metadata
- Download URL: django_mobile_money-0.7.0-py3-none-any.whl
- Upload date:
- Size: 29.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b0f91a756a9b142ebe14335b827f7959b8ade38065a5470a5f2d2b4422c6782
|
|
| MD5 |
f2e8f691b36035abc8e76caea3cfd311
|
|
| BLAKE2b-256 |
fdd328689b9695107e10cab7a894f131543e23606bc2a272a1f1df8108b01531
|