Veilige iDEAL koppeling in Ruby on Rails
Voor vragen of opmerkingen neem contact op met Frank Oxener via frank.oxener-at-agiledovadi.com of bel 06 - 49416406.
Integratie in ActiveMerchant gestart
Om uitwisselbaarheid van betaalmethoden in Rails applicaties te faciliteren zijn de nu gestart de iDeal code te integreren in de ActiveMerchant ruby lib. ActiveMerchant tekent zich af als DE de facto standaard voor betalingen in rails applicaties.
Acts as plugin
Het doel is om de huidige code te refactoren naar een "act_as_ideal_transaction"-plugin. De huidige versie (0.3.0) is geimplementeerd met behulp van een security- en een checkout-helper, zie ook CodeWalkthrough. Neem contact op met frank.oxener-at-gmail.com voor verdere vragen, verbeteringen en opmerkingen.
Releases
- Release 0.1.0 orginele code, een vertaling van de PHP-advanced voorbeeld zoals door iDEAL 'geleverd'.
- Release 0.2.0 aanvullingen naar aanleiding van ervaringen bij http://www.hematelefonie.nl (aanvullingen nog nodig voor pending en dubbele transacties) Let op: je moet je eigen privatedata.rb maken met de Ideal test account gegevens (ID en password) (zie ook commentaar in environment.rb bij require privatedata).
- Release 0.3.0 testcertificaat en testpublic-key verplaatst naar fixtures. Unit test nu autonoom. Functionele test met eigen gecreerde lokale certificaat en key uitvoeren. Zie onderstaande instructies.
Instructies
Aangenomen wordt dat je al een iDEAL-account hebt (zie ook CodeWalkthrough):
- Download tar en pak uit.
tar -xvf ideal_on_rails_0.3.0.tar
- Maak het bestand privatedata.rb aan in de config directory
PrivatekeyPass = "JOUWWACHTWOORD" MerchantID = "JOUWIDEAL-ID"
- Controleer of de unit tests werken:
rake test:units
- Maak vervolgens je eigen public key aan:
cd config/security openssl genrsa -des3 -out merchantprivatekey.pem -passout pass:JOUWWACHTWOORD 1024 - Maak vervolgens het certificaat:
openssl req -x509 -new -key merchantprivatekey.pem -passin pass:JOUWWACHTWOORD -days 365 -out merchantprivatecert.cer
antwoord (je kunt alle velden blank laten):You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]: State or Province Name (full name) [Some-State]: Locality Name (eg, city) []: Organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []: Common Name (eg, YOUR name) []: Email Address []:
- Laad merchantprivatecert.cer op mbv iDEAL Dashboard (via bijvoorbeeld https://idealtest.secure-ing.com)
- Run de unit en de functionele tests.
rake test
Via je iDEAL dashboard kun je ook zien of de betalingen geslaagd zijn.
Bij het vernieuwen van je certificaat moet je eerst de certificaat uploaden via het dashboard alvorens deze te vervangen in je applicatie. Hierdoor hoeft je applicatie niet down te gaan.
Checkout controller
De code bevat ook een minimale checkout controller, die voor zich zelf spreekt als je de webserver start. Er is een start gemaakt met de selenium on rails plugin. Doe het volgende:
mongrel_rails start -e test
en dan in de browser http://localhost:3000/selenium en klik dan op 'all' in de Selenium testrunner box (rechtsboven) en het testscript checkout.sel wordt uitgevoerd.
iDEAL dashboard
ING en Postbank : https://idealtest.secure-ing.com
Rabobank : https://ideal.rabobank.nl/ideal/logon_rabo.do
Van ABN-Amro en SNS is niet bekend of daar ook dashboards voor zijn (wie weet dat?)
