Ahoj,
řeším problém ohledně automatického provedení scriptu. Dole je kodik, kde mám dvě hlavní čísti. Button, na který když kliknu, načítá si data ze "stripe_charge", vygeneruje si sessionId a poté přesměrovovává na platební bránu stripe.com (externí adresa). Problém je, že na ten button musím kliknout, rád bych docílil toho, aby kliknutí na ten button došlo automaticky, plánuji to celé schovat, protože částku a další údaje si člověk vyplňuje na předešlé stránce, musel by tudíž 2x klikat a to nechci. Vím, proč to neudělám už tam, v předešlém kroku, ale já s .js neumím a když jsem se o to pokoušel, nikdy mi nesedělo sessionId se stripe API...
Zkoušel jsem třeba toto:
window.onload = function(){
document.getElementById('payButton').click();
}
ale nefungovalo mi to. Zkoušel jsem spousty jiných variant, prostě nic.
Dokážete mi tu napsat něco, moc prosím, co bude fungovat? Děkuji moc.
<!DOCTYPE html>
<html lang="cs">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Title</title>
<script src="https://js.stripe.com/v3/"></script>
<link rel="shortcut icon" href="assets/images/logo/favicon.png" type="image/x-icon">
</head>
<body>
<div id="paymentResponse"></div>
<div id="buynow">
<button class="stripe-button" id="payButton">Koupit</button>
</div>
<script>
var buyBtn = document.getElementById('payButton');
var responseContainer = document.getElementById('paymentResponse');
// Create a Checkout Session with the selected product
var createCheckoutSession = function (stripe) {
return fetch("stripe_charge", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
checkoutSession: 1,
}),
}).then(function (result) {
return result.json();
});
};
// Handle any errors returned from Checkout
var handleResult = function (result) {
if (result.error) {
responseContainer.innerHTML = '<p>'+result.error.message+'</p>';
}
buyBtn.disabled = false;
buyBtn.textContent = 'Buy Now';
};
// Specify Stripe publishable key to initialize Stripe.js
var stripe = Stripe('<?php echo STRIPE_PUBLISHABLE_KEY; ?>');
buyBtn.addEventListener("click", function (evt) {
buyBtn.disabled = true;
buyBtn.textContent = 'Please wait...';
createCheckoutSession().then(function (data) {
if(data.sessionId){
stripe.redirectToCheckout({
sessionId: data.sessionId,
}).then(handleResult);
}else{
handleResult(data);
}
});
});
</script>
</body>
</html>