Stripe est le meilleur choix par défaut pour la plupart des boutiques WooCommerce qui vendent seulement en ligne. Son extension officielle gère les cartes, Apple Pay, Google Pay et WooCommerce Subscriptions au même endroit. Ajoutez PayPal à côté quand beaucoup de vos acheteurs veulent payer avec leur compte PayPal. Ça rassure aussi ceux qui préfèrent ne pas taper un numéro de carte dans une boutique qu’ils viennent de découvrir. Choisissez Square si vous vendez aussi en personne, puisqu’il garde les produits et les stocks synchronisés entre votre comptoir et votre site. WooPayments, la passerelle de WooCommerce, repose sur Stripe et convient à ceux qui veulent les versements et les litiges directement dans WordPress. Peu importe votre choix, planifiez dès maintenant un éventuel changement, parce que les cartes enregistrées restent chez le fournisseur qui les a conservées.
Les passerelles côte à côte
Chaque option s’installe gratuitement, et chaque fournisseur facture par transaction. Les frais changent selon le pays, le type de carte et le volume, alors comparez-les sur la page de tarifs de chaque fournisseur. Les faits ci-dessous ont été vérifiés le 14 octobre 2026 sur la page WordPress.org de chaque extension et dans la documentation de WooCommerce. Versions vérifiées : WooCommerce Stripe Payment Gateway 11.0.1, WooCommerce PayPal Payments 4.1.3, WooCommerce Square 5.5.1 et WooPayments 11.2.0.
| Critère | Stripe (extension officielle) | WooPayments | PayPal Payments | Square |
|---|---|---|---|---|
| Avec qui vous signez le compte | Stripe, directement | Stripe, par un compte que WooPayments crée pour vous (exige un compte WordPress.com) | PayPal | Square |
| Marchands au Canada | Oui | Oui | Oui | Oui |
| Bloc de validation de commande | Pris en charge | Pris en charge | Décrit comme expérimental dans la FAQ de l’extension | Pris en charge |
| Apple Pay et Google Pay | Inclus | Inclus comme boutons express | Offerts dans les pays admissibles | Inclus; à tester sur les produits d’abonnement |
| Solde PayPal et Pay Later | Non | Non | Oui, Pay Later dans les pays admissibles | Non |
| WooCommerce Subscriptions | Pris en charge | Pris en charge | Pris en charge, le coffre-fort exige l’approbation du compte | Pris en charge |
| Cartes enregistrées | Oui | Oui | Oui, par le coffre-fort PayPal | Oui |
| Ventes en personne | Lecteur de cartes Stripe ou Tap to Pay | Tap to Pay et lecteurs de cartes par l’application mobile WooCommerce | Pas dans l’extension | Square POS, avec synchronisation des produits et des stocks |
| Litiges traités dans | Tableau de bord Stripe | Administration WordPress | Compte PayPal | Tableau de bord Square |
| Remboursement depuis la commande WooCommerce | Oui | Oui | Oui | Oui |
Un portefeuille express est un bouton comme Apple Pay qui remplit la carte et l’adresse d’un seul geste. Un litige (aussi appelé rétrofacturation) survient quand un client demande à sa banque d’annuler un paiement; vous téléversez alors la preuve que la commande était réelle.
Les quatre extensions affichent des champs de carte hébergés par le fournisseur à l’intérieur de votre page de paiement. Le numéro de carte passe donc du navigateur du client au fournisseur, sans jamais toucher votre serveur. Stripe appelle sa version Elements, et la page de l’extension Square la dit conforme au niveau SAQ A. Le SAQ A est le plus court des questionnaires d’autoévaluation PCI DSS, le formulaire annuel que les réseaux de cartes attendent des boutiques qui confient le traitement des cartes à un tiers. Les champs hébergés réduisent votre périmètre PCI (la partie de votre installation que les règles de sécurité des cartes couvrent), mais ils ne le font pas disparaître. Votre fournisseur vous indique quel questionnaire s’applique, et il s’attend quand même à ce que la page de paiement reste exempte de scripts injectés.
Stripe et WooPayments
Choisissez Stripe quand la boutique vend en ligne et que vous voulez un seul fournisseur pour les cartes, les portefeuilles et les abonnements. Les marchands canadiens peuvent l’utiliser et recevoir leurs versements en dollars canadiens dans un compte bancaire canadien. La page de l’extension mentionne aussi les paiements en personne avec un lecteur de cartes Stripe ou Tap to Pay sur un téléphone. Le mode test fonctionne avec son propre jeu de clés d’API, ce qui vous permet de répéter un paiement complet sans faire bouger d’argent.
Stripe confirme la plupart des paiements par carte pendant que le client est encore sur la page. Certains événements n’arrivent à WooCommerce que plus tard, par un webhook, c’est-à-dire une requête que les serveurs de Stripe envoient à une adresse fixe de votre site. C’est le cas des modes de paiement différés, des remboursements lancés dans le tableau de bord Stripe et des litiges. Si votre pare-feu ou une extension de sécurité bloque cette adresse, ces événements n’arrivent jamais, et des commandes peuvent rester « En attente de paiement » même si le client a payé. Cette panne et sa solution sont expliquées dans les commandes bloquées « En attente de paiement ».
WooPayments utilise Stripe en coulisse, mais le compte est un compte que WooPayments crée pour vous. L’inscription exige un compte WordPress.com gratuit, qui relie votre boutique au service. Choisissez-le si vous voulez les versements, les remboursements et les réponses aux litiges sur un seul écran dans WordPress, ou si vous prévoyez accepter des cartes en personne avec l’application mobile WooCommerce. Choisissez l’extension Stripe si vous avez déjà un compte Stripe, ou si d’autres outils, comme la comptabilité ou la facturation, doivent lire ce même compte. WooPayments ne peut pas se connecter à un compte Stripe que vous avez déjà, alors ce sont deux comptes distincts et les cartes enregistrées ne passent pas de l’un à l’autre.
PayPal Payments
Choisissez PayPal Payments quand une bonne part de vos acheteurs demandent PayPal, ou quand vous vendez à des clients qui ne paient qu’avec un compte en qui ils ont déjà confiance. L’extension ajoute le bouton PayPal, Pay Later dans les pays admissibles, et ses propres champs de carte. Venmo n’est offert qu’aux clients des États-Unis.
PayPal fonctionne souvent à côté de Stripe au lieu de le remplacer. Son bouton à ses couleurs se distingue du formulaire de carte, alors les clients reconnaissent facilement les deux options. Deux détails méritent une vérification avant de vous y fier. La FAQ de l’extension décrit encore sa prise en charge des blocs Panier et Validation de commande comme expérimentale, alors testez le bloc avec votre thème avant le lancement. Pour les abonnements, les modes de paiement sont enregistrés dans le coffre-fort PayPal, qui conserve le mode de paiement de l’acheteur pour les débits futurs. PayPal doit d’abord approuver cette fonction sur votre compte. Si le bouton PayPal cesse de s’afficher, les modes de paiement absents de la page de paiement passe en revue les causes habituelles.
Square
Choisissez Square si vous vendez aussi à un comptoir, dans un marché ou dans une boutique éphémère. L’extension synchronise les noms de produits, les prix, les stocks, les catégories et les images entre WooCommerce et Square POS. Dans ses réglages de synchronisation, vous choisissez quel côté fait foi. La documentation de l’extension recommande Square si vous vendez à plusieurs endroits, et WooCommerce si vous vendez surtout en ligne. Quand c’est Square, une modification du stock faite dans WooCommerce peut être écrasée à la synchronisation suivante, alors le personnel devrait modifier l’inventaire dans Square seulement.
Square vend et accepte aussi les cartes-cadeaux Square en ligne. Trois limites comptent. Les cartes-cadeaux et Cash App Pay ne peuvent pas payer les produits d’abonnement, puisque ceux-ci exigent une carte enregistrée pour les débits futurs. Cash App Pay n’est offert qu’aux États-Unis. Des marchands ont aussi signalé que les boutons Apple Pay et Google Pay ne s’affichent pas pour les produits d’abonnement, alors testez-le sur votre boutique avant de compter dessus. Si vous vendez seulement en ligne, Square apporte peu de plus que Stripe, et sa synchronisation des stocks devient une pièce de plus à surveiller.
Qui devrait choisir quoi
- Stripe si vous vendez seulement en ligne, gérez des abonnements ou des adhésions, ou utilisez déjà Stripe pour d’autres factures.
- WooPayments si vous préférez gérer les versements et les litiges dans WordPress, et que vous n’avez pas déjà un compte Stripe dont d’autres outils dépendent.
- PayPal Payments, ajouté à côté de Stripe ou de WooPayments, si vos clients demandent PayPal ou si vous vendez à des acheteurs de première fois dans plusieurs pays.
- Square si un magasin physique ou un kiosque partage son stock avec le site.
- Aucun changement si votre passerelle actuelle fonctionne et que personne ne se plaint. Un changement comporte un vrai risque pour une boutique d’abonnements, et le gain est souvent mince.
Comment un changement se passe vraiment
Un changement de passerelle est en fait une période où deux passerelles fonctionnent côte à côte. Les nouvelles commandes vont à la nouvelle. L’ancienne continue de servir pour tout ce qui touche les commandes qu’elle a déjà prises. Les renouvellements des abonnements existants débitent le jeton de carte que l’ancien fournisseur détient. Un jeton est le code de remplacement qu’un fournisseur vous remet au lieu du numéro de carte, et seul ce fournisseur peut le débiter. Les remboursements des anciennes commandes passent par l’ancienne extension, et les litiges qui les touchent arrivent encore comme webhooks à l’adresse de l’ancienne extension.
Les jetons ne se déplacent pas tout seuls. Stripe, par exemple, accepte l’importation de données de cartes venant d’un autre processeur par une demande de migration officielle, et l’ancien processeur envoie les données directement. Selon la documentation de Stripe, l’ancien processeur peut prendre de quelques jours à plusieurs semaines pour les transmettre. Ensuite, le mode de paiement enregistré de chaque abonnement doit être mis à jour avec les nouveaux identifiants. Pour la plupart des boutiques, le chemin le plus simple est de laisser l’ancienne passerelle active pour les renouvellements. Demandez aux abonnés de mettre leur carte à jour dans la page Mon compte, ce qui l’enregistre auprès de la nouvelle passerelle.
Ajouter ou changer de passerelle
Les commandes ci-dessous utilisent WP-CLI, la commande wp qui exécute des tâches WordPress depuis le terminal. Les commandes wp wc agissent au nom d’un utilisateur WooCommerce, d’où l’option --user=1. Mettez l’identifiant de n’importe quel administrateur. Les requêtes SQL supposent le préfixe de tables par défaut wp_; wp config get table_prefix affiche le vôtre. Faites d’abord une répétition sur une copie de préproduction, avec toutes les passerelles en mode test.
1. Notez quelles passerelles sont actives aujourd’hui.
wp wc payment_gateway list --user=1 --fields=id,enabled --format=json
Exemple de sortie :
[{"id":"bacs","enabled":false},{"id":"cheque","enabled":false},{"id":"cod","enabled":false},{"id":"stripe","enabled":true}]
Les identifiants les plus courants sont stripe, woocommerce_payments, ppcp-gateway pour PayPal et square_credit_card pour Square. Gardez cette sortie, puisqu’elle documente votre point de départ.
2. Comptez ce qui dépend de l’ancienne passerelle. Les cartes enregistrées sont dans la table wp_woocommerce_payment_tokens, marquées avec la passerelle qui les a créées :
wp db query "SELECT gateway_id, COUNT(*) FROM wp_woocommerce_payment_tokens GROUP BY gateway_id"
Exemple de sortie :
+------------+----------+
| gateway_id | COUNT(*) |
+------------+----------+
| stripe | 1287 |
+------------+----------+
Si vous utilisez WooCommerce Subscriptions, comptez aussi les abonnements actifs par passerelle. Vérifiez d’abord si la boutique utilise HPOS (High-Performance Order Storage, les tables de commandes plus récentes) :
wp option get woocommerce_custom_orders_table_enabled
Exemple de sortie :
yes
Avec yes, les abonnements sont dans wp_wc_orders :
wp db query "SELECT payment_method, COUNT(*) FROM wp_wc_orders WHERE type = 'shop_subscription' AND status = 'wc-active' GROUP BY payment_method"
Exemple de sortie :
+----------------+----------+
| payment_method | COUNT(*) |
+----------------+----------+
| stripe | 412 |
+----------------+----------+
Avec no, les mêmes données sont dans wp_posts et wp_postmeta, sous la clé _payment_method. Tout nombre plus grand que zéro veut dire que l’ancienne passerelle doit rester active après le changement.
3. Installez la nouvelle extension et connectez-la en mode test. Chaque extension a un écran d’accueil sous WooCommerce, Réglages, Paiements. Terminez-le d’abord avec les clés de bac à sable ou de test du fournisseur. Vérifiez ensuite que le fournisseur affiche un webhook qui pointe vers votre site, dans les réglages de l’extension ou dans son tableau de bord, avant d’aller plus loin.
4. Passez une commande de test et lisez son statut. Payez avec la carte de test du fournisseur ou un compte acheteur de bac à sable. Vérifiez ensuite la commande :
wp wc shop_order get 48213 --user=1 --fields=id,status,payment_method,transaction_id
Exemple de sortie :
+----------------+---------------------+
| Field | Value |
+----------------+---------------------+
| id | 48213 |
| status | processing |
| payment_method | ppcp-gateway |
| transaction_id | 7KX40912MB3385021 |
+----------------+---------------------+
processing avec un identifiant de transaction veut dire que le paiement s’est rendu à WooCommerce. pending veut dire que la confirmation n’est pas arrivée, ce qui est presque toujours un webhook bloqué. Remboursez cette commande de test depuis l’écran de la commande WooCommerce, puis confirmez que le remboursement apparaît dans le tableau de bord du fournisseur.
5. Passez en production et réglez l’ordre. Mettez les clés de production dans la nouvelle passerelle, puis glissez-la en haut de la liste sous WooCommerce, Réglages, Paiements. Laissez l’ancienne extension active et sa passerelle activée si l’étape 2 a trouvé des cartes enregistrées ou des abonnements actifs. Elle s’affiche encore au paiement, alors placez-la sous la nouvelle et donnez-lui un titre clair, comme « Carte enregistrée ».
6. Désactivez l’ancienne passerelle seulement quand plus rien n’en dépend. Relancez les requêtes de l’étape 2 chaque mois. Quand il ne reste aucun abonnement actif sur l’ancienne passerelle et que le délai de litige de ses dernières commandes est passé, vous pouvez la désactiver.
Vérifier que tout fonctionne
Une journée après la mise en production, listez les commandes récentes qui attendent encore un paiement :
wp wc shop_order list --user=1 --status=pending --fields=id,date_created,payment_method --format=table
Exemple de sortie :
+-------+---------------------+----------------+
| id | date_created | payment_method |
+-------+---------------------+----------------+
| 48390 | 2026-10-15T09:41:27 | ppcp-gateway |
+-------+---------------------+----------------+
Quelques paniers abandonnés, c’est normal. Plusieurs lignes d’une même passerelle, qui correspondent chacune à un paiement réussi dans le tableau de bord du fournisseur, veulent dire que ses webhooks n’atteignent pas le site. Surveillez ensuite la première date de renouvellement dans l’écran des abonnements, et confirmez que ces renouvellements passent encore par l’ancienne passerelle.
Dépannage
Les renouvellements échouent tout de suite après le changement. L’ancienne passerelle a été désactivée ou ses clés d’API ont été retirées, alors plus rien ne peut débiter les jetons enregistrés. Réactivez-la avec les mêmes clés. Ouvrez ensuite chaque commande de renouvellement échouée et lancez l’action de commande Retry Renewal Payment (nouvelle tentative de paiement du renouvellement).
Des commandes restent « En attente de paiement » même si le client a payé. Le webhook du fournisseur n’arrive pas à joindre votre site. Souvent, un pare-feu, une règle Cloudflare ou une extension de sécurité le bloque. Consultez le journal de livraison dans le tableau de bord du fournisseur, puis suivez les commandes bloquées « En attente de paiement ».
La nouvelle passerelle n’apparaît pas au paiement. En général, c’est une configuration initiale inachevée, une devise que le compte refuse, ou un bloc de validation que l’extension ne gère pas complètement. Comparez la page de paiement par code court avec celle en bloc pour cerner le problème.
Les stocks Square se désynchronisent. Le stock a été modifié du côté qui ne fait pas foi, ou une tâche de synchronisation a échoué. Vérifiez WooCommerce, État, Actions planifiées pour repérer les actions échouées qui mentionnent Square, et modifiez le stock seulement du côté qui fait foi.
Quand cette approche n’est pas la bonne
Ne changez pas de passerelle pour régler un problème de refus sans vérifier d’où viennent les refus. Le test de cartes, quand des robots essaient des numéros de cartes volés sur votre page de paiement, cause des vagues de refus chez n’importe quel fournisseur. Une nouvelle passerelle ne l’arrêtera pas, et les fournisseurs peuvent fermer les comptes qui en subissent beaucoup.
Ne choisissez pas seulement selon les frais par transaction. Le délai des versements, le traitement des litiges et l’intégration de l’extension à votre page de paiement coûtent plus en temps de personnel qu’une petite différence de frais. Consultez la page de tarifs actuelle de chaque fournisseur pour les chiffres.
Pour une facturation complexe, comme des forfaits à l’usage ou la facturation de comptes d’entreprise, comparez aussi avec les outils de facturation du fournisseur lui-même. Une passerelle WooCommerce est conçue pour le paiement en ligne, pas pour les comptes clients.
Pour les écrans de configuration de chaque extension, consultez la documentation WooCommerce Stripe et la documentation PayPal Payments.
Un WordPress qui rapporte vraiment mérite un opérateur — Stack Harbor opère cette pile sous WordPress Entreprise ; réservez une consultation d’infrastructure.