Bonjour à tous, imaginons que j'ai une option de paiement par Stripe, que dois je changer pour que ça se transforme en abonnement récurrent ? ( Comme sur Grafikart par exemple )
pagepourlancerlepaiement.php :
var stripe = Stripe("CléSTRIPE");
var checkoutButton = document.getElementById("checkout-button");
checkoutButton.addEventListener("click", function () {
fetch("pageverspaiement.php", {
method: "POST",
})
.then(function (response) {
return response.json();
})
.then(function (session) {
return stripe.redirectToCheckout({ sessionId: session.id });
})
.then(function (result) {
// If redirectToCheckout fails due to a browser or network
// error, you should display the localized error message to your
// customer using error.message.
if (result.error) {
alert(result.error.message);
}
})
.catch(function (error) {
console.error("Error:", error);
});
});
pageverspaiement.php :
<?php
session_start();
require 'vendor/autoload.php';
\Stripe\Stripe::setApiKey('cléStripe');
header('Content-Type: application/json');
$YOUR_DOMAIN = 'https://site.com';
$checkout_session = \Stripe\Checkout\Session::create([
'payment_method_types' => ['card', 'bancontact'],
'line_items' => [[
'price_data' => [
'currency' => 'eur',
'unit_amount' => 200,
'product_data' => [
'name' => 'Nom du package',
'images' => image,
],
],
'quantity' => 1,
]],
'mode' => 'payment',
'success_url' => $YOUR_DOMAIN . '/sucess.php',
'cancel_url' => $YOUR_DOMAIN . '/error.php',
]);
echo json_encode(['id' => $checkout_session->id]);
?>
Du coup, j'imagine que je dois aussi changer quelque chose dans la partie Javascript, car ton code ne fonctionne pas :/
Oui, je viens de regarder, j'ai une erreur 500 menant vers pageverspaiement.php `
Failed to load resource: the server responded with a status of 500 ()
Ca dit :
SyntaxError: The string did not match the expected pattern
Et ça mène vers la partie javascript qui affiche l'erreur ( console.log(error) ) etc
Quel string ?
Regarde ou le probleme se situe, et en fonction check la doc de stripe (si le probleme vient bien de là) pour voir ce qui est attendu.
Y a le numéro de ligne, mais ça renvoi vers :
.then(function (response) {
return response.json();
})
et
.catch(function (error) {
console.error("Error:", error);
});
c´est quand meme compliqué ><
Actuellement :
<?php
session_start();
require 'vendor/autoload.php';
\Stripe\Stripe::setApiKey('cléStripe');
header('Content-Type: application/json');
$YOUR_DOMAIN = 'https://site.com';
$checkout_session = \Stripe\Checkout\Session::create([
'payment_method_types' => ['card', 'bancontact'],
'line_items' => [[
'price_data' => [
'currency' => 'eur',
'unit_amount' => 200,
'product_data' => [
'name' => 'Nom du package',
'images' => image,
],
],
'quantity' => 1,
]],
'mode' => 'payment',
'success_url' => $YOUR_DOMAIN . '/sucess.php',
'cancel_url' => $YOUR_DOMAIN . '/error.php',
]);
echo json_encode(['id' => $checkout_session->id]);
?>
Avec ton code :
<?php
session_start();
require 'vendor/autoload.php';
\Stripe\Stripe::setApiKey('cléStripe');
header('Content-Type: application/json');
$YOUR_DOMAIN = 'https://site.com';
$checkout_session = \Stripe\Checkout\Session::create([
'payment_method_types' => ['card', 'bancontact'],
'line_items' => [[
'price_data' => [
'currency' => 'eur',
'product_data' => [
'name' => 'Premium'
],
'unit_amount' => '200',
'recurring' => [
'interval' => 'month',
'interval_count' => 1
]
],
'quantity' => 1
]],
'mode' => 'subscription',
]);
'success_url' => $YOUR_DOMAIN . '/sucess.php',
'cancel_url' => $YOUR_DOMAIN . '/error.php',
]);
echo json_encode(['id' => $checkout_session->id]);
?>
J'imagine une virgule au lieu du point virgule ?
$checkout_session = \Stripe\Checkout\Session::create([
'payment_method_types' => ['card', 'bancontact'],
'line_items' => [[
'price_data' => [
'currency' => 'eur',
'product_data' => [
'name' => 'Premium'
],
'unit_amount' => '200',
'recurring' => [
'interval' => 'month',
'interval_count' => 1
]
],
'quantity' => 1
]],
'mode' => 'subscription',
]),
'success_url' => $YOUR_DOMAIN . '/sucess.php',
'cancel_url' => $YOUR_DOMAIN . '/error.php',
])`
Non, je viens d'essayer
Qu'est ce que tu veux dire ?
J'ai trouvé la documentation, mais je suis noob. Genre je ne sais pas si ça correspond à ce que j'utilise ni rien?
https://stripe.com/docs/billing/subscriptions/fixed-price#collect-payment
Aussi celle la :
https://stripe.com/docs/billing/subscriptions/checkout#add-redirect
Oui, jai résolu le problème depuis et effectivement, c'était bien le bancontact qui posait problème !