« 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
 
(7 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
🗂️ '''[[Boîte à Outils|BOÎTE À OUTILS]]'''
= Transactions =
= Transactions =


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


Elle permet notamment :
Elle permet :


* d’envoyer des crédits à un autre joueur
* d’envoyer des crédits
* de consulter les transactions envoyées et reçues
* de consulter les transactions envoyées et reçues
* de filtrer les opérations par statut, type ou sens
* de filtrer et rechercher dans l’historique
* d’obtenir le détail complet d’une transaction


👉 Une transaction n’est pas toujours instantanée :
👉 Une transaction peut ne pas être immédiate selon l’état du serveur ou des joueurs.
elle peut rester en attente jusqu’à ce que les joueurs concernés soient connectés sur le serveur de jeu.


== 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 joueur]]
[[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 haut : '''Envoi de crédits'''
* en bas : '''historique des transactions'''
* en bas : '''Historique des transactions'''


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


=== Champs disponibles ===
=== Zone d’envoi ===
 
<br clear="all"/>
[[Fichier:Ecran transactions joueur.png|cadre|centre|Zone d’envoi de crédits]]
<br clear="all"/>
 
=== Champs ===


* '''Univers'''
* '''Univers'''
   → serveur concerné par la transaction
   → serveur sur lequel effectuer la transaction
  (ex : ''Univ2 - Sans CPU'')


* '''Destinataire'''
* '''Destinataire'''
Ligne 38 : Ligne 52 :


* '''SteamID'''
* '''SteamID'''
   → permet de saisir manuellement le SteamID d’un joueur si celui-ci n’apparaît pas dans la liste
   → permet de saisir un joueur manuellement
  (utile s’il n’apparaît pas dans la liste)


* '''Montant'''
* '''Montant'''
   → nombre de crédits à transférer
   → crédits à envoyer


* '''Message'''
* '''Message'''
   → description facultative associée à la transaction
   → texte libre associé à la transaction


=== Envoi ===
=== Envoi ===


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


✔️ Si tout est valide :
✔️ Si tout est valide :


* la demande est envoyée au serveur
* un message s’affiche :
* un résumé s’affiche avec l’ID de transaction, les frais et le total débité
  → '''OK (ID xxx - Frais xxx - Total débité xxx)'''
* l’historique est automatiquement rechargé
* la transaction apparaît dans l’historique
 
* le statut passe à '''Créée'''
⚠️ Règles importantes :
 
* vous ne pouvez pas vous envoyer des crédits à vous-même
* le montant doit être strictement supérieur à 0
* une connexion online valide est obligatoire
* le destinataire peut être choisi dans la liste ou saisi manuellement via son SteamID


== Frais de transaction ==
Exemple réel :


Pour les transferts entre joueurs, des frais peuvent être appliqués.
* Montant : 100
* Frais : 1000
* Total débité : 1100


👉 Ces frais sont calculés côté serveur selon une configuration dynamique :
=== Contraintes ===


* pourcentage
* impossible de s’envoyer des crédits à soi-même
* minimum
* le montant doit être > 0
* maximum
* un seul transfert en cours à la fois (côté serveur)
 
👉 Les joueurs donateurs du mois sont exemptés de frais sur les transferts joueur à joueur.


== Historique des transactions ==
== Historique des transactions ==


La partie basse affiche votre historique personnel.
=== Zone historique ===


Elle contient :
<br clear="all"/>
[[Fichier:Ecran transactions joueur historique.png|cadre|centre|Historique des transactions]]
<br clear="all"/>


* les transactions que vous avez envoyées
=== Colonnes ===
* les transactions que vous avez reçues


👉 Les '''250 dernières transactions''' sont chargées pour éviter de surcharger l’interface. Les filtres sont ensuite appliqués côté client. :contentReference[oaicite:5]{index=5}
* '''ID''' → identifiant interne
 
* '''Univers''' → serveur concerné
=== Colonnes ===
* '''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


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


== Codes couleur ==
Transaction affichée :


Les lignes sont colorées automatiquement selon leur statut :
* 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 attente ou en cours de traitement
* '''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'''


* '''Statut''' (par défaut : En cours)
* '''Type'''
* '''Type'''
  → par exemple :
* '''Sens'''
  * transfert joueur
* '''Recherche'''
  * récompense vote
  * don admin
  * retrait admin


* '''Sens'''
Recherche possible sur :
  → envoyé / reçu


* '''Recherche'''
* pseudo
  → recherche par :
* GUID
  * pseudo
* description
  * description
* ID
  * GUID
  * ID


👉 Les filtres sont appliqués directement dans l’application, sans nouvel appel serveur.
👉 Les filtres s’appliquent instantanément.


== Actions disponibles ==
== Actions ==


=== Actualiser ===
=== Actualiser ===
Recharge l’historique depuis le serveur.
Recharge les transactions depuis le serveur.


=== Détails ===
=== Détails ===
Sélectionnez une transaction puis cliquez sur '''Détails''' ou double-cliquez sur la ligne.
Affiche les informations complètes d’une transaction.


La fenêtre de détail affiche notamment :
=== Copier GUID ===
Copie l’identifiant unique.


* l’ID et le GUID
== Statuts des transactions ==
* le type
* le statut
* la source et la destination
* le montant
* les frais
* le total débité
* le total crédité
* les dates
* la description complète


=== Copier GUID ===
=== Cycle normal ===
Permet de copier le GUID de la transaction sélectionnée.


👉 Ce GUID peut être utile pour le support ou pour retrouver précisément une transaction.
* 1. '''Créée'''
* 2. '''Débit en attente'''
* 3. '''Débitée'''
* 4. '''Crédit en attente'''
* 5. '''Terminée'''


== Fonctionnement ==
=== Important ===


Les transactions de crédits sont créées dans la BAO, puis traitées côté serveur.
👉 Une transaction peut rester bloquée en :


Pour les transferts entre joueurs :
* '''Créée'''
* '''Débit en attente'''
* '''Crédit en attente'''


* la transaction est d’abord créée
si :
* le joueur source doit être joignable pour le débit
* le joueur cible doit être joignable pour le crédit
* si tout se passe bien, la transaction est finalisée


👉 Le traitement est réalisé en arrière-plan par un worker serveur qui vérifie régulièrement les transactions en attente.
* le joueur source est hors ligne
* le joueur cible est hors ligne
* le serveur est indisponible


== Cycle de vie d’une transaction ==
=== Cas d’erreur ===


Une transaction suit plusieurs statuts possibles.
* '''Échec''' → erreur technique
* '''Annulée''' → arrêt manuel
* '''Rollback''' → remboursement automatique après problème


=== Étapes normales ===
== Fonctionnement réel ==


1. '''Créée'''
* la transaction est créée dans la BAO
  * la transaction est enregistrée
* 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


2. '''Débit en attente'''
👉 Le transfert n’est donc pas instantané.
  * le système attend de pouvoir débiter le joueur source


3. '''Débitée'''
== Architecture technique ==
  * les crédits ont été retirés au joueur source


4. '''Crédit en attente'''
Le système de transactions repose sur 3 composants principaux :
  * le système attend de pouvoir créditer le joueur cible


5. '''Terminée'''
* '''Client (Boîte à Outils)'''
  * les crédits ont bien été transférés
  → envoie les demandes de transfert et affiche l’historique


=== Cas particuliers ===
* '''API BAO'''
  → enregistre les transactions et pilote leur exécution


* '''Échec'''
* '''Serveur Empyrion (mod Credits)'''
   * erreur définitive avant finalisation
   → applique réellement les crédits en jeu


* '''Annulée'''
👉 Les crédits ne sont jamais modifiés directement par le client.
  * transaction annulée volontairement
Tout passe par l’API serveur.


* '''Rollback en attente'''
== Traitement en arrière-plan ==
  * le débit a réussi, mais le crédit final n’a pas pu aboutir


* '''Rollback terminé'''
Les transactions sont traitées automatiquement par un service serveur.
  * les crédits ont été restitués au joueur source


=== Schéma simplifié ===
Ce service :


Créée 
* vérifie les transactions toutes les '''30 secondes'''
→ Débit en attente 
* traite les transactions par lot
→ Débitée 
* priorise les joueurs qui viennent de se connecter
→ Crédit en attente 
→ Terminée


ou, en cas de problème après débit :
👉 Une transaction n’est donc jamais exécutée immédiatement.
Elle est prise en charge par un worker.


Débitée 
=== Priorités de traitement ===
→ Crédit en attente 
→ Rollback en attente 
→ Rollback terminé


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


Une transaction peut rester en attente dans plusieurs cas :
👉 Cela permet d’accélérer les transferts dès qu’un joueur revient en ligne.


* le joueur source n’est pas connecté
== Gestion des joueurs hors ligne ==
* le joueur cible n’est pas connecté
* le serveur de jeu ou le mod Empyrion n’est pas joignable
* le traitement attend le prochain cycle du worker


👉 Ce comportement est normal.
Le système gère automatiquement les joueurs hors ligne.


Le système interroge le serveur de jeu via l’API du mod Empyrion pour lire et modifier les crédits du joueur concerné.
=== Cas 1 : joueur source hors ligne ===


== Sécurité et robustesse ==
* la transaction reste en attente
* elle sera exécutée à sa prochaine connexion


Le système met en place plusieurs protections :
=== Cas 2 : joueur cible hors ligne ===


* verrou côté serveur pour éviter plusieurs transferts concurrents depuis le même joueur
* le débit est effectué
* logs détaillés d’audit
* le crédit est mis en attente
* retries techniques
* il sera appliqué à la prochaine connexion
* attente spécifique quand un joueur est hors ligne
* rollback si un débit a eu lieu mais que le crédit final échoue


👉 L’objectif est de sécuriser les crédits et d’éviter les pertes silencieuses.
=== Retry automatique ===


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


Les transactions peuvent générer :
👉 Aucune action manuelle n’est nécessaire.


* des notifications dans la BAO pour les joueurs concernés
== Notifications ==
* des notifications Discord côté serveur


Exemples :
Le système envoie automatiquement des notifications Discord :


* transfert initié
* création de transaction
* transfert réussi
* débit effectué
* transaction échouée
* crédit effectué
* rollback effectué
* transaction terminée
* erreurs ou rollback


== Ce que cette fonctionnalité fait ==
👉 Les joueurs peuvent suivre l’évolution en temps réel.


* crée des transferts de crédits entre joueurs
=== Exemple ===
* permet de suivre l’avancement réel d’une transaction
* affiche l’historique personnel
* fournit des détails utiles pour le support


== Ce que cette fonctionnalité ne fait pas ==
* Étape 1/2 : débit effectué
* Étape 2/2 : crédit effectué


* ne garantit pas un transfert instantané
== Notes ==
* ne permet pas d’annuler soi-même une transaction côté joueur
* ne traite pas les crédits hors serveur concerné
* ne contourne pas l’état de connexion des joueurs


== 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)


* une connexion online valide est obligatoire
[[Boîte à Outils|← Retour à la Boîte à Outils]]
* l’interface traduit les statuts techniques en français pour l’affichage
* les dates sont affichées en heure locale
* certaines transactions peuvent rester temporairement en attente avant d’évoluer automatiquement

Dernière version du 11 avril 2026 à 12:21

🗂️ BOÎTE À OUTILS

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)

← Retour à la Boîte à Outils