reactioncommerce / example-storefront

Example Storefront is Reaction Commerce’s headless ecommerce storefront - Next.js, GraphQL, React. Built using Apollo Client and the commerce-focused React UI components provided in the Storefront Component Library (reactioncommerce/reaction-component-library). It connects with Reaction backend with the GraphQL API.
https://www.mailchimp.com/developer/open-commerce
Apache License 2.0
608 stars 288 forks source link

WIP: Add Stripe Payments Intents API SCA-compliant Payment Component (Not intended for merge right now) #770

Closed janus-reith closed 3 years ago

janus-reith commented 3 years ago

Signed-off-by: Janus Reith mail@janusreith.de

Resolves #5304 Impact: breaking|major Type: feature|refactor

Issue

The new Stripe Payment api plugin would not be compatible with the existing stripe frontend integration.

Solution

This PR adds a new Stripe Credit Card form and utilizes the new mutation to create a Stripe payment intent.

Breaking changes

This might replace the existing integration in the default storefront, or live side by side with it. Removing the existing one might be desired though, since it requires an outdated stripe package to be be bundled, as the old integration is not entirely decoupled in the existing component library.

Testing

See here: https://github.com/reactioncommerce/api-plugin-payments-stripe-sca/pull/2

Notice & Todo

This branch is intended for testing and should not be merged. I envision this payment component to be distributed as separate module which could be imported from the storefront. A separate PR might get rid of the existing stripe package included in the storefront, one blocker here is the component library currently throwing errors if that package is not present, regardless of its Stripe Payment Form actually being in use.

delagroove commented 3 years ago

merging to another branch in order to fix lint stuff

rc-publisher commented 3 years ago

:tada: This PR is included in version 5.1.0 :tada:

The release is available on GitHub release

Your semantic-release bot :package::rocket: