flux-se/payum-stripe-bundle

Payum Stripe gateways bundle

Installs: 31 072

Dependents: 2

Suggesters: 0

Security: 0

Stars: 12

Watchers: 3

Forks: 4

Open Issues: 0

Type:symfony-bundle

v2.0.0 2021-04-28 09:27 UTC

This package is auto-updated.

Last update: 2021-11-18 09:07:59 UTC


README

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

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 :

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