flux-se / payum-stripe-bundle
Payum Stripe gateways bundle
Installs: 293 584
Dependents: 2
Suggesters: 0
Security: 0
Stars: 21
Watchers: 3
Forks: 7
Open Issues: 0
Type:symfony-bundle
Requires
- flux-se/payum-stripe: ^2.0
- payum/payum-bundle: ^2.4
- symfony/config: ^4.4|^5.4|^6.0
- symfony/dependency-injection: ^4.4|^5.4|^6.0
- symfony/http-kernel: ^4.4|^5.4|^6.0
Requires (Dev)
- php-http/guzzle6-adapter: ^2.0
- phpstan/phpstan: ^1
- phpunit/phpunit: ^8|^9
- symplify/easy-coding-standard: ^11
- vimeo/psalm: ^4.3
This package is auto-updated.
Last update: 2024-11-27 15:28:57 UTC
README
Payum Stripe checkout session gateway bundle
This bundle is design to add a new gateway to Payum to support Stripe checkout session and Stripe JS gateways over symfony bundle
See https://stripe.com/docs/payments/checkout for more information.
Installation
Install using Composer :
composer require flux-se/payum-stripe-bundle
Choose one of php-http/client-implementation, the most used is php-http/guzzle6-adapter
composer require php-http/guzzle6-adapter
Configuration
API keys
Get your publishable_key
and your secret_key
on your Stripe account :
https://dashboard.stripe.com/test/apikeys
Webhook key
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 :
https://localhost/payment/notify/unsafe/stripe_checkout_session
https://dashboard.stripe.com/test/webhooks
Test or dev environment
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_checkout_session
Replace the --forward-to argument value with the right one you need.
Payum
# config/packages/payum.yaml payum: gateways: stripe_checkout_session: factory: stripe_checkout_session publishable_key: sk_test_secretkey secret_key: pk_test_publishablekey webhook_secret_keys: - whsec_test_webhookkey stripe_js: factory: stripe_js publishable_key: sk_test_secretkey secret_key: pk_test_publishablekey webhook_secret_keys: - whsec_test_webhookkey
To set payment-methods you can add payment_method_types
to the gateway-config. This array can contain multiple gateways you want to support. For a full list see here. By default the payment_method_types is ['card'].
Usage
See documentation here : https://github.com/FLUX-SE/PayumStripe/blob/master/README.md
More
The Sylius plugin :