Ideal betalingen verwerken in database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sander Vermeer

Sander Vermeer

20/06/2016 09:12:26
Quote Anchor link
Beste leden van PHP Hulp,

Afgelopen week heb ik een Ideal koppeling van de ING geinstalleerd op mijn website. De betaling verloopt prima, na de betaling wordt de gebruiker doorgestuurd naar een door mij opgegeven pagina.

Ik wil de betaling die wordt verricht verwerken in mijn database. Momenteel heb ik een onveilige script draaien. Indien de transactie is geslaagd wordt de gebruiker doorgestuurd naar een pagina en deze pagina voert een SQL query uit.

Dit is onveilig, omdat de gebruiker door simpelweg te navigeren naar de pagina deze SQL query ook kan laten uitvoeren.

Ik heb contact opgenomen met de ING en de ING raad mij aan om gebruik te maken van een XML notificatie methode. Maar over de inhoud van dit XML bericht geven ze geen informatie.

Mijn vraag aan jullie is. Hoe kan ik de betalingen op een veilige manier verwerken in mijn database. Indien dat moet met XML, hoe moet ik het XML bericht dat door de ING wordt verzonden ontvangen en verwerken?
 
PHP hulp

PHP hulp

27/11/2024 09:23:17
 
- Ariën  -
Beheerder

- Ariën -

20/06/2016 09:20:03
Quote Anchor link
Sander Vermeer op 20/06/2016 09:12:26:
Ik wil de betaling die wordt verricht verwerken in mijn database. Momenteel heb ik een onveilige script draaien. Indien de transactie is geslaagd wordt de gebruiker doorgestuurd naar een pagina en deze pagina voert een SQL query uit.

Dit is onveilig, omdat de gebruiker door simpelweg te navigeren naar de pagina deze SQL query ook kan laten uitvoeren.

Blijkbaar geven ze dus na de betaling een XML-output die je moet gebruiken als 'callback'. Als hier dus bijvoorbeeld SUCCESS (fictief) in staat, dan moet je de betaling in je database als 'betaald' zetten. Ik denk dat je ergens in een beheerbackend van je iDeal een callback-URL moet invoeren?
 
Sander Vermeer

Sander Vermeer

20/06/2016 09:24:43
Quote Anchor link
- Ariën - op 20/06/2016 09:20:03:
Blijkbaar geven ze dus na de betaling een XML-output die je moet gebruiken als 'callback'. Als hier dus bijvoorbeeld SUCCESS (fictief) in staat, dan moet je de betaling in je database als 'betaald' zetten. Ik denk dat je ergens in een beheerbackend van je iDeal een callback-URL moet invoeren?

Klopt, ik kan in mijn beheerbackend van mijn iDeal een callback-URL invoeren. Deze moet verwijzen naar een XML bestand op mijn website. Deze XML bestand moet ik zelf aanmaken, maar ik heb geen enkel informatie over de inhoud van deze XML bestand
Gewijzigd op 20/06/2016 19:39:56 door Sander Vermeer
 
- Ariën  -
Beheerder

- Ariën -

20/06/2016 20:26:29
Quote Anchor link
Is het niet zo dat deze een XML als content naar je callback URL stuurt? En jij deze zelf moet verwerken?
Ik kan me indenken dat er o.a data zoals een orderID en een betalingsvalidatie wordt meegegeven.

Naar mijn idee kan het iDeal toch niks uitmaken hoe jij die data verwerkt. DUs ik gok dat je het verkeerd begrijpt. maar zonder de handleiding erover te lezen kan ik er niks concreets over zeggen.
Gewijzigd op 20/06/2016 20:27:29 door - Ariën -
 
Sander Vermeer

Sander Vermeer

20/06/2016 20:39:00
Quote Anchor link
- Ariën - op 20/06/2016 20:26:29:
Is het niet zo dat deze een XML als content naar je callback URL stuurt? En jij deze zelf moet verwerken?
Ik kan me indenken dat er o.a data zoals een orderID en een betalingsvalidatie wordt meegegeven.

Naar mijn idee kan het iDeal toch niks uitmaken hoe jij die data verwerkt. DUs ik gok dat je het verkeerd begrijpt. maar zonder de handleiding erover te lezen kan ik er niks concreets over zeggen.

In de iDeal omgeving kan ik twee notificatie methoden kiezen. De eerste is email. Als ik deze selecteer krijg ik na elke betaling een email bericht van dat er een betaling is verricht.

De tweede is XML. Voor XML moet URL`s voor de volgende onderdelen opgeven:
Quote:
Notificatie URL:
Succes URL:
Fout URL:
Annuleer URL:
Service URL:


Het gaat mij hier voornamelijk om de Succes URL. Dit moet een URL zijn naar een XML pagina op mijn website. Maar over de eventuele inhoud van de XML pagina vertellen ze niks.

Het verwerken is geen probleem, dat regel ik wel. Het probleem is dat ik de XML data van de ING niet ontvang. Ze versturen het wel wellicht, maar ik weet niet hoe ik dat moet ontvangen.

Toevoeging op 20/06/2016 20:45:06:

Door op CTRL - F binnen de handleiding te drukken en te zoeken op XML krijg ik de volgende resultaten over XML:

1.
Quote:
Kies nu bij het veld ‘Notificatie’ de gewenste methode (XML, E-mail, of geen).


2.
Quote:
XML: de acceptant ontvangt na iedere afgeronde transactie een XML-bericht. Dit bericht wordt
verstuurd naar een zelf te bepalen URL. Deze URL dient u in te stellen in het veld ‘Notificatie URL’ (ook op het tabblad Configuratie, dan wel Beveiliging).
Gewijzigd op 20/06/2016 20:45:45 door Sander Vermeer
 
- Ariën  -
Beheerder

- Ariën -

20/06/2016 20:58:18
Quote Anchor link
Jij ontvangt dus een XML-bericht. Dus lees je GET en POST requests eens uit.
 
Sander Vermeer

Sander Vermeer

20/06/2016 21:16:53
Quote Anchor link
- Ariën - op 20/06/2016 20:58:18:
Jij ontvangt dus een XML-bericht. Dus lees je GET en POST requests eens uit.


Ik kan een URL invoeren. Maar ik heb het niet voor elkaar kunnen krijgen om daar een XML bericht te ontvangen.

Ik probeer om met Firebug de GET en POST requests te lezen, maar zodra ik voor de betaling wordt verzonden naar de site van iDeal wordt Firebug geblokkeerd. Als ik terug wordt gestuurd naar mijn eigen site dan opent Firebug weer, maar dan kan ik daar geen GET en POST requests meer in zien.
 
- Ariën  -
Beheerder

- Ariën -

20/06/2016 21:19:21
Quote Anchor link
Of je slaat de requests even op in een tekst-bestand?
 
Sander Vermeer

Sander Vermeer

20/06/2016 21:21:38
Quote Anchor link
- Ariën - op 20/06/2016 21:19:21:
Of je slaat de requests even op in een tekst-bestand?

Hoe kan ik dat doen?
 
- Ariën  -
Beheerder

- Ariën -

20/06/2016 21:30:20
 
Ivo P

Ivo P

21/06/2016 01:12:55
Quote Anchor link
Aan firebug heb je hier helemaal niets:

met firebug krijg je extra info over de aanroepen die je browser doet naar de server.

Maar in dit geval is het anders:

op een gegeven moment verwijst jouw server de browser van de bezoeker door naar de iDeal omgeving.
Daar gebeurt iets met een betaling. (of niet als de klant toch afziet van betalen)

Laten we even uitgaan van "hij betaalt" en dat dat goed ging.


Dan roept DE SERVER van de iDeal omgeving een (geheime) url aan op jouw server. Daarbij wordt een of ander id meegestuurd waarmee jij de klant/order herkent, en daarnaast waarschijnlijk iets als "success".

direct daarna geeft die iDeal server de browser van de bezoeker een http header met de melding "ga eens kijken op de url "webshop.nl/success.html"
(of er volgt een tussenscherm met een knop om terug te gaan naar de webshop).

Op het moment dat de bezoeker op /success.html aankomt, weet de server al dat orderid=12345 betaald was. Dat was immers al doorgegeven door de iDeal server.

Je ziet dat die melding dus op de achtergrond uitgevoerd wordt. Dat voorkomt dat de klant zelf kan rotzooien met "ik heb betaald" meldingen of door gewoon naar /success.html te navigeren.

En aan firebug heb je daarom niets: het is niet de browser die iets doet.

Je kunt dus inderdaad niet zien bij het testen wat er gebeurt. Daarom is het dumpen van $_GET of $_POST in een file wel handig
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.