« 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 '''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'''
 
== 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 48 :


* '''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 :
Exemple réel :


* vous ne pouvez pas vous envoyer des crédits à vous-même
* Montant : 100
* le montant doit être strictement supérieur à 0
* Frais : 1000
* une connexion online valide est obligatoire
* Total débité : 1100
* le destinataire peut être choisi dans la liste ou saisi manuellement via son SteamID


== Frais de transaction ==
=== Contraintes ===


Pour les transferts entre joueurs, des frais peuvent être appliqués.
* impossible de s’envoyer des crédits à soi-même
 
* le montant doit être > 0
👉 Ces frais sont calculés côté serveur selon une configuration dynamique :
* un seul transfert en cours à la fois (côté serveur)
 
* 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 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 :
 
* 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 ===
=== Copier GUID ===
Permet de copier le GUID de la transaction sélectionnée.
Copie l’identifiant unique.
 
👉 Ce GUID peut être utile pour le support ou pour retrouver précisément une transaction.


== Fonctionnement ==
== Statuts des transactions ==


Les transactions de crédits sont créées dans la BAO, puis traitées côté serveur.
=== Cycle normal ===
 
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'''
1. '''Créée'''
  * la transaction est enregistrée
2. '''Débit en attente'''
2. '''Débit en attente'''
  * le système attend de pouvoir débiter le joueur source
3. '''Débitée'''
3. '''Débitée'''
  * les crédits ont été retirés au joueur source
4. '''Crédit en attente'''
4. '''Crédit en attente'''
  * le système attend de pouvoir créditer le joueur cible
5. '''Terminée'''
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.
=== Important ===


== Notifications ==
👉 Une transaction peut rester bloquée en :


Les transactions peuvent générer :
* '''Créée'''
* '''Débit en attente'''
* '''Crédit en attente'''


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


Exemples :
* le joueur source est hors ligne
* le joueur cible est hors ligne
* le serveur est indisponible


* transfert initié
=== Cas d’erreur ===
* transfert réussi
* transaction échouée
* rollback effectué


== Ce que cette fonctionnalité fait ==
* '''Échec''' → erreur technique
* '''Annulée''' → arrêt manuel
* '''Rollback''' → remboursement automatique après problème


* crée des transferts de crédits entre joueurs
== Fonctionnement réel ==
* 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 ==
* 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


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


* une connexion online valide est obligatoire
* une connexion online est obligatoire
* l’interface traduit les statuts techniques en français pour l’affichage
* les statuts évoluent automatiquement
* les dates sont affichées en heure locale
* les frais sont calculés côté serveur
* certaines transactions peuvent rester temporairement en attente avant d’évoluer automatiquement
* les transactions sont sécurisées (pas de double envoi possible)

Version du 28 mars 2026 à 14:12

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

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é.

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)