flux-se/sylius-payum-stripe-plugin

Payum Stripe gateways plugin for Sylius.

Installs: 2 419

Dependents: 0

Suggesters: 0

Security: 0

Stars: 15

Watchers: 3

Forks: 6

Open Issues: 2

Type:sylius-plugin


README

Latest Version on Packagist Software License Build Status Quality Score

Sylius Payum Stripe checkout session gateway plugin

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.

Installation

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],
    // ...
];

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 :

http://localhost/payment/notify/unsafe/stripe_session_checkout_with_sca

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_session_checkout_with_sca

Replace the --forward-to argument value with the right one you need.

Sylius configuration

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)" :

Create a new payment method

Then a form will be displayed, fill-in the required fields :

  1. the "code" field (ex: "stripe_session_checkout_with_sca").

  2. choose which channels this payment method will be affected to.

  3. the gateway configuration (need info from here) :

    Gateway Configuration

    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.

  4. 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.

Advanced usages

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