Problem/Motivation

Be able to accept SEPA Direct Debit payments.

Proposed resolution

Implement a CommercePaymentMethodType plugin for SEPA.

Remaining tasks

Review MR: https://git.drupalcode.org/project/commerce_stripe/-/merge_requests/193

Release notes snippet

Added support for payments via SEPA Direct Debit when using the Stripe Payment Element.

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Comments

carstenG created an issue. See original summary.

carsteng’s picture

StatusFileSize
new18.88 KB

Here comes the patch.

carsteng’s picture

Status: Active » Needs work
mglaman’s picture

Title: SEPA Support » [PP-1] SEPA Support
Status: Needs work » Postponed
Issue tags: -commerce, -stripe, -Commerce 2.x

Let's postpone this on #2880160: Add Wero Payment Method Type, when we can finalize the best way to support these different sources with Stripe.

xavier.masson made their first commit to this issue’s fork.

xavier.masson’s picture

StatusFileSize
new26.9 KB

I'm aware about the Support iDeal through Stripe (sources) to prefer on a generic implementation of the different sources but i had recently the needs to use the SEPA debit source on a project and the quickest way to provides it was to re-use the initial work from the patch #1, so here attached the reroll of the patch with few improvements / fixes.

xavier.masson’s picture

StatusFileSize
new23.65 KB
a.milkovsky’s picture

The patch #6 looks good. As the related issue #2880160 haven't got any progress since 4 years, it makes sense to commit the current patch.

cialog’s picture

@xavier.masson Is the SEPA payment usable with recurring payment (subscription) ?

Did someone manage to make this work for drupal 10?

phannphong’s picture

StatusFileSize
new0 bytes

The current patch works with rc6 but not for 8.x-1.1 version so I created a new patch here.
P/S: my mistake when the patch file is empty. Check next patch file please.

phannphong’s picture

StatusFileSize
new31.07 KB
xavier.masson’s picture

aunv’s picture

StatusFileSize
new33.38 KB

Because the Stripe Sources API has reached end of life, I have updated the StripeSepa payment gateway to use the Payment Methods and Payment Intents APIs.

smokris’s picture

Title: [PP-1] SEPA Support » SEPA Support
Version: 8.x-1.x-dev » 2.x-dev
Category: Task » Feature request
Issue summary: View changes
Status: Postponed » Needs work
Parent issue: » #3408951: Refactor Stripe payment element for additional payment method types

If I understand correctly from #3408951: Refactor Stripe payment element for additional payment method types, the path forward for SEPA support is to implement a CommercePaymentMethodType plugin; thus this issue is no longer blocked. Based on that, I updated this issue's status and summary.

smokris changed the visibility of the branch 2.x to hidden.

smokris’s picture

Component: Code » Payment Element
Issue summary: View changes
Status: Needs work » Needs review

I just opened MR https://git.drupalcode.org/project/commerce_stripe/-/merge_requests/193, which makes use of the common superclass introduced on #3408951: Refactor Stripe payment element for additional payment method types. I've tested this locally with a Stripe sandbox:

  • Prior to this MR, Commerce Stripe failed to process SEPA payments, logging the message The selected stripe payment method type(stripe_sepa_debit) is not currently supported..
  • With this MR, Commerce Stripe successfully processes SEPA payments (the order transitions to the Completed state).
smokris’s picture

Status: Needs review » Reviewed & tested by the community

I rebased the MR, resolving the conflict by removing the update hook that was effectively identical to #3421392, under the assumption that this issue will also be part of the same tagged release as that other issue.

I performed the additional testing steps described in this comment:

  1. anonymous and authenticated users ✅ — When a visitor completes checkout, the payment status is initially Authorization. Later, Stripe sends a charge.succeeded webhook request, and Drupal Commerce correctly updates the payment status to Completed.
  2. Auth Only with Delayed Capture and Auth+Capture — n/a; SEPA does not support delayed capture.
  3. Single Use vs Reusable ✅ — including reusing SEPA as a previously-saved on-session payment method
  4. Refunds/Voids ✅ — When I refund the payment in the Stripe dashboard, Stripe sends a charge.refunded webhook request, and Drupal Commerce correctly updates the payment status to Refunded.
  5. Behavior when cancelling the payment ✅ — After Stripe has notified Drupal Commerce that a payment has succeeded, if I click the Refund button on the payment in Drupal Commerce, Drupal Commerce updates Stripe to refund the payment

Based on that testing, I'll tentatively move this issue along to RTBC.

anybody’s picture

Title: SEPA Support » Add SEPA Payment Method Type

Unified the title