0

Mon Menu USSD Africa's Talking coupe la session avant la fin de la saisie.

Jayan BOSS 0 il y a 44 minutes Burkina Faso

Je développe un service USSD avec Africa's Talking et Laravel 11 pour qu'une coopérative agricole puisse consulter le prix du jour et son solde depuis un téléphone simple, sans internet.

Le menu a 3 niveaux. Le premier niveau marche, mais dès le deuxième, l'utilisateur reçoit souvent « Erreur de connexion » et la session se coupe, surtout en zone rurale.

Mon contrôleur actuel :

public function ussd(Request $request)
{
    $text = $request->input('text', '');
    $niveaux = $text === '' ? [] : explode('*', $text);

    $reponse = match (count($niveaux)) {
        0 => "CON Bienvenue sur AgriPrix\n1. Prix du jour\n2. Mon solde",
        1 => $niveaux[0] === '1'
            ? "CON Choisissez un produit\n1. Maïs\n2. Sorgho\n3. Arachide"
            : 'END Votre solde : '.Membre::soldeDe($request->input('phoneNumber')).' FCFA',
        default => 'END Prix : '.Prix::du($niveaux[1]).' FCFA/kg',
    };

    return response($reponse)->header('Content-Type', 'text/plain');
}

Ce que j'ai déjà vérifié :

  • L'URL de callback répond bien en HTTPS et le sandbox Africa's Talking fonctionne.
  • Membre::soldeDe() interroge une API interne qui met parfois 4 à 6 secondes à répondre.
  • Les logs Laravel ne montrent aucune erreur côté serveur.

Mes questions :

  1. Quel est le délai maximum de réponse accepté par les opérateurs pour une session USSD au Burkina (Orange, Moov) ?
  2. Faut-il mettre le solde en cache, ou répondre tout de suite et envoyer le résultat par SMS ?
  3. Comment gérer proprement le retour en arrière (touche 0) dans la chaîne text ?

Merci d'avance pour vos retours d'expérience sur le terrain.

Modifiée il y a 43 minutes

0 réponse

Vous connaissez la réponse ? Rejoignez Griot pour aider.

Publier

Poser une question Obtenir de l'aide de la communauté Publier un composant Partager un SDK, un wrapper ou un package Proposer un troc Échanger une heure d'aide contre une autre Créer une prime Récompenser une solution en Mobile Money Organiser un hackathon Lancer un défi pour la communauté
Troc de compétences Primes Hackathons Observatoire