« Transaction » : différence entre les versions

De Boite A Outils
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 186 : Ligne 186 :


👉 Le transfert n’est donc pas instantané.
👉 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 ==
== Notes ==

Version du 28 mars 2026 à 14:17

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)