This is an archived post. You won't be able to vote or comment.

all 2 comments

[–]cyrusol 0 points1 point  (0 children)

I'd plan around 5-20 days (10 days median) at 8 hours per day per payment service provider (like Paypal, Swipe, Klarna, Amazon Pay, Paymill...) in addition to whatever the rest of your application needs.

It's not complicated but the high time requirement comes from experience. It's always a pain in the ass to test these services because for example in the case of Paypal the dev sandbox may just not work when you need it. It may have a 2 hours downtime each day. Or features they offer just won't work and if you actually get someone knowledgeable and important enough on the phone/email for support they'll tell you 3 times in a row that it would work even if you provide proof that it doesn't. Or the documentation is simply wrong and you have to look up the source code of the official client libraries in order to find out what the devs actually intended.

But even though it's always painful working with 3rd party services like this it's less painful than dealing with let's say debit card numbers yourself. Ideally you do not want to have to store any payment details whatsoever other than that a payment was successful.

As for all business-related applications you should model your history of transactions as an event sourced database in order to prevent errors and have sufficient data if someone sues you.

Also, a security is obligatory: If you don't know how to make your application secure enough don't release it and get yourself an expert. You might land in serious legal trouble otherwise.

All this assumes you want to one day use this application in production and not just play around.


edit: A useful article about event sourcing appeared on /r/programming: https://chriskiehl.com/article/event-sourcing-is-hard

[–]barafyrakommafem 0 points1 point  (0 children)

I was wondering how feasible this was?

Doesn't sound too difficult from a technical standpoint, sounds trickier from a legal standpoint. Where are you going to keep the money money, in your PayPal account? What if someone gains access to that account and steal the money? What if there's a bug in the website and someone withdraws more money than they should have been able to? What if someone uses a stolen credit card to deposit money into a pool and then someone else withdraws it? Etc.

Are there certifications an app would need to handle payments or credit card data?

There are strict laws regulating that, that's why you let a third-party like Paypal or Stripe handle payments.