solidusio / solidus_stripe

💳 Integrate Solidus with Stripe
https://stripe.com
BSD 3-Clause "New" or "Revised" License
36 stars 62 forks source link

Roadmap to remove ActiveMerchant dependency? #74

Open brchristian opened 4 years ago

brchristian commented 4 years ago

It made complete sense that the old solidus_gateway extension was built on top of active_merchant, because both of them are meant to support a large number of gateways with as uniform a style as possible.

However, more recently Solidus has deprecated solidus_gateway in favor of individual extensions that support one gateway each, and hence in the case of Stripe we have the new solidus_stripe extension.

However, because it was extracted from the original solidus_gateway code, solidus_stripe is still built on active_merchant, which has a number of downsides, including:

I wonder, would there be interest in this community in a PR that would remove the dependency on active_merchant in favor of directly utilizing the official stripe gem?

I'd be happy to help if this would be of interest. :)

spaghetticode commented 4 years ago

@brchristian I think it makes sense to switch to the official Stripe gem, mostly because it has a much richer API than ActiveMerchant. For example, my feeling is that we currently can't succeed in https://github.com/solidusio/solidus_stripe/issues/26 with ActiveMerchant, we need to use Stripe API from their gem.

The transition will probably take some time, as we're currently supporting functionalities (deprecated V2 behavior, V3 Elements, Payment Intents, payment request button) that need to be transposed whenever possible, keeping the impact of the change on existing stores as small as possible.

If someone else has different opinions please chime in, but I personally think that if you're interested in starting to work on the transition, you're more than welcome in doing so. Of course, let's get in touch if you need some more information, help, or coordination.

brchristian commented 4 years ago

@spaghetticode Okay, that sounds good! I will look into it. I was inspired partly by our interest in #26.

To elaborate a little bit on my own motivations, our company is looking to implement a fairly sophisticated subscription system, including automatic renewals. The Stripe API supports autorenew, but for that to work we need stable customer accounts on the Stripe side, etc. (Hence my interest in #26.) My feeling is that basing the solidus_stripe extension on the Stripe gem would make it easier to extend the functionality in this way.

As for the transition, given that the V2 behavior is deprecated, I might look at supporting only V3 behavior to start with, and see where that takes me.

And yes, would love your help and coordination. I'll be happy to use this thread (or some other channel, if you prefer) to stay in touch once I begin to look into things.

spaghetticode commented 4 years ago

I totally agree that this may be a good time to remove the V2 API support. After all, this has already been deprecated by Stripe. Besides this issue and PRs on this GitHub repository, we surely can get in touch also on Solidus' slack channel if it works for you.

Mateus-Resende commented 2 years ago

Hey! Do we have any updates on moving away from activemerchant and using Stripe gem directly? New features such as Stripe Connect, Elements UI, and others would be more easily accessible as well.

stale[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity. It might be closed if no further activity occurs. Thank you for your contributions.