« Transaction » : différence entre les versions

De Boite A Outils
Aller à la navigation Aller à la recherche
 
Ligne 218 : Ligne 218 :
=== Priorités de traitement ===
=== Priorités de traitement ===


1. Joueurs qui viennent de se connecter
* 1. Joueurs qui viennent de se connecter
2. Transactions en attente
* 2. Transactions en attente
3. Transactions expirées
* 3. Transactions expirées


👉 Cela permet d’accélérer les transferts dès qu’un joueur revient en ligne.
👉 Cela permet d’accélérer les transferts dès qu’un joueur revient en ligne.

Dernière version du 28 mars 2026 à 14:18

Transactions

Description

Cette page permet de transférer des crédits à d’autres joueurs et de suivre vos transactions.

Elle permet :

  • d’envoyer des crédits
  • de consulter les transactions envoyées et reçues
  • de filtrer et rechercher dans l’historique

👉 Une transaction peut ne pas être immédiate selon l’état du serveur ou des joueurs.

Accès

Depuis le menu principal :

  • JoueurTransactions
Accès

Vue de l’écran

Écran principal


Écran des transactions


L’écran est divisé en deux zones :

  • en haut : Envoi de crédits
  • en bas : Historique des transactions

Envoyer des crédits

Zone d’envoi


Zone d’envoi de crédits


Champs

  • Univers
 → serveur sur lequel effectuer la transaction  
 (ex : Univ2 - Sans CPU)
  • Destinataire
 → joueur sélectionné dans la liste
  • SteamID
 → permet de saisir un joueur manuellement  
 (utile s’il n’apparaît pas dans la liste)
  • Montant
 → crédits à envoyer
  • Message
 → texte libre associé à la transaction

Envoi

Cliquez sur Envoyer.

✔️ Si tout est valide :

  • un message s’affiche :
OK (ID xxx - Frais xxx - Total débité xxx)
  • la transaction apparaît dans l’historique
  • le statut passe à Créée

Exemple réel :

  • Montant : 100
  • Frais : 1000
  • Total débité : 1100

Contraintes

  • impossible de s’envoyer des crédits à soi-même
  • le montant doit être > 0
  • un seul transfert en cours à la fois (côté serveur)

Historique des transactions

Zone historique


Fichier:Ecran transactions joueur historique.png
Historique des transactions


Colonnes

  • ID → identifiant interne
  • Univers → serveur concerné
  • Sens
 * Envoyé
 * Reçu
  • Autre joueur → joueur concerné
  • Montant → montant principal
  • Frais → frais appliqués
  • Statut → état actuel
  • Créée le → date de création
  • Terminée le → date de fin (si applicable)
  • Description → message

Exemple réel

Transaction affichée :

  • ID : 138
  • Univers : Univ2 - Sans CPU
  • Sens : Envoyé
  • Joueur : babyloune
  • Montant : 100
  • Frais : 1000
  • Statut : Créée

👉 Cela signifie que la transaction est enregistrée mais pas encore exécutée.

Filtres

Situés au-dessus de l’historique :

  • Statut (par défaut : En cours)
  • Type
  • Sens
  • Recherche

Recherche possible sur :

  • pseudo
  • GUID
  • description
  • ID

👉 Les filtres s’appliquent instantanément.

Actions

Actualiser

Recharge les transactions depuis le serveur.

Détails

Affiche les informations complètes d’une transaction.

Copier GUID

Copie l’identifiant unique.

Statuts des transactions

Cycle normal

  • 1. Créée
  • 2. Débit en attente
  • 3. Débitée
  • 4. Crédit en attente
  • 5. Terminée

Important

👉 Une transaction peut rester bloquée en :

  • Créée
  • Débit en attente
  • Crédit en attente

si :

  • le joueur source est hors ligne
  • le joueur cible est hors ligne
  • le serveur est indisponible

Cas d’erreur

  • Échec → erreur technique
  • Annulée → arrêt manuel
  • Rollback → remboursement automatique après problème

Fonctionnement réel

  • la transaction est créée dans la BAO
  • elle est traitée en arrière-plan côté serveur
  • le système attend que les joueurs soient connectés
  • le débit et le crédit se font séparément

👉 Le transfert n’est donc pas instantané.

Architecture technique

Le système de transactions repose sur 3 composants principaux :

  • Client (Boîte à Outils)
 → envoie les demandes de transfert et affiche l’historique
  • API BAO
 → enregistre les transactions et pilote leur exécution
  • Serveur Empyrion (mod Credits)
 → applique réellement les crédits en jeu

👉 Les crédits ne sont jamais modifiés directement par le client. Tout passe par l’API serveur.

Traitement en arrière-plan

Les transactions sont traitées automatiquement par un service serveur.

Ce service :

  • vérifie les transactions toutes les 30 secondes
  • traite les transactions par lot
  • priorise les joueurs qui viennent de se connecter

👉 Une transaction n’est donc jamais exécutée immédiatement. Elle est prise en charge par un worker.

Priorités de traitement

  • 1. Joueurs qui viennent de se connecter
  • 2. Transactions en attente
  • 3. Transactions expirées

👉 Cela permet d’accélérer les transferts dès qu’un joueur revient en ligne.

Gestion des joueurs hors ligne

Le système gère automatiquement les joueurs hors ligne.

Cas 1 : joueur source hors ligne

  • la transaction reste en attente
  • elle sera exécutée à sa prochaine connexion

Cas 2 : joueur cible hors ligne

  • le débit est effectué
  • le crédit est mis en attente
  • il sera appliqué à la prochaine connexion

Retry automatique

  • le système réessaie régulièrement
  • les compteurs sont réinitialisés à chaque reconnexion

👉 Aucune action manuelle n’est nécessaire.

Notifications

Le système envoie automatiquement des notifications Discord :

  • création de transaction
  • débit effectué
  • crédit effectué
  • transaction terminée
  • erreurs ou rollback

👉 Les joueurs peuvent suivre l’évolution en temps réel.

Exemple

  • Étape 1/2 : débit effectué
  • Étape 2/2 : crédit effectué

Notes

  • une connexion online est obligatoire
  • les statuts évoluent automatiquement
  • les frais sont calculés côté serveur
  • les transactions sont sécurisées (pas de double envoi possible)