# Payflow Pro (was Re: FatWreck.com - New Rails Site)

**URL:** <https://www.ruby-forum.com/t/payflow-pro-was-re-fatwreck-com-new-rails-site/50887>\
**Category:** Rails\
**Created:** [December 22, 2005, 6:31am UTC](https://www.ruby-forum.com/t/payflow-pro-was-re-fatwreck-com-new-rails-site/50887 "2005-12-22T06:31:01Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![davidjrice](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/5e9695/32.png) [@davidjrice](https://www.ruby-forum.com/u/davidjrice)\
**Post date:** [December 22, 2005, 6:31am UTC](https://www.ruby-forum.com/t/payflow-pro-was-re-fatwreck-com-new-rails-site/50887/1 "2005-12-22T06:31:01Z")

</div>

Several years ago, before PHP introduced their built-in pfpro functions,  
I  
rolled my own crappy interface, which of course delegated to the  
commandline  
payflow client. I could certainly do the same in Ruby today.

Thinking back on it, I realized at the time, and realize again now, that  
delegating this functionality to a commandline app is a security risk  
unless  
you’re the _only_ user on the server.

What we should really like to see is a library similar to PHP’s pfpro  
library, wherein the financial transaction data gets SSL treatment  
before  
leaving our apps, and communication happens directly between our apps  
and  
the payflow server. I know a guy who’s written some C/C++ Ruby  
extensions,  
and he might be willing to pull this off for a price. If I end up hiring  
this out and getting it done, I will make it available to the community,  
of  
course. I’m not sure how timely it’ll be, as I won’t need this library  
until  
next summer when I plan rewrite our ecommerce system.

Hunter… do you work directly for FatWreck? If so, your organization  
and  
mine have worked together before 😉 Please feel free to contact me  
off-list, regardless.

Everyone else… if you have experience using Payflow Pro’s service and  
would be interested in seeing a native Ruby library, I’d love to hear  
from  
you, too.

---

<div class="post-metadata">

**Author:** ![davidjrice](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/5e9695/32.png) [@davidjrice](https://www.ruby-forum.com/u/davidjrice)\
**Post date:** [December 22, 2005, 8:13am UTC](https://www.ruby-forum.com/t/payflow-pro-was-re-fatwreck-com-new-rails-site/50887/2 "2005-12-22T08:13:27Z")

</div>

David,

First of all, thanks for the willingness to share … that’s how we all  
get to where we need to be. =)

I am going to voice what I believe is needed…

Rather than focus on a particular payment gateway (ie. PayFlow Pro), we  
should work toward an open, extensible payment module. Something that  
could easily be tailored for any one of the various gateways that are  
available (ie. [Authorize.net](http://Authorize.net), PayPal Processing, RBS Lynk, etc.). The  
protocols of these various providers, for the most part, are very  
similar and usually differ only in the names and formatting of the  
particular variables that are passed to the gateway.

They usually follow the same processes:

1. URL of gateway.
2. HTTPS communication with gateway.
3. Credentials to identify merchant (eg. terminal ID, merchant ID, etc.)
4. Order details.

Sure, some gateways offer more options and that’s where customization  
would be required.

I’ve only recently begun working with Rails (and Ruby) and find the  
framework/language/community/workflow amazing. There should be some way  
to release updated gateways, as they become available. For instance, I  
am currently working with my processor (RBS Lynk) to get the API that’s  
necessary to communicate with their gateway. It’s going to cost a  
pretty penny but it’s worth it for us, as we can reduce our clients’  
initial investments and reappropriate portions of the savings toward  
additional features, etc.

I guess the only problem may be … how do you design something like  
this that would fit most developers/gateways?

It may be a case similar to that of the login generators … how do you  
please everyone and still have a useful feature/plugin?

-Chris

---

<div class="post-metadata">

**Author:** ![davidjrice](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/5e9695/32.png) [@davidjrice](https://www.ruby-forum.com/u/davidjrice)\
**Post date:** [December 22, 2005, 8:58am UTC](https://www.ruby-forum.com/t/payflow-pro-was-re-fatwreck-com-new-rails-site/50887/3 "2005-12-22T08:58:43Z")

</div>

From: “Chris G.” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> Rather than focus on a particular payment gateway (ie. PayFlow Pro), we  
> should work toward an open, extensible payment module. Something that  
> could easily be tailored for any one of the various gateways that are  
> available (ie. [Authorize.net](http://Authorize.net), PayPal Processing, RBS Lynk, etc.). The  
> protocols of these various providers, for the most part, are very  
> similar and usually differ only in the names and formatting of the  
> particular variables that are passed to the gateway.

Found these on rubyforge, haven’t tried them yet:

[http://rubyforge.org/projects/paypal/](http://rubyforge.org/projects/paypal/)  
Library aiding with Paypal IPN from web applications.

[http://rubyforge.org/projects/transact/](http://rubyforge.org/projects/transact/)  
A simple yet powerful means of creating and submitting transactions  
to secure payment gateways. Currently supports the Linkpoint gateway.  
PayPal and [authorize.net](http://authorize.net) support forthcoming (takes so long to setup  
a test account with them it’s ridiculous).

Sounds like transact is hoping to become the sort of module you’re  
describing.

Regards,

Bill

---

<div class="post-metadata">

**Author:** ![davidjrice](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/5e9695/32.png) [@davidjrice](https://www.ruby-forum.com/u/davidjrice)\
**Post date:** [December 22, 2005, 4:00pm UTC](https://www.ruby-forum.com/t/payflow-pro-was-re-fatwreck-com-new-rails-site/50887/4 "2005-12-22T16:00:16Z")

</div>

There is also ActiveMerchant

[http://home.leetsoft.com/am/wiki](http://home.leetsoft.com/am/wiki)

Current supporting [Authorized.net](http://Authorized.net) and Moneris, with LinkPoint and  
TrustCommerce under development.

-eric

---

<div class="post-metadata">

**Author:** ![davidjrice](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/5e9695/32.png) [@davidjrice](https://www.ruby-forum.com/u/davidjrice)\
**Post date:** [December 23, 2005, 1:16am UTC](https://www.ruby-forum.com/t/payflow-pro-was-re-fatwreck-com-new-rails-site/50887/5 "2005-12-23T01:16:08Z")

</div>

Fortunately, this application is dedicated to its own server.

YouÂ¹re right though, I wouldnÂ¹t feel great about this on a shared  
server.

The other Rails based commerce site we did, we had the customer use  
[Authorize.net](http://Authorize.net) explicitly because of the Ruby integration…

SEE MERCHANTS!! RUBY SUPPORT WILL WIN YOU CUSTOMERS!

From: David R. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Reply-To: [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Date: Wed, 21 Dec 2005 23:28:25 -0600  
To: [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Subject: Payflow Pro (was Re: [Rails] [FatWreck.com](http://FatWreck.com) - New Rails Site)

Thinking back on it, I realized at the time, and realize again now, that  
delegating this functionality to a commandline app is a security risk  
unless  
you’re the _only_ user on the server.

---

<div class="post-metadata">

**Author:** ![davidjrice](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/5e9695/32.png) [@davidjrice](https://www.ruby-forum.com/u/davidjrice)\
**Post date:** [December 22, 2005, 3:32pm UTC](https://www.ruby-forum.com/t/payflow-pro-was-re-fatwreck-com-new-rails-site/50887/6 "2005-12-22T15:32:57Z")

</div>

There’s also the payment gem, which is designed to do what you  
indicated you’d like in the original email (abstraction of multiple  
payment gateways). Currently works with [authorize.net](http://authorize.net).

[http://rubyforge.org/projects/payment/](http://rubyforge.org/projects/payment/)

---

<div class="post-metadata">

**Author:** ![davidjrice](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/5e9695/32.png) [@davidjrice](https://www.ruby-forum.com/u/davidjrice)\
**Post date:** [December 23, 2005, 9:02am UTC](https://www.ruby-forum.com/t/payflow-pro-was-re-fatwreck-com-new-rails-site/50887/7 "2005-12-23T09:02:25Z")

</div>

I contacted [Authorize.net](http://Authorize.net), but it seems they only allow US businesses.

Does anyone know of an international payment gateway that would be  
easy to integrate with a Rails app?

---

<div class="post-metadata">

**Author:** ![davidjrice](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/5e9695/32.png) [@davidjrice](https://www.ruby-forum.com/u/davidjrice)\
**Post date:** [December 23, 2005, 3:25pm UTC](https://www.ruby-forum.com/t/payflow-pro-was-re-fatwreck-com-new-rails-site/50887/8 "2005-12-23T15:25:28Z")

</div>

I don’t know about international support specifically, but  
TrustCommerce is an excellent outfit, with good Ruby support.

---

<div class="post-metadata">

**Author:** ![davidjrice](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/5e9695/32.png) [@davidjrice](https://www.ruby-forum.com/u/davidjrice)\
**Post date:** [December 23, 2005, 1:19am UTC](https://www.ruby-forum.com/t/payflow-pro-was-re-fatwreck-com-new-rails-site/50887/9 "2005-12-23T01:19:09Z")

</div>

We used this on a different project and it worked great. The customer  
went  
with [Authorize.net](http://Authorize.net) just because of this reason.
