Comment utiliser Stripe – Installer Stripe en PHP pour vos paiements – Intégration Stripe PHP

Edit 2019 : Ce tutoriel fonctionne avec le version legacy de Stripe Checkout. La version legacy de Stripe Checkout n'est pas compatible avec la SCA.
Si quelqu'un comprend comment intégrer les webhook à Stripe Checkout pour bénéficier du SCA je suis preneur de vos conseils - vous pouvez me contacter ici :)

Avant d'installer Stripe en PHP sur votre serveur assurez-vous d'avoir la configuration suivante :

Une fois le certificat ssl activé sur votre site web :

Créer un fichier .htaccess à la racine de votre site avec le code suivant:

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.votredomaine.fr/$1 [R=301,L]

1) Télécharger la librairie PHP Stripe

Télécharger la dernière librairie PHP de Stripe puis dézipper là. https://github.com/stripe/stripe-php/releases

Installez cette librairie dézippé à la racine de votre serveur ou dans un dossier dédié via votre logiciel FTP (ex FileZilla).

2) Créer le formulaire de paiement Stripe

Maintenant il est venu le temps de créer le formulaire de paiement. Nous allons utiliser Checkout, un formulaire avec un code d'intégration en HTML développé par l'équipe de Stripe. Ce formulaire de checkout va s'occuper pour vous de la bonne validation du formulaire, s'assurer que les informations de paiements sont les bonnes et transmettre ses informations de manière sécurisés directement à Stripe.   

Vous pouvez voir un formulaire de paiement en action sur mon site https://www.erasmusofparis.com

<form action="la page qui procede au paiement.php" method="POST">
  <script
    src="https://checkout.stripe.com/checkout.js" class="stripe-button"
    data-key="pk_test_votre-clé-aip-stripe-test"
    data-amount="500"
    data-name="Erasmus of Paris"
    data-description="Discover France Guide"
    data-image="https://www.erasmusofparis.com/up/erasmus-of-paris.jpg"
    data-locale="auto"
    data-currency="eur"
    data-label="Click here to buy the Discover France Guide" >
  </script>
</form>

Plus d'info sur https://stripe.com/docs/checkout

Stripe label :

src + class : ne pas toucher
data-key : ta clé d'api Stripe
data-amount : le montant affiché sur le formulaire 500 = 5€ ; 1000 = 10€
data-name : le nom de ta marque
data-description : ton produit vendu
data-image : image qui illustre ta marque, ton produit..
data locale : laisser sur auto pour que Stripe traduise la langue du formulaire en fonction des paramètres du navigateur de l'utilisateur
data-currency : les lettres de référence de votre monnaie

Prenez bien conscience d'une chose sur les labels amount et description. Ces champs s'affichent uniquement sur la page de paiement. Ils ne communiquent pas avec Stripe. Quand un client complète le processus de paiement un champ caché va s'ajouter à votre formulaire appelé  stripeToken, c'est ce champ stripeToken qui va être soumis à votre serveur pour effectuer le paiement.

3) Procéder au paiement via votre serveur en PHP et le token Stripe

Dans la page paiement.php, on utilise le stripeToken soumis par la fonction POST du formulaire checkout pour ainsi débiter la carte :

<?php
  require_once('/path/to/stripe-php/init.php'); // Ne pas oublier cte ligne +modifier lien vers la bonne librairie

\Stripe\Stripe::setApiKey("sk_test_votre-clé-api-stripe-secrete-test");

  $token  = $_POST['stripeToken'];
  $email  = $_POST['stripeEmail'];

  $customer = \Stripe\Customer::create(array(
      'email' => $email,
      'source'  => $token
  ));

  $charge = \Stripe\Charge::create(array(
      'customer' => $customer->id,
      'amount'   => 500,
      'currency' => 'eur',
      'description' => 'Discover France Guide by Erasmus of Paris',
      'receipt_email' => $email  
  ));

  echo '<h1>Payment accepted!</h1>';
?>

Les labels :

Amount : assurez-vous que le montant rentré ici corresponde au montant présent sur le formulaire de paiement

'description' =>  L'intitulé qui sera affiché sur la ligne de débit de compte en banque du client

'receipt_email' => $email   (pour envoyer une confirmation de paiement)

Info: Le mail de confirmation du paiement est envoyé uniquement pour les paiements en mode réel !

Et voilà ! L'utilisation de Stipe en PHP sur votre site web ne pouvait être plus simple !

Pour me remercier de mon tuto sur comment configurer Stripe en PHP en français, vous pouvez faire un don en cliquant ici et/ou partager mon site web http://www.erasmusofparis.fr

Edit 2019 : Ce tutoriel fonctionne avec le version legacy de Stripe Checkout. La version legacy de Stripe Checkout n'est pas compatible avec la SCA.
Si quelqu'un comprend comment intégrer les webhook à Stripe Checkout pour bénéficier du SCA je suis preneur de vos conseils - vous pouvez me contacter ici :)

Parties, live show, good tips and so much more...

Hit the facebook like button to stay tunned about what's going on in Paris!