iDEAL Lite - Implementatie handleiding
Deze handleiding dient als hulpmiddel bij de implementatie van iDEAL Lite (Rabobank) en iDEAL Basic (ING Bank).
Ter demonstratie van iDEAL Lite maak ik uiteraard gebruik van de iDEAL Simulator omgeving.
Een werkend voorbeeld van iDEAL Lite is te vinden op http://www.ideal-simulator.nl/examples/ideal-lite-example/
Voorbeeld PHP code en classes die gebruikt worden in dit document zijn ook te downloaden op http://www.ideal-simulator.nl/downloads/ideal-lite-example.zip
Enkele kanttekeningen bij iDEAL Lite
- Om betalingen via iDEAL Lite te kunnen ontvangen moet je een abonnement afsluiten bij je bank.
- iDEAL Lite biedt GEEN betrouwbare terugkoppeling wat betreft de betaalstatus. Is dit wenselijk/noodzakelijk, gebruik dan iDEAL Professional.
IDEAL Lite werkwijze
Voor iDEAL Lite wordt een formulier opgebouwd die wordt verzonden naar de iDEAL server. Dit formulier bevat informatie over o.a. de order, het bedrag en de begunstigde.
Na de betaling wordt de bezoeker terug gestuurd naar je website. Afhankelijk van de URL geef je de bezoeker een melding dat de betaling is afgerond of geannuleerd. Merk op dat deze terugkoppeling beslist niet betrouwbaar is, maar wel "aannemelijk".
Ik heb o.a. een PHP 5 class geschreven die je helpt bij het opbouwen van het iDEAL Lite formulier, en het berekenen van je HASHCODE. Deze class is, samen met voorbeeld code, te downloaden op http://www.ideal-simulator.nl/downloads/ideal-lite-example.zip
Toelichting bij de voorbeeld code
De meeste code is voorzien van commentaar, dus zal niet al te lastig moeten zijn om te begrijpen. In dit document geven we wat extra achtergrond informatie bij bepaalde bestanden en code fragmenten.
ideallite.cls.php
Dit bestand bevat de class-definitie die je helpt bij het opbouwen van het iDEAL Lite formulier, en bij het berekenen van je HASHCODE.
index.php
Dit bestand gebruikt de iDEAL Lite class om het formulier op te bouwen.
Regel 8
$oIdeal->setMerchant('123456789', '0');
Hier stel je je eigen merchantID en subID in. Voor de simulator omgeving moet je gebruik maken van merchantID "123456789".
Regel 9
$oIdeal->setAquirer('Simulator', true);
Hier stel je de bank in ("Rabobank", "ING Bank", "ABN Amro", "Simulator") en geef je aan of de je in de TEST omgeving wilt werken (true/false).
Note: Achter de schermen wordt zo bepaald naar welke URL het formulier verzonden moet worden.
Regel 10
$oIdeal->setHashKey('Password');
Hier stel je de HASHKEY in waarmee je HASHCODE wordt berekend. Deze HASHKEY moet je ook configureren in je "iDEAL Dashboard". Voor de simulator omgeving moet je gebruik maken van HASHKEY "Password".
Regel 13 t/m 15
$oIdeal->setUrlCancel('http://...');
$oIdeal->setUrlError('http://...');
$oIdeal->setUrlSuccess('http://...');
Nadat de bezoeker de transactie heeft afgehandeld, wordt deze afhankelijk van het resultaat (SUCCESS, CANCEL of ERROR) terug gestuurd naar een zelf te definiëren URL.
Regel 18 t/m 20
$oIdeal->setAmount('24.99');
$oIdeal->setOrderId('200900000001');
$oIdeal->setOrderDescription('Webshop bestelling.');
Hier geef je het order bedrag in EURO's, een uniek orderID en een omschrijving op. Deze gegevens worden tijdens het afreken proces weergegeven.
Regel 26
echo '<p>Uw bestelling direct afrekenen!</p>' . $oIdeal->createForm();
Met $oIdeal->createForm() wordt het iDEAL Lite formulier gegenereerd op basis van de verzamelde gegevens. Ook wordt automatisch de benodigde HASHCODE berekend. Er wordt een SUBMIT-knop getoond waarmee de bezoeker de transactie kan starten.
finish.php
In het voorbeeld gebruik ik 1 pagina om alle mogelijke statussen (SUCCES, CANCEL of ERROR) af te vangen. Je kunt dit script natuurlijk verder uitbreiden, maar bedenk dat de terugkoppeling ook rechtstreeks ingetypt had kunnen worden. Het resultaat is dus onbetrouwbaar. Ik raad dan ook niet aan om "belangrijke routines" aan de ontvangen status te verbinden.
| « iDEAL Lite Demonstratie | iDeal Lite Test Procedure » |
