Transaction

De Boite A Outils
Aller à la navigation Aller à la recherche

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