holistic-web / e-mailr

A web app to send letters to people!
0 stars 0 forks source link

Choose a Payment Processor #5

Open fitzhavey opened 2 years ago

fitzhavey commented 2 years ago

We need to decide on a payment processor we will use to receive money. There are a few other questions we should answer too.

Which payment processor will we use and how is it configured?

We should use Stripe to process our payments for the following reasons:

Cons of Stripe

Which Stripe implementation path should we use

General go live plan

Where will money pay out to?

fitzhavey commented 2 years ago

@andrewlew1s sounds cool - a couple questions:

andrewlew1s commented 2 years ago

Stripe is pretty perfect for our needs and the most developer friendly by a long shot. But there are a large number of processors out there. We could use Paypal as a backup.

Prebuilt UI components was actually the wrong phrase to use, this is a separate flow to what I'm actually recommending. We could use them (Stripe elements) instead of the hosted checkout flow and incorporate into our own site. I'm recommending the redirect flow to their hosted payment page.

If we have separate dev and prod envs deployed then yes that makes the most sense to keep each env as using test keys and real keys.

Invited you to Stripe

fitzhavey commented 2 years ago

@andrewlew1s I suppose It's hard for me to see why it's more developer friendly / better without a 1:1 comparison to at least one alternative (see https://github.com/holistic-web/e-mailr/issues/6#issuecomment-943076979), but as the resident payment expert if you think we can skip that step then let's.

I had a look at the custom elements that we can embed in our own page and it looks like we could wrap those in a Vue component without too much trouble. The hosted payment solution sounds good too. Very nice to have options 🔥

We currently have two environments for the UI. The way I see it we could either deploy two cloud functions, and have the dev UI point to one and the live UI pointing at the other, or we could have a single cloud function deployment that we tell to use dev / live api keys based off either a field in the request, or the domain that the request is coming from. This will be interesting to think about but I don't think we need to answer this until we tackle #7.

Stripe.md looks awesome 💸 . Can we add it to the list of extenal dependencies in the readme?

andrewlew1s commented 2 years ago

Here's a pretty good link comparing Stripe vs PayPal. https://kinsta.com/blog/stripe-vs-paypal/

andrewlew1s commented 2 years ago

Are we OK to close this issue?

fitzhavey commented 2 years ago

@andrewlew1s I'm not sure you addressed my last comment yet

andrewlew1s commented 2 years ago

💩