« Transaction » : différence entre les versions

De Boite A Outils
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
 
(7 versions intermédiaires par le même utilisateur non affichées)
Ligne 2 : Ligne 2 :


== Description ==
== Description ==
Cette page permet de gérer vos crédits dans la Boîte à Outils.
Cette page permet de '''transférer des crédits à d’autres joueurs''' et de '''suivre vos transactions'''.


Elle permet :
Elle permet :
* d’envoyer des crédits à d’autres joueurs
 
* de consulter votre historique de transactions
* d’envoyer des crédits
* de filtrer et rechercher des opérations
* 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 ==
== Accès ==
Menu '''Joueur''' → '''Transactions'''


== Vue globale ==
Depuis le menu principal :
 
* '''Joueur''' → '''Transactions'''
 
[[Fichier:Accès transactions joueur.png|cadre|centre|Accès]]
 
== Vue de l’écran ==
 
=== Écran principal ===
<br clear="all"/>
<br clear="all"/>
[[Fichier:Ecran transactions joueur.png|cadre|gauche|Écran des transactions]]
[[Fichier:Ecran transactions joueur.png|cadre|centre|Écran des transactions]]
<br clear="all"/>
<br clear="all"/>


L’écran est divisé en deux parties :
L’écran est divisé en deux zones :
* en haut : envoi de crédits
 
* en bas : historique des transactions
* en haut : '''Envoi de crédits'''
* en bas : '''Historique des transactions'''


== Envoyer des crédits ==
== Envoyer des crédits ==


=== Champs disponibles ===
=== Zone d’envoi ===


* '''Univers''' 
<br clear="all"/>
  → sélection du serveur concerné
[[Fichier:Ecran transactions joueur.png|cadre|centre|Zone d’envoi de crédits]]
<br clear="all"/>


* '''Destinataire''' 
=== Champs ===
  → sélection d’un joueur dans la liste


* '''SteamID'''
* '''Univers'''
   → permet de saisir manuellement un destinataire non présent dans la liste
   → serveur sur lequel effectuer la transaction 
  (ex : ''Univ2 - Sans CPU'')


* '''Montant'''
* '''Destinataire'''
   → nombre de crédits à envoyer
   → joueur sélectionné dans la liste


* '''Message'''   
* '''SteamID'''
   → description facultative associée à la transaction
  → permet de saisir un joueur manuellement  
   (utile s’il n’apparaît pas dans la liste)


---
* '''Montant'''
  → crédits à envoyer


=== Envoyer ===
* '''Message'''
  → texte libre associé à la transaction


Cliquez sur '''Envoyer''' pour créer la transaction.
=== Envoi ===
 
Cliquez sur '''Envoyer'''.


✔️ Si tout est valide :
✔️ Si tout est valide :
* la transaction est envoyée au serveur
* un message de confirmation s’affiche
* l’historique est automatiquement mis à jour


⚠️ Contraintes :
* un message s’affiche :
* vous ne pouvez pas vous envoyer des crédits à vous-même
  → '''OK (ID xxx - Frais xxx - Total débité xxx)'''
* le montant doit être supérieur à 0
* 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 ==
== Historique des transactions ==


La partie basse affiche vos transactions récentes.
=== Zone historique ===


👉 Les 250 dernières transactions sont chargées pour garder un affichage fluide.
<br clear="all"/>
[[Fichier:Ecran transactions joueur historique.png|cadre|centre|Historique des transactions]]
<br clear="all"/>


=== Colonnes ===
=== Colonnes ===


* '''ID''' : identifiant de la transaction
* '''ID''' identifiant interne
* '''Univers''' : serveur concerné
* '''Univers''' serveur concerné
* '''Sens''' :
* '''Sens'''
   * Envoyé → transaction sortante
   * '''Envoyé'''
   * Reçu → transaction entrante
   * '''Reçu'''
* '''Autre joueur''' : joueur impliqué
* '''Autre joueur''' joueur concerné
* '''Montant''' : montant de la transaction
* '''Montant''' montant principal
* '''Frais''' : frais appliqués
* '''Frais''' frais appliqués
* '''Statut''' : état de la transaction
* '''Statut''' état actuel
* '''Créée le''' : date de création
* '''Créée le''' date de création
* '''Terminée le''' : date de finalisation
* '''Terminée le''' date de fin (si applicable)
* '''Description''' : message associé
* '''Description''' message
 
=== Exemple réel ===


=== Codes couleur ===
Transaction affichée :


Les lignes sont colorées automatiquement :
* ID : 138
* Univers : Univ2 - Sans CPU
* Sens : Envoyé
* Joueur : babyloune
* Montant : 100
* Frais : 1000
* Statut : Créée


* 🟢 Vert → transaction terminée
👉 Cela signifie que la transaction est enregistrée mais pas encore exécutée.
* 🟡 Jaune → transaction en cours
* 🔴 Rouge → transaction échouée ou annulée


== Filtres ==
== Filtres ==


Plusieurs filtres sont disponibles :
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.


* '''Statut''' 
=== Copier GUID ===
  → par défaut : '''En cours'''
Copie l’identifiant unique.


* '''Type''' 
== Statuts des transactions ==
  → ex : transfert joueur, récompense, etc.


* '''Sens''' 
=== Cycle normal ===
  → Envoyé / Reçu


* '''Recherche'''
* 1. '''Créée'''
  → recherche par :
* 2. '''Débit en attente'''
  * pseudo
* 3. '''Débitée'''
  * description
* 4. '''Crédit en attente'''
  * GUID
* 5. '''Terminée'''
  * ID


👉 Les filtres sont appliqués automatiquement.
=== Important ===


== Actions disponibles ==
👉 Une transaction peut rester bloquée en :


=== Actualiser ===
* '''Créée'''
Recharge l’historique depuis le serveur.
* '''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 ==


=== Voir les détails ===
Les transactions sont traitées automatiquement par un service serveur.
* sélectionnez une transaction
* cliquez sur '''Détails''' ou double-cliquez


Affiche :
Ce service :
* GUID
* type
* statut
* source et destination
* montants détaillés
* dates
* description complète


=== Copier le GUID ===
* vérifie les transactions toutes les '''30 secondes'''
Permet de copier l’identifiant unique de la transaction.
* traite les transactions par lot
* priorise les joueurs qui viennent de se connecter


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


* les transactions sont récupérées depuis le serveur
=== Priorités de traitement ===
* les filtres sont appliqués côté client
* les données sont triées par date (plus récentes en premier)


== Cycle de vie d'une transaction ==
* 1. Joueurs qui viennent de se connecter
* 2. Transactions en attente
* 3. Transactions expirées


Une transaction de crédits suit plusieurs étapes avant d’être finalisée.
👉 Cela permet d’accélérer les transferts dès qu’un joueur revient en ligne.


=== Étapes ===
== Gestion des joueurs hors ligne ==


1. '''Créée'''
Le système gère automatiquement les joueurs hors ligne.
  * La transaction est enregistrée
  * Aucun débit n’a encore été effectué


2. '''Débit en attente'''
=== Cas 1 : joueur source hors ligne ===
  * Le système prépare le retrait des crédits
  * Vérifications en cours (solde, validité)


3. '''Débitée'''
* la transaction reste en attente
  * Les crédits sont retirés du compte source
* elle sera exécutée à sa prochaine connexion


4. '''Crédit en attente'''
=== Cas 2 : joueur cible hors ligne ===
  * Le système prépare l’ajout des crédits au destinataire


5. '''Terminée'''
* le débit est effectué
  * Les crédits ont été transférés avec succès
* le crédit est mis en attente
* il sera appliqué à la prochaine connexion


=== Cas particuliers ===
=== Retry automatique ===


* '''Échec'''
* le système réessaie régulièrement
  * Une erreur est survenue (ex : problème serveur)
* les compteurs sont réinitialisés à chaque reconnexion


* '''Annulée'''
👉 Aucune action manuelle n’est nécessaire.
  * La transaction a été annulée avant finalisation


* '''Rollback en attente'''
== Notifications ==
  * Le système prépare un retour arrière (remboursement)


* '''Rollback terminé'''
Le système envoie automatiquement des notifications Discord :
  * Les crédits ont été restitués au joueur initial


=== Schéma simplifié ===
* création de transaction
* débit effectué
* crédit effectué
* transaction terminée
* erreurs ou rollback


Créée 
👉 Les joueurs peuvent suivre l’évolution en temps réel.
→ Débit en attente 
→ Débitée 
→ Crédit en attente 
→ Terminée


=== À savoir ===
=== Exemple ===


* Une transaction peut rester temporairement en attente selon la charge serveur
* Étape 1/2 : débit effectué
* Les statuts sont mis à jour automatiquement
* Étape 2/2 : crédit effectué
* En cas de problème, un rollback peut être déclenché pour sécuriser les crédits


== Notes ==
== Notes ==


* une connexion online est obligatoire
* une connexion online est obligatoire
* certaines transactions peuvent être en attente de traitement serveur
* les statuts évoluent automatiquement
* le statut évolue automatiquement (créée → débit → crédit → terminé)
* les frais sont calculés côté serveur
* les transactions sont sécurisées (pas de double envoi possible)

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)