« 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 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 l’historique de vos transactions'''.


Elle permet :
Elle permet notamment :
* d’envoyer des crédits à d’autres joueurs
 
* de consulter votre historique de transactions
* d’envoyer des crédits à un autre joueur
* de filtrer et rechercher des opérations
* de consulter les transactions envoyées et reçues
* de filtrer les opérations par statut, type ou sens
* d’obtenir le détail complet d’une transaction
 
👉 Une transaction n’est pas toujours instantanée :
elle peut rester en attente jusqu’à ce que les joueurs concernés soient connectés sur le serveur de jeu.


== Accès ==
== Accès ==
Ligne 14 : Ligne 19 :
== Vue globale ==
== Vue globale ==
<br clear="all"/>
<br clear="all"/>
[[Fichier:Ecran transactions joueur.png|cadre|gauche|Écran des transactions]]
[[Fichier:Ecran transactions joueur.png|cadre|gauche|Écran des transactions joueur]]
<br clear="all"/>
<br clear="all"/>


L’écran est divisé en deux parties :
L’écran est divisé en deux parties :
* 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 ==
Ligne 25 : Ligne 31 :
=== Champs disponibles ===
=== Champs disponibles ===


* '''Univers'''
* '''Univers'''
   → sélection du serveur concerné
   → serveur concerné par la transaction


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


* '''SteamID'''
* '''SteamID'''
   → permet de saisir manuellement un destinataire non présent dans la liste
   → permet de saisir manuellement le SteamID d’un joueur si celui-ci n’apparaît pas dans la liste


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


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


---
=== Envoi ===
 
=== Envoyer ===


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


✔️ 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 :
* la demande est envoyée au serveur
* un résumé s’affiche avec l’ID de transaction, les frais et le total débité
* l’historique est automatiquement rechargé
 
⚠️ Règles importantes :
 
* vous ne pouvez pas vous envoyer des crédits à vous-même
* vous ne pouvez pas vous envoyer des crédits à vous-même
* le montant doit être supérieur à 0
* 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 ==
 
Pour les transferts entre joueurs, des frais peuvent être appliqués.
 
👉 Ces frais sont calculés côté serveur selon une configuration dynamique :
 
* pourcentage
* minimum
* maximum
 
👉 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 vos transactions récentes.
La partie basse affiche votre historique personnel.


👉 Les 250 dernières transactions sont chargées pour garder un affichage fluide.
Elle contient :
 
* les transactions que vous avez envoyées
* 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}


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


* '''ID''' : identifiant de la transaction
* '''ID''' : identifiant interne de la transaction
* '''Univers''' : serveur concerné
* '''Univers''' : serveur concerné
* '''Sens''' :
* '''Sens''' :
  * Envoyé → transaction sortante
** '''Envoyé''' → transaction sortante
  * Reçu → transaction entrante
** '''Reçu''' → transaction entrante
* '''Autre joueur''' : joueur impliqué
* '''Autre joueur''' : autre partie impliquée
* '''Montant''' : montant de la transaction
* '''Montant''' : montant principal de la transaction
* '''Frais''' : frais appliqués
* '''Frais''' : frais prélevés
* '''Statut''' : état de la transaction
* '''Statut''' : état actuel de la transaction
* '''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 finalisation
* '''Description''' : message associé
* '''Description''' : message associé


=== Codes couleur ===
== Codes couleur ==


Les lignes sont colorées automatiquement :
Les lignes sont colorées automatiquement selon leur statut :


* 🟢 Vert → transaction terminée
* '''Vert''' → transaction terminée
* 🟡 Jaune → transaction en cours
* '''Jaune''' → transaction en attente ou en cours de traitement
* 🔴 Rouge → transaction échouée ou annulée
* '''Rouge''' → transaction échouée ou annulée


== Filtres ==
== Filtres ==
Ligne 88 : Ligne 113 :
Plusieurs filtres sont disponibles :
Plusieurs filtres sont disponibles :


* '''Statut'''
* '''Statut'''
   → par défaut : '''En cours'''
   → par défaut : '''En cours'''


* '''Type'''
* '''Type'''
   → ex : transfert joueur, récompense, etc.
   → par exemple :
  * transfert joueur
  * récompense vote
  * don admin
  * retrait admin


* '''Sens'''
* '''Sens'''
   → Envoyé / Reçu
   → envoyé / reçu


* '''Recherche'''
* '''Recherche'''
   → recherche par :
   → recherche par :
   * pseudo
   * pseudo
Ligne 104 : Ligne 133 :
   * ID
   * ID


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


== Actions disponibles ==
== Actions disponibles ==
Ligne 111 : Ligne 140 :
Recharge l’historique depuis le serveur.
Recharge l’historique depuis le serveur.


=== Voir les détails ===
=== Détails ===
* sélectionnez une transaction
Sélectionnez une transaction puis cliquez sur '''Détails''' ou double-cliquez sur la ligne.
* cliquez sur '''Détails''' ou double-cliquez


Affiche :
La fenêtre de détail affiche notamment :
* GUID
* type
* statut
* source et destination
* montants détaillés
* dates
* description complète


=== Copier le GUID ===
* l’ID et le GUID
Permet de copier l’identifiant unique de la transaction.
* 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 ===
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.


== Fonctionnement ==
== Fonctionnement ==


* les transactions sont récupérées depuis le serveur
Les transactions de crédits sont créées dans la BAO, puis traitées côté serveur.
* 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 ==
Pour les transferts entre joueurs :


Une transaction de crédits suit plusieurs étapes avant d’être finalisée.
* la transaction est d’abord créée
* 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


=== Étapes ===
👉 Le traitement est réalisé en arrière-plan par un worker serveur qui vérifie régulièrement les transactions en attente.
 
== Cycle de vie d’une transaction ==
 
Une transaction suit plusieurs statuts possibles.
 
=== Étapes normales ===


1. '''Créée'''
1. '''Créée'''
   * La transaction est enregistrée
   * la transaction est enregistrée
  * Aucun débit n’a encore été effectué


2. '''Débit en attente'''
2. '''Débit en attente'''
   * Le système prépare le retrait des crédits
   * le système attend de pouvoir débiter le joueur source
  * Vérifications en cours (solde, validité)


3. '''Débitée'''
3. '''Débitée'''
   * Les crédits sont retirés du compte source
   * les crédits ont été retirés au joueur source


4. '''Crédit en attente'''
4. '''Crédit en attente'''
   * Le système prépare l’ajout des crédits au destinataire
   * le système attend de pouvoir créditer le joueur cible


5. '''Terminée'''
5. '''Terminée'''
   * Les crédits ont été transférés avec succès
   * les crédits ont bien été transférés


=== Cas particuliers ===
=== Cas particuliers ===


* '''Échec'''
* '''Échec'''
   * Une erreur est survenue (ex : problème serveur)
   * erreur définitive avant finalisation


* '''Annulée'''
* '''Annulée'''
   * La transaction a été annulée avant finalisation
   * transaction annulée volontairement


* '''Rollback en attente'''
* '''Rollback en attente'''
   * Le système prépare un retour arrière (remboursement)
   * le débit a réussi, mais le crédit final n’a pas pu aboutir


* '''Rollback terminé'''
* '''Rollback terminé'''
   * Les crédits ont été restitués au joueur initial
   * les crédits ont été restitués au joueur source


=== Schéma simplifié ===
=== Schéma simplifié ===
Ligne 178 : Ligne 217 :
→ Terminée
→ Terminée


=== À savoir ===
ou, en cas de problème après débit :
 
Débitée 
→ Crédit en attente 
→ Rollback en attente 
→ Rollback terminé
 
== Transactions en attente ==
 
Une transaction peut rester en attente dans plusieurs cas :
 
* le joueur source n’est pas connecté
* 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 interroge le serveur de jeu via l’API du mod Empyrion pour lire et modifier les crédits du joueur concerné.
 
== Sécurité et robustesse ==
 
Le système met en place plusieurs protections :
 
* verrou côté serveur pour éviter plusieurs transferts concurrents depuis le même joueur
* logs détaillés d’audit
* retries techniques
* 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.
 
== Notifications ==
 
Les transactions peuvent générer :
 
* des notifications dans la BAO pour les joueurs concernés
* des notifications Discord côté serveur
 
Exemples :
 
* transfert initié
* transfert réussi
* transaction échouée
* rollback effectué
 
== Ce que cette fonctionnalité fait ==
 
* crée des transferts de crédits entre joueurs
* 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 ==


* Une transaction peut rester temporairement en attente selon la charge serveur
* ne garantit pas un transfert instantané
* Les statuts sont mis à jour automatiquement
* ne permet pas d’annuler soi-même une transaction côté joueur
* En cas de problème, un rollback peut être déclenché pour sécuriser les crédits
* ne traite pas les crédits hors serveur concerné
* ne contourne pas l’état de connexion des joueurs


== Notes ==
== Notes ==


* une connexion online est obligatoire
* une connexion online valide est obligatoire
* certaines transactions peuvent être en attente de traitement serveur
* l’interface traduit les statuts techniques en français pour l’affichage
* le statut évolue automatiquement (créée → débit → crédit → terminé)
* les dates sont affichées en heure locale
* certaines transactions peuvent rester temporairement en attente avant d’évoluer automatiquement

Version du 28 mars 2026 à 14:08

Transactions

Description

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

Elle permet notamment :

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

👉 Une transaction n’est pas toujours instantanée : elle peut rester en attente jusqu’à ce que les joueurs concernés soient connectés sur le serveur de jeu.

Accès

Menu JoueurTransactions

Vue globale


Écran des transactions joueur


L’écran est divisé en deux parties :

  • en haut : envoi de crédits
  • en bas : historique des transactions

Envoyer des crédits

Champs disponibles

  • Univers
 → serveur concerné par la transaction
  • Destinataire
 → joueur sélectionné dans la liste
  • SteamID
 → permet de saisir manuellement le SteamID d’un joueur si celui-ci n’apparaît pas dans la liste
  • Montant
 → nombre de crédits à transférer
  • Message
 → description facultative associée à la transaction

Envoi

Cliquez sur Envoyer pour créer la transaction.

✔️ Si tout est valide :

  • la demande est envoyée au serveur
  • un résumé s’affiche avec l’ID de transaction, les frais et le total débité
  • l’historique est automatiquement rechargé

⚠️ 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

Pour les transferts entre joueurs, des frais peuvent être appliqués.

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

  • pourcentage
  • minimum
  • maximum

👉 Les joueurs donateurs du mois sont exemptés de frais sur les transferts joueur à joueur.

Historique des transactions

La partie basse affiche votre historique personnel.

Elle contient :

  • les transactions que vous avez envoyées
  • 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}

Colonnes

  • ID : identifiant interne de la transaction
  • 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

Les lignes sont colorées automatiquement selon leur statut :

  • Vert → transaction terminée
  • Jaune → transaction en attente ou en cours de traitement
  • Rouge → transaction échouée ou annulée

Filtres

Plusieurs filtres sont disponibles :

  • Statut
 → par défaut : En cours
  • Type
 → par exemple :
 * transfert joueur
 * récompense vote
 * don admin
 * retrait admin
  • Sens
 → envoyé / reçu
  • Recherche
 → recherche par :
 * pseudo
 * description
 * GUID
 * ID

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

Actions disponibles

Actualiser

Recharge l’historique depuis le serveur.

Détails

Sélectionnez une transaction puis cliquez sur Détails ou double-cliquez sur la ligne.

La fenêtre de détail affiche notamment :

  • l’ID et le GUID
  • 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

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.

Fonctionnement

Les transactions de crédits sont créées dans la BAO, puis traitées côté serveur.

Pour les transferts entre joueurs :

  • la transaction est d’abord créée
  • 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.

Cycle de vie d’une transaction

Une transaction suit plusieurs statuts possibles.

Étapes normales

1. Créée

  * la transaction est enregistrée

2. Débit en attente

  * le système attend de pouvoir débiter le joueur source

3. Débitée

  * les crédits ont été retirés au joueur source

4. Crédit en attente

  * le système attend de pouvoir créditer le joueur cible

5. Terminée

  * les crédits ont bien été transférés

Cas particuliers

  • Échec
 * erreur définitive avant finalisation
  • Annulée
 * transaction annulée volontairement
  • Rollback en attente
 * le débit a réussi, mais le crédit final n’a pas pu aboutir
  • Rollback terminé
 * les crédits ont été restitués au joueur source

Schéma simplifié

Créée → Débit en attente → Débitée → Crédit en attente → Terminée

ou, en cas de problème après débit :

Débitée → Crédit en attente → Rollback en attente → Rollback terminé

Transactions en attente

Une transaction peut rester en attente dans plusieurs cas :

  • le joueur source n’est pas connecté
  • 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 interroge le serveur de jeu via l’API du mod Empyrion pour lire et modifier les crédits du joueur concerné.

Sécurité et robustesse

Le système met en place plusieurs protections :

  • verrou côté serveur pour éviter plusieurs transferts concurrents depuis le même joueur
  • logs détaillés d’audit
  • retries techniques
  • 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.

Notifications

Les transactions peuvent générer :

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

Exemples :

  • transfert initié
  • transfert réussi
  • transaction échouée
  • rollback effectué

Ce que cette fonctionnalité fait

  • crée des transferts de crédits entre joueurs
  • 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

  • ne garantit pas un transfert instantané
  • 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 valide est obligatoire
  • 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