A Reminder of Why Open Source Matters
Sometimes you're so involved in the details, you forget the bigger picture--until something reminds you again.
Today I realized that our payment gateway processor (who shall remain nameless) does not support the Discover card correctly. When you authorize a credit card charge, the credit card (Visa, MasterCard, American Express, or Discover) performs an "address verification service" or AVS, to guard against fraud. This means matching the billing address on file of the cardholder against the address provided for the transaction. If the address and the zip code both match, AVS returns a "Y". If only the zip code matches, AVS returns a "Z". If neither matches, you get an "N", which in turn causes the gateway processor to reject the credit card.
It turns out that Discover returns an "X" if there is an exact match between the address provided and the billing address on file. Since Visa, MasterCard, and American Express do not use the "X" code, however, our gateway processor does not recognize the "X" and returns an "authorization failed" if it saw one. The result is that we cannot authorize or process Discover cards.
What to do? If you've ever programmed, you can tell this is a trivial bug. It's on the order of adding another
|| ("X".equals(avsResultStr))
to an if statement somewhere. All you have to do is dig up the code and fix it yourself--except I don't have the code!! My payment gateway processor is not open source. In fact, I don't know of a single one that is.
So I'm stuck. I can't fix it myself. There's no mailing list, no issue tracker, no community to go to either. I can raise a support request with my gateway processor. Given their past record of responsiveness, I think I'll just pass and live with buggy software.
This brings it home again why open source is better. It's not about the code that anybody else gives me. At a most basic level, it's just the right that I can fix the bugs in the software I use. If open source can do just give me that basic right, then it has made my life much better, never mind anything else.