Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Choose a Payment Processor #5

Open
fitzhavey opened this issue Oct 12, 2021 · 7 comments
Open

Choose a Payment Processor #5

fitzhavey opened this issue Oct 12, 2021 · 7 comments
Assignees

Comments

@fitzhavey
Copy link
Member

fitzhavey commented Oct 12, 2021

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:

  • Easy to setup
  • We don't store any payment information which allows automatic PCI compliance by literally clicking a button in their UI after we have processed a few payments (big deal so we don't get sued)
  • We can use their prebuilt UI components that look professional and are natively mobile friendly
  • Automatic integration with Apple and Google Pay
  • Automatic language translation for the payment process
  • Easy to implement bonus features such as taxes, invoicing, discounts and email receipts.

Cons of Stripe

  • Perhaps one of the most expensive card processing solutions where they take 1.4% + 20p of each card transaction for European cards and even more for non-european cards
  • See full pricing information here

Which Stripe implementation path should we use

  • We should use their easiest and fastest solution, the hosted checkout page. The only negative of this is that we don't have full control of the UI experience and the customer is redirected away from our website during the payment process. But I don't think this is an actual issue and the increase in development speed from not having to build this will greatly outweigh any potential improvements in the UI we could make and any friction a customer may feel from the redirect.
  • Prebuilt example
  • Overall docs
  • Simplest use case - one time payment docs

General go live plan

  • Integrate the checkout solution using development keys and test cards
  • Swap to live credentials once satisfied

Where will money pay out to?

  • We will need decide on whose bank account receives the $$ 😎
@fitzhavey
Copy link
Member Author

fitzhavey commented Oct 14, 2021

@andrewlew1s sounds cool - a couple questions:

  • Do you have a competitor in mind if for some reason it turns out Stripe isn't appropriate for this project? I think we should at least consider one other option even if we're going with Stripe, so we can compare and have a backup.

  • You mention prebuilt UI components, they sound great. Is there any documentation of these? Do they work with Vue? What components are available?

  • If we are definitely going ahead with Stripe, can we configure our account and get set up? Once we're both invited let's document in the same way we did Stannp.

  • Go live plan is awesome, perhaps we can have dev configured to use the testing key, and live configured to use the real one (this is more of a implementation suggestion than a question)

@andrewlew1s
Copy link
Contributor

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
Copy link
Member Author

fitzhavey commented Oct 15, 2021

@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 #6 (comment)), 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
Copy link
Contributor

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

@andrewlew1s
Copy link
Contributor

Are we OK to close this issue?

@fitzhavey
Copy link
Member Author

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

@andrewlew1s
Copy link
Contributor

💩

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants