iDEAL Simulator

iDEAL Professional - Implementatie handleiding

Deze handleiding dient als hulpmiddel bij de implementatie van iDEAL Professional (en iDEAL Advanced, iDEAL Zelfbouw). Ter demonstratie van iDEAL Professional maken we uiteraard gebruik van de iDEAL Simulator omgeving.

Een werkend voorbeeld van iDEAL Professional is te vinden op:
http://www.ideal-simulator.nl/examples/ideal-professional-example/

Voorbeeld PHP code en classes die gebruikt worden in dit document zijn ook te downloaden op:
http://www.ideal-simulator.nl/downloads/ideal-professional-example.zip

IDEAL Professional werkwijze

De implementatie van iDEAL Professional bestaat uit 4 stappen.

We gebruiken enkele PHP classes (Ontwikkeld door Martijn Wieringa) die je helpen bij de communicatie met de iDEAL Server. Deze classes zijn, samen met voorbeeld code, te downloaden op http://www.ideal-simulator.nl/downloads/ideal-professional-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.

De bestanden step1.php, step2.php en step3.php zijn een compleet werkend voorbeeld van een iDEAL Professional implementatie. De bestanden issuer_request.php, transaction_request.php en status_request.php zijn de ‘uitgeklede versies' die enkel de strikt noodzakelijke code bevatten.

ideal.cfg.php

Dit bestand bevat de algemene configuratie van je iDEAL account. Deze instellingen worden standaard ingeladen, maar kunnen worden overschreven vanuit je script.

ideal.cls.php

Dit bestand laad de algemene configuratie (ideal.cfg.php) en de juiste iDEAL Classes (afhankelijk van je PHP versie).

ideal.cls.4.php (voor PHP 4) en ideal.cls.5.php (voor PHP 5)

Deze bestanden bevat de class-definities die je helpt bij de communicatie met de iDEAL server.

issuer_request.php

Dit bestand vraagt de lijst met banken op.

Regel 7

$aIssuerList = $oIssuerRequest->doRequest();

Hier wordt de lijst met beschikbare banken opgevraagd. Je ontvangt een array terug, vergelijkbaar met: array('0001' => 'Bank 1', '0002' => 'Bank 2', ...).

Regel 9 t/m 12

if($oIssuerRequest->hasErrors())
{
       print_r($oIssuerRequest->getErrors());
}

Detecteer of er fouten zijn ontstaan tijdens het uitvoeren van de aanvraag. Indien dat het geval is, moet je deze afhandelen. Het resultaat van de aanvraag is dan ook niet betrouwbaar.

transaction_request.php

Dit bestand vraagt een nieuwe transactie aan.

Regel 25

$oTransactionRequest->setIssuerId($sIssuerId);

Geef aan welke bank (issuerID) de bezoeker heeft gekozen om de betaling af te handelen. Deze waardes worden opgevraagt bij de issuer_request.php. Denk er om dat je eventuele voorloop nullen behoud!!

Regel 26

$oTransactionRequest->setEntranceCode($sEntranceCode);

Gebruik een unieke 'EntranceCode'. Deze fungeert als een soort van wachtwoord bij je TransactionID. In de laatste stap wordt de combinatie TransactionID/EntranceCode gebruikt om een transactie te identificeren in bijv. de database.

Regel 27

$oTransactionRequest->setReturnUrl($sReturnUrl);

Bepaal de URL van het script dat de status van de transactie moet controleren. Voer deze URL in als ReturnUrl. De bezoeker wordt na de betaling terug gestuurd naar deze URL.

Regel 30

$sTransactionId = $oTransactionRequest->doRequest();

Hier plaats je een verzoek voor een nieuwe transactie. Indien er geen fout optreed, zal $sTransactionId een nieuwe unieke TransactionID.

Advies is om hier de TransactionID i.c.m. je EntranceCode op te slaan in je database.

Regel 42

$oTransactionRequest->doTransaction();

Indien het transactie-verzoek is geslaagd, wordt de bezoeker doorverwezen naar de ontvangen URL.

Note: In het voorbeeld is de regel vervangen door een HTML-link waarop de bezoeker zelf moet klikken t.b.v. de demonstratie.

status_request.php

Dit bestand vraagt de status van een transactie op.

Regel 12 en 13

$sTransactionId = (empty($_GET['trxid']) ? '' : $_GET['trxid']);
$sEntranceCode = (empty($_GET['ec']) ? '' : $_GET['ec']);

Hier wordt de TransactionID en EntranceCode opgevraagt uit de URL. Met deze gegevens kun je eventueel in je database controleren of de TransactionID geldig is en de betreffende order weer opzoeken.

Regel 20

$sStatus = $oStatusRequest->doRequest();

Hier vraag je de status van de transactie op. Indien er geen fout optreed, zal $sStatus de waarde "SUCCESS", "CANCELLED", "FAILURE", "OPEN" of "EXPIRED" bevatten.

Desgewenst kun je de gevonden transactie status weer opslaan in je database.

« iDEAL Professional Demonstratie iDeal Professional Foutmeldingen »