Aller au contenu principal

Dépannage des paiements par smart contract

Ce guide vous aide à résoudre les problèmes courants lorsque vous acceptez des paiements non dépositaires via les smart contracts de Volet.com sur Ethereum, BNB Smart Chain et TRON.

Repérez votre problème ci-dessous et suivez les étapes recommandées. Les adresses des contrats, les paramètres et les définitions des erreurs figurent dans la Référence des smart contracts.

Problèmes de portefeuille et de réseau​

ProblèmeCause possibleSolution
Connexion du portefeuille refuséeLe client a refusé la demande ou le portefeuille est verrouilléDemandez au client de déverrouiller son portefeuille et de se reconnecter
MetaMask non détectéAucun portefeuille de navigateur compatible n’est installé ou disponibleInstallez MetaMask ou connectez-vous avec un portefeuille compatible WalletConnect
Mauvais réseau EVMLe portefeuille est connecté à un autre réseau que celui choisi lors du paiementDemandez un changement de réseau et vérifiez le chain ID
Échec de la connexion WalletConnectProject ID invalide, configuration incorrecte, ou portefeuille ou réseau non pris en chargeVérifiez la configuration du projet Reown et les réseaux pris en charge
TronLink non détectéL’extension n’est pas installée, activée ou déverrouilléeInstallez ou déverrouillez TronLink, puis actualisez la page
Mauvais réseau TRONLe portefeuille est connecté à un réseau de test ou à un réseau inattenduPassez sur TRON Mainnet et vérifiez le réseau actif

Vérifiez toujours à nouveau l’adresse du portefeuille et le réseau choisi avant de lancer un paiement, surtout après une connexion de portefeuille ou un changement de réseau.

Problèmes d’approbation USDT​

Les paiements en USDT peuvent nécessiter une transaction d’approbation avant que le contrat processeur puisse transférer les jetons.

ProblèmeCause possibleSolution
Transaction d’approbation refuséeLe client a refusé la demande dans son portefeuilleLaissez le client relancer l’approbation
Autorisation de dépense (allowance) insuffisanteLe processeur n’est pas autorisé à dépenser le montant requisVérifiez allowance() et demandez l’approbation du montant requis
Échec de l’approbation USDT sur EthereumUne autorisation non nulle ne peut pas être modifiée directement en un autre montant non nulApprouvez 0, attendez la confirmation, puis approuvez le montant requis
Solde USDT insuffisantLe client ne dispose pas d’assez de jetons pour le total du paiementComparez balanceOf() à previewPayment().totalPay
Approbation réussie mais paiement en attenteL’approbation est terminée, mais la transaction de paiement n’a pas été envoyée ou vérifiéeVérifiez l’autorisation actuelle, puis lancez ou vérifiez la transaction de paiement distincte

Important : une transaction approve() réussie n’est pas un paiement effectué. Seule la transaction transfer() du contrat processeur permet de vérifier le paiement de la commande.

Erreurs de transaction et de contrat​

Erreur ou problèmeCause possibleSolution
InvalidTotalAmountValidationLa value ou la callValue native ne correspond pas au total attendu du paiementAppelez de nouveau previewPayment() et envoyez le totalPay renvoyé
SellerIsBuyerLes adresses du portefeuille de l’acheteur et du marchand sont identiquesVérifiez que le portefeuille de réception du marchand diffère du portefeuille connecté de l’acheteur
SellerZeroAddressL’adresse de réception du marchand est l’adresse zéroConfigurez un portefeuille marchand valide
AmountIsZeroLe montant du paiement est nulValidez le montant de la commande avant d’envoyer la transaction
CommissionExceedsAmountLes frais de traitement ne peuvent pas être déduits du montant demandéVérifiez le montant de la commande et le paramétrage des frais
SellerNotWhitelistedLe processeur n’autorise pas le portefeuille de réception du marchandContactez Volet.com pour vérifier l’autorisation du portefeuille
EnforcedPauseLe traitement des paiements est suspendu dans le contratCessez d’envoyer des paiements via ce processeur et contactez Volet.com
Échec du transfert de jetonsSolde de jetons ou autorisation insuffisants, ou restrictions propres au jetonVérifiez le contrat du jeton, le solde, l’autorisation et le réseau choisi
Gas insuffisantLe client n’a pas assez d’ETH ou de BNB pour les frais de réseauDemandez au client de conserver un solde suffisant de la cryptomonnaie native
Ressources TRON insuffisantesLe client manque d’Energy, de Bandwidth ou de TRX disponiblesVérifiez les ressources nécessaires et les TRX disponibles
TRON OUT_OF_ENERGYL’exécution du contrat a épuisé l’Energy disponible ou la limite de frais configuréeEstimez la consommation de ressources et vérifiez le feeLimit de la transaction
TronGrid HTTP 429La limite de requêtes de l’API est dépasséeUtilisez une clé d’API côté serveur et relancez les requêtes avec un délai croissant

Les erreurs de contrat dépendent du processeur déployé. Consultez la Référence des smart contracts pour les définitions des erreurs.

Le paiement reste en attente​

Une commande peut rester en attente même après l’envoi d’une transaction par le client.

SituationPoints à vérifierAction recommandée
Hash de transaction renvoyé, mais aucun reçuLa transaction n’est peut-être pas encore incluse dans un blocContinuez à vérifier le même txid
Transaction exécutée mais non finaliséeLa finalité requise du réseau n’est pas encore atteinteAttendez la finalité avant de finaliser la commande
Approbation USDT confirmée, mais aucun paiementSeule la transaction d’approbation a été envoyéeVérifiez si une transaction de paiement distincte existe
Transaction réussie, mais commande toujours en attenteLes détails du paiement ne correspondent peut-être pas à la commande, ou la vérification côté backend n’est pas terminéeComparez à la commande le processeur, l’actif, le destinataire, le montant et l’appel au contrat
Transaction TRON visible mais non solidifiéeLa transaction n’apparaît pas encore dans les données du SolidityNodeContinuez à vérifier le reçu solidifié de la transaction
La requête RPC échoue ou expireLe fournisseur est temporairement indisponibleRelancez la vérification sans marquer la transaction comme échouée
Le client a fermé ou actualisé la page de paiementLa session du navigateur s’est terminée avant la confirmation du paiementPoursuivez la vérification via le processus de rapprochement du backend
Le paiement a expiré avant sa confirmationLa transaction peut être confirmée après la fermeture de la fenêtre de paiementContinuez à suivre les tentatives de paiement envoyées et rapprochez les paiements tardifs

Transaction réussie, mais commande non marquée comme payée​

Une transaction blockchain réussie ne signifie pas forcément que la bonne commande a été payée.

Votre backend doit confirmer que :

  1. La transaction a utilisé le contrat processeur attendu.
  2. L’actif et le portefeuille de réception du marchand correspondent à la commande.
  3. Le montant du paiement et le paramétrage des frais sont corrects.
  4. Le marchand a reçu les fonds attendus.
  5. La transaction a atteint la finalité requise sur la blockchain.
  6. Le hash de transaction n’a pas déjà été utilisé pour une autre commande.

Si un détail requis ne correspond pas, ne marquez pas la commande comme payée automatiquement. Laissez le paiement en examen pour enquête.

Le processus de vérification complet est décrit dans Vérification des paiements et suivi des commandes.

Contacter le support​

Si le problème persiste, contactez Volet.com en indiquant :

  • Le réseau blockchain et l’actif.
  • Le hash de la transaction de paiement (txid), s’il est disponible.
  • La date et l’heure approximatives de la transaction.
  • L’identifiant de commande du marchand.
  • L’adresse du contrat processeur.
  • Le message d’erreur ou une description du problème.

Vous pouvez joindre notre équipe via le support Volet.com.

Sécurité : ne communiquez jamais de phrases de récupération de portefeuille, de clés privées ni d’identifiants d’API secrets.