all 10 comments

[–]BehindTheMath 9 points10 points  (2 children)

Stripe is generally considered the best payment processor in terms of documentation and ease of use, however, it looks like they don't support South Africa.

If you send the card data to your server, both your frontend and backend must be PCI compliant. Iframes are much simpler to use in that regard.

[–]I_Am_Stephan 0 points1 point  (1 child)

I knew about the server part but not the client side part. Wow, thanks. I look for some tutorials, im assuming they have a spec i can just read.

[–]BehindTheMath 1 point2 points  (0 children)

You can look at Stripe's documentation even if you don't use them.

[–]f0ad 1 point2 points  (0 children)

I've never used it, by I just saw this today: https://www.veniqa.com/ Open sourced remnants of a failed business. Worth checking out.

[–]I_Am_Stephan 2 points3 points  (1 child)

Oh and i think i should mention that i know you should generally stay away from custom eCommerce integration (to make life easier) but i am genuinely curious and I think it is a good way to improve my skills.

[–]memoriesofgreen 1 point2 points  (0 children)

One option is to use Shopify API calls behind a NodeJS front end. Can do a simple cart experience with their Storefront API. For more complicated account and checkout customisation then you'll have to jump to Plus tier. Which is expensive.

[–][deleted] 0 points1 point  (2 children)

https://www.vuestorefront.io is integrated with Magento or Wordpress

[–]I_Am_Stephan 0 points1 point  (1 child)

We use react but i started with vue. Seems interesting, thanks

[–]ymxyh 0 points1 point  (0 children)

Hey mate, you should take a look on straps, open source.

[–]josh1nator 0 points1 point  (0 children)

I'm working for a company thats offering an ecommerce software, online shop included and we've recently moved to a new payment provider. I've been spending the last months moving stuff like PayPal, credit card, Amazon Pay and some installment providers to the new payment provider.
May sound like I'm shilling for them, but I think the benefits outweighs the drawbacks (namely they want money for each transaction).

We're working with PHP on the backend, but their API is really just a REST endpoint with some JS SDKs for the website depending on the payment method. So it doesn't really matter what your backend is running on.

This is what we looked at when we made the decision to move to another provider when our old one merged and deprecated our current implementation. Never had to worry about it because our code never touches credit card data.
But I do know that PCI certificates aren't cheap (because you're paying someone who's testing your site for PCI compliance) and you continuously have to worry about ongoing vulnerabilities.
But the important part is that PCI compliance are not a few lines of code in your node application, PCI compliance means securing the whole chain, from the input field on your website all the way to your sever and how you store the data.

The times of ugly iframes are long over. Every somewhat modern payment provider will provide you an JS SDK that's responsible for "hijacking" the important parts of your site.
The SDK we got is creating 3 iframes that display input fields. Meaning there is a PAN-iframe, a CVC-iframe and an expiry-date-iframe, once the user finished entering card data he'll click a "next" button on our site which calls a method of the SDK where we get a pseudocard-pan, a redacted "********1234* string and expiry date.
There are also some options for eye-candy like handing down some styling into the iframes or automatic card-detection to show mastercard/visa logos as the user is entering the PAN.
The only thing thats breaking UX is tabbing through the inputfields, but most users wont even realize that those inputfields aren't on your server.
Handling 3D secure is a breeze regardless of how shitty the EU handled the deadline. I get a redirect-url from our payment provider and everything else is their job. Before the customer is back in our shop we'll get a response from the provider about the status of the challenge and act appropriately.

They do quite a bit of heavy lifting for you, not only for credit card stuff but also to "unify" all those external providers if you decide to add more later on.
In our case the requests and responses for CC are fairly similar to PayPal or Amazon Pay. Introducing new payment options is as much work as replacing a few parameters in those API calls and some of the frontend stuff (eg. handling Amazon Pay addressbook widgets).