Reputation: 49
I have managed to get Stripe Checkout to work using PHP. But I wanted to get rid of the initial Stripe Button where it usually says "proceed to payment" or "pay by card". I just wanted to link the button on my site to go directly to the Checkout pop-up. I was wondering if this is possible? I've included the php file's and the relevant html code below.
index.php
<?php require_once('config.php'); ?>
<form action="charge.php" method="post">
<script src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="<?php echo $stripe['publishable_key']; ?>"
data-name="The Boffins"
data-amount="25000"
data-currency="GBP"
data-description="Social Package"
data-image="images/Gentleman.gif"
data-label="Proceed to Payment"
data-panel-label="Only">
</script>
</form>
charge.php
<?php
require_once('config.php');
$token = $_POST['stripeToken'];
$customer = \Stripe\Customer::create(array(
'email' => '[email protected]',
'card' => $token
));
$charge = \Stripe\Charge::create(array(
'customer' => $customer->id,
'amount' => 25000, //amount in pennies
'currency' => 'gbp'
));
echo 'Successfully charged £250! We will be in touch shortly.';
config.php
require_once('vendor/stripe-php-3.1.0/init.php');
$stripe = array(
"secret_key" => "sk_live_XXXXXXXXXXXX",
"publishable_key" => "pk_live_YYYYYYYYYYYY"
);
\Stripe\Stripe::setApiKey($stripe['secret_key']);
html:
<a class="button price-button one-off-m" href="index.php">£250 /<span class="one-off"></a>
Upvotes: 3
Views: 3830
Reputation: 2218
Per stripe's documentation:
<script src="https://checkout.stripe.com/checkout.js"></script>
<button id="customButton">Purchase</button>
<script>
var handler = StripeCheckout.configure({
key: 'pk_test_4asasasasasasa',
image: '/img/documentation/checkout/marketplace.png',
token: function(token) {
// Use the token to create the charge with a server-side script.
// You can access the token ID with `token.id`
}
});
$('#customButton').on('click', function(e) {
// Open Checkout with further options
handler.open({
name: 'name',
description: '2 widgets',
amount: 2000
});
e.preventDefault();
});
// Close Checkout on page navigation
$(window).on('popstate', function() {
handler.close();
});
</script>
Upvotes: 2