# Payment Gateway for International Payments

**URL:** <https://www.ruby-forum.com/t/payment-gateway-for-international-payments/133139>\
**Category:** Rails\
**Created:** [March 28, 2008, 7:39am UTC](https://www.ruby-forum.com/t/payment-gateway-for-international-payments/133139 "2008-03-28T07:39:58Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Petep](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/e480ec/32.png) [@Petep](https://www.ruby-forum.com/u/Petep)\
**Post date:** [March 28, 2008, 7:39am UTC](https://www.ruby-forum.com/t/payment-gateway-for-international-payments/133139/1 "2008-03-28T07:39:58Z")

</div>

Hello,

We have global customers, and we’re planning on using Worldpay since  
they could upgrade us to Bibit quite easily. However, Active Merchant  
doesn’t have a rails plugin yet. Therefore, we’re going to use PayPal  
for now.

Could anyone suggest a payment gateway with a rails plugin that can  
handle international payments?

Thanks,  
Pete

---

<div class="post-metadata">

**Author:** ![Petep](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/e480ec/32.png) [@Petep](https://www.ruby-forum.com/u/Petep)\
**Post date:** [March 28, 2008, 11:00am UTC](https://www.ruby-forum.com/t/payment-gateway-for-international-payments/133139/2 "2008-03-28T11:00:42Z")

</div>

we implemented this for ruby within a week or so.

> **[Betaalplatform » Ontvang betalingen met CM.com](https://www.cm.com/nl-nl/betalingen/)**
>
> Accepteer online en POS betalingen op één platform. Kies je betaalmethoden en accepteer snel en gemakkelijk betalingen via ons betaalplatform.

the basic interface is quite simple. to start a payment you would do  
something like this:

def self.open\_with\_ssl(url)  
WWW::Mechanize.new.post(url).body  
end

def self.new\_payment\_cluster(basket)  
basket.update\_attributes({:payment\_code =\>  
“tdps\_#{basket.id}\_#{basket.payment\_iterations + 1}”,  
:payment\_iterations =\> basket.payment\_iterations + 1})  
open\_with\_ssl(“#{TDPS\_URL}”   
\<\< “?command=new\_payment\_cluster”   
\<\< “&merchant\_name=#{TDPS\_MERCHANT\_NAME}”   
\<\< “&merchant\_password=#{TDPS\_MERCHANT\_PASSWORD}”   
\<\< “&merchant\_transaction\_id=#{u basket.payment\_code}”   
\<\< “&profile=menu”   
\<\< “&client\_id=usr#{u basket.user.id}”   
\<\< “&price=#{u(‘%01.2f’ % basket.total\_to\_pay)}”   
\<\< “&cur\_price=EUR”   
\<\< “&client\_email=#{u basket.user.email}”   
\<\< “&client\_firstname=#{u basket.user.first\_name}”   
\<\< “&client\_initials=#{u basket.user.first\_name[0,1]}#{u  
basket.user.name[0,1]}”   
\<\< “&client\_lastname=#{u basket.user.name}”   
\<\< “&client\_address=#{u basket.user.address\_one}”   
\<\< “&client\_zip=#{u basket.user.zip}”   
\<\< “&client\_city=#{u basket.user.city}”   
\<\< “&client\_country=#{u basket.user.country.iso}”   
\<\< “&client\_language=EN”   
\<\< “&days\_pay\_period=0”)  
end

most other functions are called the same way. and you can implement  
simple callbacks that get status changes of your payment processes.
