iDEAL Simulator

Ontwikkeling van iDEAL plugins en iDEAL scripts

Wij ontwikkelen o.a. PHP scripts en plugins, zodat webmasters online betalingen kunnen ontvangen in tal van opensource pakketten. Bij de ontwikkeling van deze scripts houden proberen we waar mogelijk rekening te houden met de volgende zaken:

  • We proberen betaalsysteem-afhankelijke-scripts en applicatie-afhankelijke-scripts zo veel mogelijk van elkaar te scheiden.
    - Zo kunnen we met minimale aanpassingen meerdere betaalmethoden/ideal-varianten werkend maken binnen dezelfde applicatie.
    - Na een applicatie-update hoeven we alleen de applicatie-afhankelijke-scripts bij te werken; de betaalsysteem-afhankelijke-scripts blijven ongemoeid.
     
  • We proberen bronbestanden van de applicatie zo min mogelijk aan te passen.
     
  • We proberen de installatie van de scripts zo eenvoudig mogelijk te houden.

Betaalmethodes

Momenteel richten wij ons bij de ontwikkeling van plugins/scripts alleen op iDEAL; gezien dit de populairste online betaalmethode is in Nederland. Onze scripts/plugins voor open source pakketten maken we (waar mogelijk) compatible voor:

Betaalmethode Aanbieder
iDEAL Advanced ING Bank
iDEAL Basic ING Bank
iDEAL Checkout AssurePay
iDEAL Lite Rabobank
iDEAL Professional Rabobank
iDEAL Professional Mollie
iDEAL Zelfbouw ABN Amro Bank

Bestand indeling

Bij het downloaden van een van onze scripts/plugins vind je in het ZIP bestand o.a. de map "public_html". Deze map staat symbool voor de hoofdmap van jouw domein in jou FTP omgeving (public_html, httpdocs, htdocs of www). Binnen deze map tref je tal van mappen en bestanden aan die je moet uploaden naar jou FTP omgeving. Bij het uploaden zullen bepaalde mappen automatisch samenvoegen met bestaande mappen op je FTP omgeving. Dit is bewust zo gedaan zodat alle bestanden op de juiste plek belanden binnen je applicatie.

Bestand: /public_html/ideal_install.php
Bij elke plugin tref je in de hoofdmap het bestand 'ideal_install.php' aan. Dit script controleert o.a. alle bestanden, schrijfrechten en voert enkele queries uit in de database. Dit script hoor je 1x uit te voeren (Open in je browser: http://www.domein.nl/ideal_install.php). Na succes kun je het bestand weer verwijderen van je FTP omgeving.

Map: /public_html/ideal/
Ook tref je in de hoofdmap de map /ideal/ aan. Deze map bevat alle betaalsysteem-afhankelijke-scripts.
- In de map /ideal/library/ vind je een bestand met als extensie ".cfg.php". Dit is het algemene configuratie bestand van de betaalmethode dat je zelf moet vullen met de gegevens van jou account (Waar mogelijk is dit bestand gevuld met de gegevens van een standaard test account).
- Sommige betaalsystemen maken gebruik van een cache (o.a. iDEAL Professional). Maak in dat geval de map /ideal/library/cache/ (en alle onderliggende bestanden) schrijfbaar.
- In geval van iDEAL Professional wordt /ideal/library/ssl/ gebruikt voor je certificaten.

Overige mappen/bestanden
Overige mappen/bestanden die je aantreft in zijn applicatie specifiek. Bij het uploaden worden zij automatisch samengevoegd met bestaande mappen van de applicatie.

Database indeling

We gebruiken een database tabel met de naam "[prefix]transactions" waarin we alle informatie over de transactie opslaan. De betaalsysteem-afhankelijke-scripts maken ALLEEN gebruik van deze tabel bij het starten en verwerken van de betaling. Zo hoeven deze scripts verder geen kennis te hebben van de betreffende applicatie.

id Een unieke record referentie (AUTO INCREMENT)
order_id Het ordernummer (doorgaans door de applicatie bepaald)
order_code Een random code om (i.c.m. order_id) toegang te krijgen tot de order.
transaction_id Het Transactie ID van de bestelling (ontvang je tijdens de TransactionRequest).
transaction_code Een random code om (i.c.m. transaction_id) toegang te krijgen tot de order (Wordt gebruikt door het betaal systeem).
transaction_method De gebruikte betaalmethode/gateway.
transaction_date Datum waarop de transactie informatie is bijgewerkt.
transaction_amount Het transactie bedrag.
transaction_description Omschrijving van de transactie (ziet de klant doorgaans tijdens de besteling, en later op het bankafschrift).
transaction_status De huidige status van de bestelling. Mogelijke statussen (afhankelijk van betaalmethode): SUCCESS, PENDING, OPEN, CANCELLED, EXPIRED, FAILURE.
transaction_url Wanneer de transactie status 'OPEN' is, kan men naar deze URL om de betaling alsnog af te ronden.' (Zolang de betaling niet is verlopen)
transaction_payment_url URL om terug te keren naar de "kies een (andere) betaalmethode"-pagina. Indien deze pagina in de betreffende applicatie niet bestaat, zal deze NULL blijven.
transaction_success_url URL om terug te keren naar de "uw betaling is voltooid"-pagina. Indien deze pagina in de betreffende applicatie niet bestaat, zal deze NULL blijven.
transaction_pending_url URL om terug te keren naar de "uw betaling is in behandeling"-pagina. Indien deze pagina in de betreffende applicatie niet bestaat, zal deze NULL blijven.
transaction_failure_url URL om terug te keren naar de "uw betaling is geannuleerd"-pagina. Indien deze pagina in de betreffende applicatie niet bestaat, zal deze NULL blijven.
transaction_params In sommige applicaties heb je bepaalde parameters die bij de transactie opgeslagen moeten worden. In dit veld kun daarom soms een JSON-formatted array verwachten. Deze parameters zijn alleen bedoeld voor de applicatie-afhankelijke scripts.
transaction_log Een mini logboek met o.a. informatie van het betaalsysteem.