Module de Paiement Stripe

Stripe est un prestataire de paiement externe https://stripe.com/fr qui propose une API moderne et une interface de paiement extrêmement conviviale et efficace.

Ce module permet les paiements à l’acte et les paiement récurrents.

Configuration

La configuration de ce module de paiement du plugin Bank se fait dans le menu Configuration > Paiements en ligne.

  • Live Secret Key : Clé secrète utilisée quand vous êtes en mode production ;
  • Live Publishable Key : Clé publique utilisée quand vous êtes en mode production ;
  • Mode Test : cochez la case pendant la phase de test de votre boutique, pour vérifier son bon fonctionnement avec des CB ou un SEPA factices (aucun paiement n’est réalisé dans le mode test). Vous devez aussi être en mode test dans l’interface Stripe ;
  • TEST Secret Key : Clé secrète utilisée quand vous êtes en mode test
  • TEST Publishable Key : Clé publique utilisée quand vous êtes en mode test
  • Webhook Endpoint : cette URL doit être renseignée dans l’interface d’administration de Stripe (https://dashboard.stripe.com/account/webhooks) si vous utilisez les paiement récurrent
    Attention : l’URL contient un identifiant qui dépend de l’informations ID, renseignez la bien avant de copier cette URL dans l’interface d’administration de Stripe.

Pour des numéros de cartes de crédit en mode “test” voir https://stripe.com/docs/testing#cards

updated on 6 July 2018

Discussion

9 discussions

  • 7

    Bonjour,

    Je viens de recevoir un email de stripe à propos d’une nouvelle API, est-ce que cela va impacter ce module ?

    Bonjour,

    Le 14 septembre 2019, une nouvelle directive européenne sur l’authentification forte du client, également appelée Strong Customer Authentication (ou SCA), imposera l’authentification à deux facteurs pour de nombreux paiements en ligne en Europe. Les paiements concernés qui ne seront pas authentifiés seront refusés par les banques de vos clients.

    Afin de vous aider à vous préparer à la réglementation SCA, nous avons lancé une nouvelle API de paiement et des produits prêts à l’emploi intégrant la conformité à la SCA. Pour éviter le refus de nombreux paiements européens et vous préparer à la nouvelle législation, vous devrez modifier vos flux de paiement et votre intégration Stripe d’ici le 14 septembre 2019. Pour en savoir plus sur la SCA et les modifications nécessaires, consultez notre documentation.

    En vous remerciant,
    Jul

    • Ah je n’avais pas encore eu l’info, j’ai du rater le mail.
      Il y aura surement une mise à jour du plugin à venir pour intégrer ces modifications, en effet :)

    • Je confirme donc que l’intégration de Stripe est impactée par la nouvelle réglementation 3DSv2 qui entre en vigueur en septembre. La nouvelle version est en test et sera bientôt distribuée en mise à jour en v4 du plugin. Par contre elle ne prendra plus en compte les paiements récurrents avec Stripe, car l’intégration a beaucoup changé et je n’ai pas de site utilisateur sous la main pour valider (mais je ne pense pas que qui que ce soit l’utilisait en pratique)

    • Bonjour, j’ai un site qui utilise le paiement récurrent avec Stripe. Une idée des parties du plugin à développer pour qu’il puisse continuer à fonctionner ?

    • @Yohooo Ah ben ça marchait donc ?
      Parce que j’avais développé la feature pour un client, mais ça jamais venu en prod à ma connaissance et j’avais jamais pu tester/debug en prod. Ni entendu parler d’aucun bug/feedback sur le sujet.

      Donc j’ai supposé que personne ne l’utilisait et j’ai pas eu de scrupule à la mettre de côté vu que la nouvelle API suppose pas mal de remise à plat. Il faut réimplémenter les nouvelles API de Stripe, mais ça change pas mal de logique et c’est donc non trivial. J’ai vraiment regardé qu’en diagonal juste pour voir que ça cassait beaucoup de choses et que l’urgence était de mettre à jour le paiement unique avec la nouvelle API

    • ça ne marchait pas par défaut. J’ai dû bricoler des choses sans tout comprendre du fonctionnement du plugin.

      J’ai donc créé ma propre fonction abos_decrire_echeance (qui s’occupe aussi de la préparer) pour qu’elle puisse fonctionner avec Stripe.

      À relire mon code, il semble qu’il manquait une variable ’product’ dans $desc_plan correspondant à l’identifiant du produit.

      Pour ne pas avoir à interroger l’api, je m’étais arrangé pour créer un id_product manuellement dans stripe, puis d’intégrer directement son identifiant la passant une variable dans mes_fonctions.php.

      ... du bricolage, donc.

      Si quelqu’un est partant pour m’aider à remettre à plat tout ça, je veux bien soulever le capot.

    • @Cerdic Je viens de t’envoyer un dev permettant de rendre compatible le plugin Bank, les abonnements Stripe et la réglementation SCA.

      N’hésite pas à me dire ce que tu en penses.

    Reply to this message

  • Hello,

    Mon besoin est de faire payer une somme forfaitaire à des internautes non connectés. Est-ce possible ?

    Avec Stripe en mode test, j’utilise le formulaire Payer ainsi :

    <BOUCLE_payer(CANDIDATS){id_candidat}{tout}>
    <h2>Réglement des droits d'inscription</h2>
    <div>MONTANT À RÉGLER : <b>60 €</b></div>
    #FORMULAIRE_PAYER_ACTE{60,
    	#ARRAY{
    		auteur_id, #ID_CANDIDAT,
    		auteur, #EMAIL
    	}
    }
    </BOUCLE_payer>

    Tout marche bien en mode connecté (moi, en tant que Webmaster), mais en mode non connecté cela ne va pas jusqu’au bout.

    J’arrive sur la page

    Annulation
    L’opération a été annulée. Aucun règlement n’a été réalisé.

    Si j’active le mode debugging, j’ai la notice suivante :

    Undefined index: charge in /plugins/auto/bank/presta/stripe/call/response.php on line 40.

    …et dans le fichier stripe_test.log, j’ai l’erreur

    Fichier : plugins/auto/bank/presta/stripe/call/response.php
    Ligne : 41
    Fonction : presta_stripe_call_response_dist()
    call_response : token/charge invalide

    Testé avec SPIP 3.2.4 avec Bank 3.6.7.

    Reply to this message

  • 1

    Bonjour,
    Déjà, merci pour ce plugin (et les autres) qui marchent très bien.
    Je l’utilise pour permettre à des visiteurs de réserver des places pour des événements (via reservation_bank), avec un paiement via stripe. Cela fonctionne pour le paiement à l’acte

    J’aurais par contre voulu proposer des paiement en plusieurs fois :
    Du genre pouvoir payer, par CB et via Stripe :
    -  le total (ça, je sais faire et c’est déjà implanté)
    -  En trois fois (débit une fois par mois)
    -  En six fois (débit une fois par mois)

    J’ai essayé avec un formulaire d’abonnement d’exemple, :

      [(#FORMULAIRE_PAYER_ABONNEMENT{#PRIX*,
                           #ARRAY{
                                   montant_ht,PRIX_HT*,
                                   id_commande,#ID_COMMANDE,
                                   id_auteur,#ID_AUTEUR,
                           }
                   })]

    Où j’ai mis les variables (prix, prix_ht, id_commande, id_auteur) en dur.
    En Bo, j’ai bien renseigné les api key/secret key, en mode test, ainsi que le webhook, dont j’ai mis l’adresse dans le dashboard de Stripe.

    Quand je teste, la transaction s’enregistre bien en base, mais j’arrive sur bank_retour_echec (d’ailleurs avec un &type=acte).
    Le champ erreur de la base et le log me mette sur la voie et donne ce message :
    transaction 525 refusee ou annulee pour : sub_failed (Erreur creation subscription (plan or customer missing)

    Visiblement, il ne trouve pas le “plan” de paiement (d’un autre coté, je n’ai pas trouvé comment lui en transmettre un.. il m’avait semblé qu’il le créait à la volée) ou le “customer” (étrange, car les paiement à l’acte marche).

    Si quelqu’un avait une idée pour implanter le paiement en plusieurs fois via Stripe, je suis preneur (même si apparement Stripe est pas vraiment conçut pour).

    • Bonjour Gaël,

      Je rencontre aujourd’hui le même problme.

      As-tu trouvé la raison de l’erreur que tu décris ?

      Cordialement,

      Laurent

    Reply to this message

  • Bonjour,

    Je fais des essais avec stripe et je n’arrive pas à faire affiche le pop up stripe, j’au une erreur StripeCheckout is not defined

    Une idée de ce qui cloche?

    Reply to this message

  • 1

    Bonjour,

    Quel est le niveau d’accessibilité de cette solution ?

    Reply to this message

  • 3

    Bonjour,

    J’ai essayé avec Paiement avec formidable, puis directement avec

    [(#FORMULAIRE_PAYER_ACTE{10,
    		      #ARRAY{
    			      montant_ht,8,
    			      id_auteur,#ID_AUTEUR,
    		      }
    })]

    Et j’ai systématiquement :

    Annulation
    L’opération a été annulée. Aucun règlement n’a été réalisé.

    Stripe est en mode Test, la config dans Bank pour Stripe aussi.

    Et du côté de Stripe, quand je teste les webhook, il envoie du json, mais la réponse est systématiquement vide.

    Une idée de vers quoi chercher ?

    • Je teste avec un autre serveur, et là, j’ai une popup de stripe (très joli !)

      Donc, ça doit être le vieux serveur avec un TLS pas assez récent.

    • Et bien, ça n’était pas TLS mais le nom du site dans l’identité du site :
      Rencontres Francophones d'Allergologie moléculaire <br /><br />Paris <strong>10 & 11 novembre 2018<strong>

      En modifiant le plugin bank ainsi dans presta/stripe/call/request.php
      ligne 93 en dessous de l’autre include :

      1. include_spip('inc/filtres'); // supprimer_tags

      Ligne 113 :

      1. $contexte['name'] = textebrut(supprimer_tags($GLOBALS['meta']['nom_site']));

      Ça marche même avec du html dans le nom du site

    Reply to this message

  • 1

    bonjour

    lors d’un essai avec stripe, j’obtiens l’erreur suivante

    Aucun règlement n’a été réalisé. (Transaction Ref. #7) - Stripe no longer supports API requests made with TLS 1.0. Please initiate HTTPS connections with TLS 1.2 or later. You can learn more about this at https://stripe.com/blog/upgrading-tls.

    Mais je ne vois pas où modifier dans banq/stripe le choix de TLS...

    merci d’avance...

    pam

    • Je me réponds, ca peut être utile à quelqu’un...

      En fait c’est le serveur Web qui doit savoir utiliser TLS, que je ne connaissais pas, mais qui est le successeur de SSL, protocole de sécurisation entre serveurs web, qui fait qu’on utilise un https...

      donc ce n’est pas le plugin qui pose problème...

      Chez OVH, pour être compatible TLS 1.2, il faut choisir une version stable et récente de PHP dans sa configuration...

      pam

    Reply to this message

  • Ok. Merci Cerdic

    Reply to this message

  • 1

    Le module Stripe n’est pas présent dans Bank V3.2.14.
    Est-il prévu une mise à jour ?

    Encore merci pour ce super plugin.

    Reply to this message

Comment on this article

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom