Mes Projets
Projets actifs
0
sur 2 max (Free)
Simulations ce mois
0
Plan actuel
FREE
Derniere activite
Aucune simulation
Mes projets USSD
📁
Chargement...
Choisissez un template pret a l'emploi et personnalisez-le. Chaque template est un projet USSD complet avec menus, navigation et messages.
🆕
Chargement...
📱
Simulateur USSD
Selectionnez un projet et lancez la simulation. Le simulateur reproduit exactement le comportement des serveurs MTN Comviva, MadAPI et MobileMoney Congo.
Total simulations
0
Sessions completes
0
Sessions abandonnees
0
Taux completion
0%
Simulations par jour (7 derniers jours)
Activite recente
Aucune activite recente
Documentation & Tutoriels
📚
Introduction au USSD
Comprendre le protocole USSD, les sessions, les timeouts et la limite de 182 caracteres.
DEBUTANT
📡
Adaptateur Comviva FLARES
Integration MTN CG via GET params : sessionId, msisdn, input. Structure de la reponse.
MTN CG
🔗
Adaptateur MTN MadAPI
Integration REST JSON : subscription, inbound, outbound. MessageTypes 0-5.
MTN REST
📋
Gestion des sessions
Sessions PHP, timeout, fermeture propre, saisies libres et parcours dynamiques.
AVANCE
🚀
Deploiement en production
Configurer votre serveur, pointer l URL chez l operateur, tester en prod.
PROD
Bonnes pratiques
Menus courts, validation inputs, gestion erreurs, encodage GSM, securite.
TIPS
Code snippets reutilisables
Menu principal Comviva FLARES (PHP)
<?php
// Parametres Comviva FLARES
$sessionId   = $_GET['sessionId'] ?? '';
$user_msisdn = $_GET['msisdn'] ?? '';
$user_input  = $_GET['input'] ?? '';

session_id($sessionId.$user_msisdn);
@session_start();

// Timeout automatique
if(isset($_SESSION['_t']) && (time()-$_SESSION['_t'])>180){
  session_destroy();
  ussdRespond('Session expiree.', true);
}
$_SESSION['_t'] = time();

function ussdRespond(string $text, bool $end=false):void {
  if(mb_strlen($text)>182) $text=mb_substr($text,0,179).'...';
  if($end) session_destroy();
  header('Content-Type: text/plain; charset=utf-8');
  echo $text; exit;
}
Validation saisie libre (nom, date)
// Validation format date jj-mm-aaaa
function isValidDate($date, $format='d-m-Y'):bool {
  $dt = DateTime::createFromFormat($format, $date);
  return $dt && $dt->format($format) === $date;
}

// Validation nom*prenom
if(preg_match('#[a-z][(\*){1}]([^0-9])#i', $input)) {
  $_SESSION['nom']    = before('*', $input);
  $_SESSION['prenom'] = after('*', $input);
} else {
  ussdRespond('Format: Nom*Prenom', true);
}
Appel MadAPI — Subscription (Node.js)
// Enregistrer votre callback URL chez MTN MadAPI
const response = await fetch('https://api.mtn.com/v1/messages/ussd/subscription', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'x-api-key': process.env.MTN_API_KEY
  },
  body: JSON.stringify({
    serviceCode: '*123#',
    callbackUrl: 'https://votre-serveur.com/ussd/inbound',
    targetSystem: 'USSD_ENGINE'
  })
});
const { data } = await response.json();
console.log('subscriptionId:', data.subscriptionId);
Reponse MadAPI — Inbound handler (Node.js)
// Recevoir et repondre aux messages USSD MadAPI
app.post('/ussd/inbound', async (req, res) => {
  const { sessionId, messageType, msisdn, ussdString } = req.body;

  // messageType: 0=Begin 1=Continue 2=End 4=Cancel 5=Timeout
  if (messageType === '4' || messageType === '5') {
    return res.json({ statusCode: '0000' });
  }

  const screen = await processMenu(sessionId, ussdString);

  res.json({
    statusCode: '0000',
    data: {
      inboundResponse: screen.text,
      userInputRequired: screen.waitInput,
      messageType: screen.waitInput ? 1 : 2
    }
  });
});
?
FREE
Modifier mes informations
Changer le mot de passe
Paiement via MobileMoney Congo — integration en cours. Contactez [email protected] pour un upgrade manuel.
Suivez vos demandes d'integration USSD aupres des operateurs.
Prerequis : le projet doit etre certifie U/EN avant soumission.
📜
Chargement...