Bonjour à tous,

J'essaye d'intégrer un paiement stripe tout simple. J'ai donc parcouru la doc et j'ai placé mes deux jolis fichiers sur le serveur, que j'ai d'ailleurs copier/collé de la doc en ligne. J'ai bien mis mes deux clés (d'ailleurs Stripe l'avait déjà fait). Et là c'est le drame ... la connexion se fait bien (je vois le log dans mon dashboard), mais aucun paiement n'est effectué.
D'où ma question : "Je suis con ou quoi ?" :)

Mon Formulaire (j'ai masqué la vraie clé bien sûr) :

<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="utf-8">
</head>

<body>

<form action="payment.php" method="POST">
  <script
    src="https://checkout.stripe.com/checkout.js" class="stripe-button"
    data-key="pk_test_xxxxxxxxxxxxxxxxxxxxxxxxx"
    data-amount="999"
    data-name="Ma societe"
    data-description="Mon produit"
    data-image="https://stripe.com/img/documentation/checkout/marketplace.png"
    data-locale="auto"
    data-currency="eur">
  </script>
</form>

</body>
</html>

Et ce que j'ai placé dans "payment.php", qui vient de la doc bien sûr (idem la clé secrète est cachée, mais j'ai bien mis la bonne).

<?php
// Set your secret key: remember to change this to your live secret key in production
// See your keys here: https://dashboard.stripe.com/account/apikeys
\Stripe\Stripe::setApiKey("sk_test_xxxxxxxxxxxxxxxxxxxxxxxxx");

// Token is created using Checkout or Elements!
// Get the payment token ID submitted by the form:
$token = $_POST['stripeToken'];

$charge = \Stripe\Charge::create([
    'amount' => 999,
    'currency' => 'usd',
    'description' => 'Example charge',
    'source' => $token,
]);
?>

Si quelqu'un avez une petite idée, un espoir, une lueur même, se serait magnifique. J'ai eu beau cherché un peu partout depuis des heures et tester plein de choses différentes, rien ne va. Toujours cette satanée page blanche et un paiement (charge qui ne se fait pas).

Merci pour votre aide.

3 réponses


Bonjour.
Pour commencer, quelle version de la librairie as-tu installé via composer ?
Car si tu n'as précisé une branche/version, composer va télécharger une version qui retourne une erreur lors de l'utilisation de la classe Charge, du genre :

Cannot use Object name is reserved ...

Ensuite, tu ne devrais pas définir deux monnaies différentes entre le JavaScript et le PHP : eur et usd.

Bonjour Lartak,

D'abord merci pour ta réponse. ok pour la monnaie :)

Par contre, concernant composer, je ne savais pas qu'il fallait l'installer. Et je ne connais pas son fonctionnement à vrai dire.
Du coup dois-je le faire installer par mon hébergeur, ou je le fais moi-même ? Sachant que je n'ai pas de compétences UNIX/LINUX.

Merci de m'apporter tes lumières.

Cordialement

Si je comprends bien, tu utilises le code via un projet qui est en production avec les clefs de test, ce qui va forcément te poser des problèmes.
Il est largement conseillé d'utiliser Composer afin d'avoir un chargement des classes correct, sinon tu vas devoir faire beacoup d'inclusions manuelles des différentes classes nécessaires.
Si tu n'as pas téléchargé la librairie via Composer, est-ce que tu as téléchargé la release comme indiqué sur la documentation de l'API ?
Si oui, est-ce que tu inclus bien le fichier dans ton code via un include ou un require ?
Car si tu ne le fais pas, ton code PHP ne pourra pas trouver la librairie.

Du coup dois-je le faire installer par mon hébergeur, ou je le fais moi-même ? Sachant que je n'ai pas de compétences UNIX/LINUX.

Il y a un tutoriel sur le site concernant Composer, Tutoriel Vidéo PHP » Composer.