Skip to content

Payum Stripe Checkout Session payment gateway bundle (with SCA support)

License

Notifications You must be signed in to change notification settings

FLUX-SE/PayumStripeBundle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

3623fa8 · Apr 2, 2021

History

30 Commits
Mar 28, 2021
Mar 28, 2021
Sep 16, 2020
Mar 27, 2020
May 7, 2020
Mar 28, 2021
Nov 5, 2020
Apr 2, 2021
Sep 15, 2020
Mar 28, 2021
Mar 28, 2021
Mar 28, 2021

Repository files navigation

Latest Version on Packagist Software License Build Status Quality Score

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

Usage

See documentation here : https://github.com/FLUX-SE/PayumStripe/blob/master/README.md

More

The Sylius plugin :

https://github.com/FLUX-SE/SyliusPayumStripePlugin