Passer au contenu

Comment accepter les paiements en crypto sur OpenCart

Un guide pratique pour accepter Bitcoin, USDT et TON dans un magasin OpenCart 2 ou 3 : comment fonctionne le module Payora gratuit, quel statut de commande doit signifier payé, et pourquoi seul le webhook signé doit jamais le définir.

Payora9 min de lectureEN · RU · UK · ES · DE · FR · IT · PL · PT · HI · ZH

Pour accepter les paiements en crypto sur OpenCart, vous avez besoin de trois choses : une extension de paiement dans votre boutique, une clé API d'une passerelle, et un webhook qui informe OpenCart que l'argent est effectivement arrivé. Avec Payora, cela se traduit par un module gratuit à intégrer pour OpenCart 2 et OpenCart 3 qui crée une facture pour le total de la commande, envoie l'acheteur vers un paiement hébergé où il choisit Bitcoin, USDT, TON ou une autre pièce, et change le statut de la commande en payé uniquement lorsqu'un rappel signé confirme le paiement sur la chaîne. Les pièces se déposent directement dans des portefeuilles que vous contrôlez, car Payora ne détient jamais que votre matériel de clé publique.

Pourquoi les boutiques OpenCart se tournent vers la crypto

OpenCart est généralement géré par des personnes qui possèdent leur infrastructure : leur propre hébergement, leur propre base de données, leur propre processus de paiement. La crypto convient à ce public pour trois raisons assez peu romantiques.

  • Des acheteurs internationaux qui ne peuvent pas vous payer autrement. Une carte émise dans un pays et un magasin enregistré dans un autre, c'est un coup de dés. USDT sur Tron ne se soucie pas de l'endroit où vous vivez tous les deux.
  • Pas de rétrofacturations. Un paiement sur la chaîne est confirmé et c'est fait. Personne ne l'annule 90 jours plus tard pour une réclamation de "marchandises non reçues", ce qui est la principale raison pour laquelle les vendeurs de biens numériques envisagent cela. Nous avons couvert cette dynamique plus en profondeur dans accepter des paiements sans compte marchand.
  • Aucun compte marchand.Pas d'appel de souscription, pas de réserve roulante, pas de minimum mensuel, pas d'email "votre catégorie est à haut risque" six semaines après.

Rien de tout cela ne fait du crypto un remplacement pour les cartes. Cela en fait une deuxième voie : gardez vos méthodes existantes exactement là où elles sont, et laissez le crypto attraper les commandes que vous perdiez auparavant.

Comment accepter les paiements en crypto sur OpenCart avec le module Payora

Le module est une extension de paiement OpenCart normale. Il est gratuit, nous le publions nous-mêmes avec le reste de nos modules CMS à intégrer, et le configurer en quatre étapes :

  1. Installez l'extension dans votre boutique OpenCart 2 ou OpenCart 3 et activez-le en tant que méthode de paiement.
  2. Collez votre clé API.Créez un compte gratuit sur Payora, générez une clé, et intégrez-la dans les paramètres du module.
  3. Définissez l'URL du webhook.Le module expose un point de rappel sur votre propre domaine. Dirigez votre projet Payora vers celui-ci afin que les factures confirmées rappellent dans votre boutique.
  4. Choisissez vos cryptomonnaies.Activez uniquement les actifs que vous souhaitez réellement recevoir : BTC, USDT sur Tron, TON, tout ce qui convient à vos acheteurs. Vous n'êtes pas obligé d'activer tous les 20+.

Il n'y a rien d'exotique en dessous. Le module utilise la même API REST en JSON simple et SDK PHP en un fichier qu'une intégration personnalisée utiliserait ; il l'intègre simplement dans l'interface de paiement d'OpenCart pour que vous n'ayez pas à le faire. Si vous gérez également une boutique WordPress, le Module WooCommerce fonctionne exactement sur les mêmes principes.

Une chose à comprendre avant d'installer : vos adresses de réception sont dérivées d'un xPub, une clé maître publique clé. Les clés privées ne touchent jamais le serveur, et les paiements sont signés hors ligne. Si quelqu'un possédait votre hébergement OpenCart demain, il pourrait vandaliser votre catalogue, mais il ne pourrait pas déplacer un satoshi de ce que vous aviez pris.

Ce que l'acheteur voit réellement

Du côté du consommateur, c'est court et ennuyeux, ce qui est l'objectif.

  1. Ils choisissent Payer avec de la crypto à la caisse et confirmez la commande. OpenCart crée la commande dans un état en attente.
  2. Ils atterrissent sur le caisse hébergée, qui montre le total en fiat, disons 120 EUR, et une liste de pièces.
  3. Ils en choisissent une. TON, par exemple. La page affiche un montant exact en TON, une adresse, un code QR et un compte à rebours.
  4. Ils paient depuis leur portefeuille. La page suit la transaction et attend la finalité de cette pièce.
  5. Payora envoie le webhook signé à votre boutique, le module marque la commande comme payée, et l'acheteur est redirigé vers votre page de succès.

Si vous voulez voir la caisse avant d'installer quoi que ce soit, la démo en direct est la vraie affaire.

La question du statut de la commande

Lorsque vous acceptez des paiements en crypto sur OpenCart, c'est ici que les intégrations deviennent floues, donc cela mérite sa propre section. OpenCart a une liste configurable de statuts de commande, et vous devez décider lequel signifie "l'argent est là".

Le mappage qui fonctionne en pratique :

Ce qui s'est passéCe que la commande devrait être
Acheteur envoyé au paiement, rien payé pour l'instantUn statut en attente / en attente de paiement
Paiement vu sur la chaîne, pas encore finalToujours en attente, ne pas exécuter
Webhook signé dit payéVotre statut de traitement / payé. C'est le déclencheur
La fenêtre de facturation a expiré, rien n'est arrivéExpiré ou échoué, ou laissez-le en attente et annulez manuellement

Choisissez le statut payé délibérément. S'il s'agit d'un statut qui libère un produit téléchargeable ou déclenche un e-mail automatique, il doit être celui que seul le webhook peut définir. Ne réutilisez pas un statut que votre personnel définit également manuellement pour les virements bancaires, sinon vous perdrez la capacité de les distinguer lors de votre audit.

Ne marquez jamais une commande comme payée lors de la redirection du navigateur

Lorsque l'acheteur revient sur votre page de succès, cette redirection est une demande d'un navigateur. Les navigateurs se ferment. Les connexions se perdent dans un train. Et une URL de succès peut être saisie manuellement par quelqu'un qui n'a jamais payé un centime. Si votre boutique marque les commandes comme payées sur l'URL de retour, vous avez créé un bouton de biens gratuits.

Le webhook signé est la source de vérité. C'est un POST serveur à serveur portant une signature HMAC-SHA256 sur la charge utile, un horodatage si ancien que les captures ne peuvent pas être rejouées, et une clé d'idempotence afin qu'une livraison réessayée ne remplisse pas la commande deux fois. Vérifiez la signature, vérifiez la fenêtre d'horodatage, dédupliquez sur la clé d'idempotence, et seulement alors déplacez le statut. La redirection existe pour montrer à l'acheteur une page conviviale, rien de plus. Si un acheteur ferme l'onglet au moment où il paie, le webhook arrive toujours et la commande se termine toujours.

Tarification lorsque le prix évolue

Vous ne tarifez pas votre catalogue en Bitcoin. Vous laissez OpenCart tel quel, 120 EUR reste 120 EUR, et la facture est créée en fiat. Au moment du paiement, Payora convertit en la monnaie choisie par l'acheteur et verrouille ce montant pour la fenêtre de facturation. Si le BTC bouge de 3 % pendant qu'ils sortent leur téléphone de leur poche, le montant cité reste le même.

Les sous-paiements et les surpaiements sont jugés par rapport à ce chiffre verrouillé plutôt qu'à un ticker en direct, ce qui rend la décision de paiement sans ambiguïté. Ce que Payora ne fait pas, et ce que aucun passerelle honnête ne fait, c'est vous protéger de ce que la monnaie vaudra demain. Si vous voulez une certitude en fiat, optez pour des stablecoins. USDT et USDC sont disponibles sur tous les réseaux qui les supportent, et pour la plupart des magasins OpenCart, USDT sur Tron est le choix pragmatique par défaut.

Les compromis honnêtes

Trois d'entre eux, et vous devriez connaître les trois avant d'accepter des paiements en crypto sur OpenCart en production.

  • Pas de rétrofacturations, cela fonctionne dans les deux sens.Personne ne peut récupérer un paiement de votre part, et vous ne pouvez pas en récupérer un non plus. Un remboursement est un paiement sortant manuel à l'adresse du client : une vraie transaction que vous signez, pas un bouton qui annule l'historique. Décidez de votre politique de remboursement avant votre première commande, pas pendant votre premier litige.
  • Les frais de réseau varient, beaucoup.L'expéditeur les paie, mais ils influencent toujours le comportement. Un frais de 2 USD en Bitcoin sur une commande de 15 USD est un paiement que votre acheteur abandonne. Activer un réseau bon marché est la solution ; discuter avec la physique ne l'est pas.
  • Une chaîne lente signifie un statut de paiement plus lent.La finalité sur Bitcoin est de quelques minutes, pas de millisecondes. Si vous vendez des biens numériques que les acheteurs s'attendent à recevoir instantanément, privilégiez les réseaux rapides et laissez le BTC être l'option pour ceux qui le souhaitent.

Concernant le coût : accepter est à 0 %. Les frais s'appliquent uniquement lorsque vous déplacez de l'argent — 1,5 % sur les paiements, transferts et retraits sur le plan Gratuit (0,75 % sur Pro, 0,5 % sur Business), plus les frais de réseau de la pièce (retrait minimum de 50 $) — plus les frais de réseau on-chain, que l'expéditeur paie toujours. Le détail complet est sur tarification.

Si vous gérez une boutique OpenCart et que vous avez discrètement refusé des acheteurs dont les cartes ne fonctionnent pas avec vous, c'est un travail d'après-midi.Créer un compte gratuit, installez le module, pointez le webhook vers votre boutique, et activez une pièce pour commencer.

Comments

Prêt à commencer ?

Créez un compte et émettez votre première facture en moins d’une heure.

Ce que cette page répond