Wanneer u producten of diensten verkoopt op het internet dan kunt u uw klanten verschillende betaalmethoden aanbieden:
- Betalen dmv een overschrijving
- Betalen met een creditcard
- Betalen via Paypal
- Betalen via het internet
Voor de toepassing etikettenprinten.nl bieden wij de eerste vorm, overschrijving, en de laatste vorm, betalen via internet, aan. Het voordeel voor de klant van internet-betalen is dat zijn betaling zeer snel verwerkt wordt. Zodra de betaling binnen is, kan de klant de adressen op etiketten printen. Het voordeel voor ons is dat we online-betalingen automatisch in onze boeken kunnen verwerken. Facturen worden automatisch naar de klant en de boekhouding gestuurd en de BTW aangifte wordt automatisch bijgewerkt.
Maar daar hebben we wel wat voor moeten doen. We hebben voor de internet-betalingen een contract afgesloten met de Postbank. Daarnaast hebben we onze webwinkel aangepast op basis van iDEAL.
In deze bijdrage laten wij zien hoe wij iDEAL Advanced voor java hebben geintegreerd, welke problemen we zijn tegengekomen, en hoe wij die hebben opgelost. Misschien helpen onze ervaringen anderen die voor eenzelfde keuze staan. Wilt u deze informatie op uw eigen computer opslaan? Dat kan, want we hebben deze bijdrage als pdf-document bijgevoegd.
Wat is iDEAL: iDEAL is een betaalstandaard voor veilige en directe betalingen over het internet. Verschillende banken werken met iDEAL waaronder de Postbank, ING, de Rabobank, ABN en Fortis. iDEAL is gebaseerd op dezelfde technieken als internetbankieren, en is daardoor net zo veilig. Bovendien gaan betalingen op dezelfde wijze als internetbankieren, waar de klant al vertrouwd mee is.
Verschillende banken bieden verschillende methoden aan voor die integratie. De Postbank geeft 2 varianten: iDEAL basic en iDEAL advanced. Wij hebben de variant iDEAL advanced gebruikt.
Het integreren van iDEAL basic met een webwinkel is het eenvoudigst, maar geeft minder mogelijkheden voor het automatisch afhandelen van betalingen. iDEAL advanced integreren is lastiger en vraagt technische kennis. Wanneer u ervaren bent in het ontwikkelen van web-toepassingen kunt u zonder probleem iDEAL advanced gebruiken. Wanneer u deze ervaring niet heeft, dan zult u iemand moeten inhuren die die ervaring wel heeft.
Bekijk ter verdere verduidelijking van het verschil tussen iDEAL basic en iDEAL advanced de stappen van het betalingsproces:
| Actie | Omgeving |
| 1. Bestelling plaatsen | Klant |
| 2. Bank selecteren | Klant/Bank |
| 3. Klant betaalt | Bank |
| 4. Betaling wordt verwerkt | Klant/Bank |
| 5. Melding betaling ontvangen | Klant |
Het verschil tussen iDEAL basic en iDEAL advanced zit in de stappen 2. en 4. Bij iDEAL basic regelt de bank deze stappen, bij iDEAL advanced zorg de ondernemer hier zelf voor.
Weet u niet wat u moet kiezen? Kies dan eerst voor iDEAL basic. U kunt altijd later nog kiezen voor iDEAL advanced, bijvoorbeeld als u merkt dat u zoveel via het internet verkoopt, dat u dat niet meer met de hand wilt bijwerken.
Start iDEAL: Om iDEAL te gebruiken meldt u zich bij de bank waar u een zakelijke rekening heeft. Kijk op www.ideal.nl, onderdeel Zakelijk – helemaal onderaan, wanneer u de informatie niet snel op de website van uw bank kunt vinden.
Wij ontvingen na aanmelding de inloggegevens voor de iDEAL test-site, ook wel het dashboard genoemd.
Integreren iDEAL – java advanced Postbank: Wanneer u iDEAL niet zelf gaat installeren dan zijn deze en de volgende secties misschien minder interessant voor u. Wanneer u iDEAL wel zelf gaat installeren, maar via een andere bank, of via PHP, dan kunnen deze en de volgende secties het algemene begrip vergroten en helpen bij troubleshooten.
Op de idealtest-site staat een zip-download-bestand met daarin bestanden die gebruikt kunnen worden voor de installatie van iDEAL advanced. Het gaat om een handleiding, een referentiegids (achtergrond informatie), een demoshop (bij java een war-bestand), de sleutels mpi_ssl.truststore en mpi.xml.truststore en het configuratie bestand thinmpi.properties.
Voor het integreren van iDEAL advanced hebben wij zelf een scherm ontwikkeld waarop klanten kunnen kiezen voor een internet-betaling. Wij hebben met de commando’s in de handleiding een eigen paar sleutels aangemaakt en het configuratie-bestand gewijzigd. Vervolgens hebben wij functionaliteit ontwikkeld voor het automatisch verwerken van betalingen. Voor etikettenprinten.nl werken wij met credits. Als een betaling is voldaan worden automatisch de credits van de klant verhoogd en de factuur naar de klant en de boekhouding gestuurd. De voorbeeldschermen die meegeleverd worden in het download-bestand waren een goede leidraad voor het ontwikkelen van de eigen functionaliteit.
Het maken van sleutels: De beveiliging voor de betaling is geregeld met de zgn sleutels. Deze techniek is gebaseerd op de cryptografie uit de wiskunde. Sleutels verschijnen in paren. Er zijn steeds 2 verschillende sleutels die bijelkaar horen. Twee partijen kunnen alleen met elkaar praten als zij ieder een unieke sleutel uit hetzelfde paar bezitten. Met zo’n sleutel kunnen ze berichten naar de andere partij versleutelen, d.i. onleesbaar maken voor onbevoegden, en versleutelde berichten van de andere partij ontsleutelen, d.i. weer leesbaar maken. Sleutels zijn codes, bestaande uit cijfers, letters en lettertekens. Eenzelfde sleutel kan niet gebruikt worden voor versleutelen en ontsleutelen.
Bij de integratie van iDEAL advanced zijn 2 paren sleutels betrokken. Het ene paar zit in het download bestand, het zijn de sleutels in de bestanden mpi_ssl.truststore en mpi_xml.truststore. Daarnaast moet een webwinkelier zelf een paar sleutels genereren. De handleiding geeft duidelijk aan met welke commando’s dit paar sleutels gegenereerd kan worden. Hiervoor is wel speciale software nodig. De referentie-gids legt in detail uit in welke communicatie welk paar sleutels wordt gebruikt. Het resultaat zijn 2 bestanden, 1 bestand eindigend op .keystore en 1 bestand eindigend op .cer. Het bestand eindigend op .cer bevat de sleutel die doorgegeven moet worden aan iDEAL. Het bestand eindigend op .keystore wordt verwerkt in de applicatie. Dus 2 sleutels – 1 van ieder paar – worden beheerd door uw bank en de twee overgebleven sleutels – de andere van ieder paar – integreert u met uw applicatie, in dit geval de WAR-file.
Aanpassen van het configuratie-bestand: In de handleiding wordt uitgelegd hoe de velden ingevuld moeten worden. In de handleiding stond niet duidelijk vermeld wat ingevuld moest worden in het veld ideal.thinmpi.certificateAlias=?. Dit moet myprivatekey zijn, de sleutel uit het paar sleutels dat de webwinkelier zelf gegenereerd heeft, en dat niet is toegevoegd aan de testomgeving van iDEAL.
Het packagen van de web-applicatie: de applicatie wordt gepacked in een war-bestand. Wanneer uw applicatie alleen uit een war-bestand – bijvoorbeeld applicatie.war – bestaat, pak dit bestand dan uit met:
# jar -xvf applicatie.war
U ziet nu een directory structuur ontstaan beginnend bij applicatie
U plaatst de volgende bestanden in het war bestand:
- owner.keystore
- mpi_xml.truststore
En u plaatst deze bestanden in de directory applicatie.war/ of in de directory applicatie.war/WEB-INF/classes. Daarna recreeert u de applicatie met het commando:
#jar -cvf applicatie.war applicatie/*
De handleiding was bijzonder onduidelijk over welke bestanden toegevoegd moeten worden. In de praktijk lijken deze 2 bastanden voldoende.
Wanneer uw applicatie een enterprise applicatie is, dwz uw bestand eindigt op ear, bijv. applicatie.ear, dan kunt u het war bestand daaruit extraheren met het commando:
# jar -xvf applicatie.ear
Een van de bestanden eindigt op .war. Voor dit bestand volg de stappen uit het begin van deze paragraaf. Merk op dat de betalingen volledig in het .war bestand wordt geregeld. U hoeft dus niets te wijzigen in uw enterprise-server – bijv JBOSS – en u de betaling op de development server testen en vervolgens de applicatie op een productie server installeren zonder dat u nieuwe sleutels hoeft te genereren of te uploaden.
Testen: Als laatste stap moet de nieuwe toepassing getest worden met test-transacties. Voor een test-transacties doet u achtereenvolgens een betaling van 1, 2, 3 …. 7 euro naar de testomgeving van iDEAL. De iDEAL testomgeving reageert op deze test bedragen, soms met een acceptatie en soms met een weigering. Wanneer deze testen niet correct worden beantwoord dan kan het zijn dat u de verkeerde bedragen overmaakt. In ons geval was niet 1 euro overgemaakt, maar 10 eurocent. En de 2 euro was 20 cent. Het overzicht scherm op het dashboard kunt u controleren welke bedragen zijn binnengekomen.
Helpdesk: Wanneer de installatie niet lukt, dan biedt de helpdesk wellicht uitkomst. De helpdesk is goed bereikbaar en deskundig in het advies. Voor PHP installaties is er een gemeenschap OSEcommerce met heel veel informatie over online betaalsystemen.
Tot slot: Wat zijn uw ervaringen met het integreren van uw webwinkel met iDEAL? Of heeft u vragen over de integratie die we niet beantwoord hebben? Laat het weten met een berichtje!
Sophie Fischer
BV Sponiza !T
www.sponiza.nl
www.etikettenprinten.nl