This plugin is designed to add a new gateway to Payum to support Stripe checkout session over Sylius plugin
See https://stripe.com/docs/payments/checkout for more information.
Install using Composer :
$ composer require flux-se/sylius-payum-stripe-plugin
Enable this plugin :
<?php
# config/bundles.php
return [
// ...
FluxSE\SyliusPayumStripePlugin\FluxSESyliusPayumStripePlugin::class => ['all' => true],
// ...
];
Get your publishable_key
and your secret_key
on your Stripe account :
https://dashboard.stripe.com/test/apikeys
Then get a webhook_secret_key
configured with at least two events :
payment_intent.canceled
checkout.session.completed
The URL to fill is the route named payum_notify_do_unsafe
, here is an example :
http://localhost/payment/notify/unsafe/stripe_session_checkout_with_sca
https://dashboard.stripe.com/test/webhooks
Webhooks are triggered by Stripe on their server to your server. If the server is into a private network, Stripe won't be allowed to reach your server.
Stripe provide an alternate way to catch those webhook events, you can use
Stripe cli
: https://stripe.com/docs/stripe-cli
Follow the link and install Stripe cli
, then use those command line to get
your webhook key :
First login to your Stripe account (needed every 90 days) :
stripe login
Then start to listen for the 2 required events, forwarding request to you local server :
stripe listen \
--events checkout.session.completed,payment_intent.canceled \
--forward-to https://localhost/payment/notify/unsafe/stripe_session_checkout_with_sca
Replace the --forward-to argument value with the right one you need.
Go to the admin area, log in, then click on the left menu item "CONFIGURATION > Payment methods". Create a new payment method type "Stripe Checkout Session (with SCA support)" :
Then a form will be displayed, fill-in the required fields :
-
the "code" field (ex: "stripe_session_checkout_with_sca").
-
choose which channels this payment method will be affected to.
-
the gateway configuration (need info from here) :
NOTE1: You can add as many webhook secret keys as you need here, however generic usage need only one.
NOTE2: the screenshot contains false test credentials.
-
give to this payment method a display name (and a description) for each language you need
Finally, click on the "Create" button to save your new payment method.
See documentation here : https://github.com/FLUX-SE/PayumStripe/blob/master/README.md