Please fork, contrib & push Paython (Payments in Python) forward
github.com
github.com
1. There are no tests. How can I be expected to contribute to your project when there's no way I can ensure a change doesn't break existing functionality, or even works itself? Testing remote APIs is a bit of a hassle, but it's what mocking was made for. Short of signing up for multiple payment gateways, there's no current way to test any change I make.
2. No setup.py support. This will likely further limit the number of people who contribute as it increases the barrier to entry. A proper project structure is a relatively easy thing that saves you a ton of time in aggregate.
3. There is no coherent developer API. Why does XMLGatewayInterface exist if only one gateway uses it? Why isn't there a generic GatewayInterface that abstracts things further, for non-XML APIs? If you're not going to use ABCs or strict interfaces (like zope.interface), you should at least have well-formed documentation: most ivar conventions (Foo.API_BASE, etc.) aren't mentioned anywhere. Why are there exceptions in the lib module that are only used by one gateway (or none)?
4. There are a multitude of minor design decisions that, if followed by contributors, will likely cause you pain down the road. Using print for debug output, relative imports, random error handling, "entrapping" functions (why would a function take two optional parameters that are immediately checked for non-None status?), etc.
To be clear, I'm very glad you're working on this—it's a difficult (at least incredibly tedious) problem that I'm sure a lot of people would appreciate a Python solution for, myself included. But I don't think this is a very good time to be asking people to fork and contribute. You need a proper foundation built before trying to solicit contributions or you'll end up with a bunch of code you'll need to rewrite later instead of a comparatively small amount you should rewrite now.
As the library author, it's your responsibility to build a cohesive, general-yet-customizable, clear interface upon which people can build and test their own gateway drivers. If you do that, I promise you you'll have contributors in no time. It's exactly what we did with libcloud and we now support almost every cloud provider out there and even have a nearly API-compliant Java fork (just to lend some credibility to my rambling).
I want to improve what I've got but, IMO, I cannot do so by myself. Hence my call to arms. If you want something like this, please help improve it!
It is never wrong or a bad idea to ask for help. Whether you're at the idea stage, only have some hacked up barely working code, or are a mature project with a stable set of APIs. Asking for help is well, exactly that... asking for help.
What would be really awesome is for this to turn into something like the standard database api spec PEP249 (http://www.python.org/dev/peps/pep-0249/) but for payment gateways!
It seems like there's Satchmo, various Satchmo forks, and GetPaid, but I can't tell which are directly or indirectly tied to various frameworks (Django, Plone). Are people just coding directly to payment APIs? Is everyone running on Django or Plone?
http://www.satchmoproject.com/
http://bitbucket.org/bkroeze/django-bursar
Thus far, Paython is standalone. Planning to add tests, unifying conventions & wrapping all gateways up into something much easier to use.
I recently used this: http://github.com/simplegeo/python-fpys2
Perhaps you would be interested in merging it? I have some additional example documentation the author emailed to me as well.
If someone just downloads your code and starts storing the cardholder data on the same server, even encrypted end to end, that's still not nearly PCIDSS compliant, so they're violating their merchant account agreement and hugely liable if it leads to any kind of data theft.
It would be wonderful if there was an easy way to be payment gateway independent for recurring charges without meeting the 3-digit number of PCIDSS requirements, but I don't think that can come from any code project.
I am not against supporting ARB, but it is a big vendor lock in & I think it makes sense to have options.
Do you have support for recurring charges built in?
http://www.facecash.com/developers
It doesn't process plastic, but it does allow you to integrate mobile payments for any kind of retail transaction.
At this point, we've created our own payment gateway wrapper. At an API level, it doesn't look terribly different from Paython, so I'm cautiously hopeful that we'll be able to port our PayFlow Pro and stored credit gateway backends if it looks like Paython is gaining traction.
For significant change to occur in the payments space, a business model to rival Visa must be developed and led by someone with the political savvy to drive it home.
At any rate, happy to talk: scott (at) marksmenus.com
EDIT: Ah, I'm guessing you're thinking for FaceCash? Sounds good -- shoot me an email!
it tells the tale about how he created VISA
I wrote PyMoneris a while ago simply because there wasn't one and have been hoping someone would start a project like this that I could hand that code over to.
Tedious, but necessary!
If it doesn't, I don't see why I wouldn't try?