i am trying to make a donation page using stripe with a custom amount. the code works perfect with fixed amount, but when i change it to variable amount it return 0, please help i tried many ways but nothing work. this is a snippet of the code
checkout.html
<body>
<section>
<div class="panel">
<h3>Donate Now</h3>
<input type="number" id="amount" value="100"/>
</div>
<button type="button" id="checkout-button">Checkout</button>
</section>
</body>
<script type="text/javascript" charset="utf-8">
// Create an instance of the Stripe object with your publishable API key
var stripe = Stripe("pk_test_51J2BvHLTS6YsumlzTSoJwjdzJpMt5zUhcBcJo16SQnmOs1EJKLwW5CThE2qud0xMDZFq5q1b6ezNc29Q7Hc2nQaa00uAjNryX3");
var checkoutButton = document.getElementById("checkout-button");
checkoutButton.addEventListener("click", function () {
fetch("create-checkout-session.php", {
method: "POST",
headers: { 'Content-Type': 'application/json',},
body: JSON.stringify({amount: parseInt(parseInt(amount.value) * 100, 10),}),
})
.then(function (response) {
return response.json();
})
.then(function (session) {
return stripe.redirectToCheckout({ sessionId: session.id });
})
.then(function (result) {
if (result.error) {
alert(result.error.message);
}
})
.catch(function (error) {
console.error("Error:", error);
});
});
</script>
</html>
this is the php code:
create-checkout-session.php
<?php
include'stripe-php/init.php';
header('Content-Type: application/json; charset=UTF-8');
\Stripe\Stripe::setApiKey('sk_test_xxxxxxxxx');
$DOMAIN = 'http://localhost/hro';
$content = json_decode(file_get_contents('php://input'), true);
$amount = intval($content['amount']);
var_dump (file_get_contents('php://input'));
$session = \Stripe\Checkout\Session::create([
'payment_method_types' => ['card'],
'line_items' => [[
'price_data' => [
'currency' => 'usd',
'unit_amount' => $amount,
'product_data' => [
'name' => 'Your Donation Amount',
],
],
'quantity' => 1,
]],
'mode' => 'payment',
'success_url' => $DOMAIN . '/success.html',
'cancel_url' => $DOMAIN . '/cancel.html',
]);
echo json_encode(['id' => $session->id]);
source https://stackoverflow.com/questions/68913820/custom-donation-amount-in-stripe-php
Comments
Post a Comment