iDeal Lite XML-terugmeldscript
Rabo iDeal Lite biedt de mogelijkheid de status van een betaling 'terug te melden' met een XML-script. Wie heeft voor mij een eenvoudig scriptje om het XML-bericht mee af te vangen?
Anwoord van de Rabo op mijn vraag om een voorbeeldscript is als volgt:
Quote:
Geachte relatie, De XML terugkoppeling kunt u in het iDEAL Dashboard instellen in plaats van een bevestiging per email. Beide terugkoppelingen zijn niet beveiligd. U dient zelf handmatig de betaling in het iDEAL Dashboard te controleren op de juiste eindstatus. Er vindt geen xml terugkoppeling plaats als uw klant het betaalvenster al bij de bank afsluit of de statusnavraag niet leidt tot een eindstatus. Vanwege deze beperkingen is de xml terugkoppeling niet opgenomen in de handleiding en geeft de Rabobank ook geen verdere ondersteuning aan deze optie. Het formaat van het XML bericht is als volgt:
?xml version="1.0" encoding="UTF-8"?\n Notification xmlns="http:⁄⁄www.idealdesk.com⁄Message" version="1.1.0"\n createDateTimeStamp@TQL:exists(create_time) ? create_time : ""@⁄createDateTimeStamp\n transactionID@TQL:ext_txn_id@⁄transactionID\n purchaseID@TQL:tracking_nbr@⁄purhaseID\n status@TQL:result_text@⁄status\n Met vriendelijke, Rabo iDEAL Desk
?xml version="1.0" encoding="UTF-8"?\n Notification xmlns="http:⁄⁄www.idealdesk.com⁄Message" version="1.1.0"\n createDateTimeStamp@TQL:exists(create_time) ? create_time : ""@⁄createDateTimeStamp\n transactionID@TQL:ext_txn_id@⁄transactionID\n purchaseID@TQL:tracking_nbr@⁄purhaseID\n status@TQL:result_text@⁄status\n Met vriendelijke, Rabo iDEAL Desk
Dat was dus niet het antwoord waar ik naar zocht. Ik zoek dus een scriptje om het verzonden XML-bericht mee af te handelen. Wie kan me op het juiste spoor zetten?
Paul
Simplexml
Laad hiermee de xml in en controleer dan of de terugkoppeling aanwezig is, zo ja, tonen en betaling voltooid.
Laad hiermee de xml in en controleer dan of de terugkoppeling aanwezig is, zo ja, tonen en betaling voltooid.
if (isset($_POST)) {
// er is gepost, post-gegevens kan een xml-bericht bevatten.
// Afhandelen eventueel XML-bericht.
}
else {
// er is niet gepost, dus is er geen XML-bericht maar alleen een pagina-aanroep.
}
Dat scriptje ziet echter niet eens dát er een XML-bericht gestuurd is. Zo'n XML-bericht is uiteindelijk toch ook gewoon POST-data?
Wat is daar het resultaat van? Mogelijk wil je de bron code bekijken of htmlspecialchars() om de file_get_contents() gooien.
Paul van Eck op 21/01/2014 08:59:47:
Dat scriptje ziet echter niet eens dát er een XML-bericht gestuurd is. Zo'n XML-bericht is uiteindelijk toch ook gewoon POST-data?
Laat ik vooropstellen dat ik de rabobank ideal implementatie niet ken, dus misschien sla ik de plank volledig mis. Echter, over het algemeen zal je zelf een call moeten maken naar de ideal provider (rabobank in dit geval dus) waarbij de content van de response de xml (of json) content is. Het is dus geen push vanuit hun, maar een pull vanuit jou. De meeste providers zullen een url hebben waarop je status aanvragen kunt doen voor aangemaakte betalingen. Die url zul je moeten aanroepen (via een curl request bijvoorbeeld) en de body uitlezen.
Gewijzigd op 21/01/2014 10:05:34 door Erwin H
Als het inderdaad een pull-actie van mij zou moeten zijn dan is alles verklaard. Echter de rabo vraagt bij de instellingen aan te geven of je terugmelding wilt via email óf via xml, en in het laatste geval moet je de url van het xml-afhandel-script opgeven. Dat riekt naar een push toch..? Vergelijkbaar met hoe PayPal het ook doet.
Afijn, dank allen zover voor de input. Ik speur en test verder.
Paul
Het komt namelijk regelmatig voor dat een klant betaalt met iDEAL en daarna het iDEAL-venster van de bank sluit. Is de klant nog bezig met betalen, dan is er nog geen eindstatus en wordt die kennelijk evenmin door Rabobank teruggekoppeld (waar je eigenlijk eerder zoiets als "transactie in behandeling" zou verwachten).
Erwin H op 21/01/2014 10:05:07:
Laat ik vooropstellen dat ik de rabobank ideal implementatie niet ken, dus misschien sla ik de plank volledig mis. Echter, over het algemeen zal je zelf een call moeten maken naar de ideal provider (rabobank in dit geval dus) waarbij de content van de response de xml (of json) content is. Het is dus geen push vanuit hun, maar een pull vanuit jou. De meeste providers zullen een url hebben waarop je status aanvragen kunt doen voor aangemaakte betalingen. Die url zul je moeten aanroepen (via een curl request bijvoorbeeld) en de body uitlezen.
Dat is niet helemaal juist. De betere PSP's ondersteunen voor iDEAL-transacties zowel een push als een pull. Je kunt één van beide of beide gebruiken. De push, met een POST van de PSP naar een geheime URL, is zelfs het veiligst omdat de client helemaal buiten beeld blijft en je het verkeer tussen je server en die van de PSP helemaal kunt dichttimmeren (met SSL, hash-ID's en IP-controles bijvoorbeeld).
Bij deze implementaties heb je drie URL's: een report-URL voor de push, een check-URL voor de pull en een return-URL voor de client na het afronden van de betaling. Keert de client terug naar de return-URL, dan roep je van daaruit verborgen de check-URL aan voor een controle van de betaling. De report-URL is dan echter al aangeroepen, als je ook de push gebruikt, zodat een pull via de check-URL vaak overbodig is.
Paul
Paul van Eck op 21/01/2014 10:38:42:
PayPal, IcePay, Mollie, allen werken prima met xml-push en -pull. Maar met de Lite/Basic varianten van de banken blijft het tobben.
Mollie iDEAL Lite/Basic overstapservice misschien een optie? Als het echt zo veel makkelijker is...
Dit forum is toch niet bedoeld voor reclame..?
Afijn, IK ben niet degene die uiteindelijk bepaalt welke bank moet worden aangesloten aan de shops, dat bepaalt mijn klant. En als die kiest voor de Rabo Lite versie, dan wil ik graag de beste oplossing daarvoor bieden. Vandaar dat mijn topic specifiek over die iDeal-versie (Lite/Basic) gaat.
groet, Paul
Paul van Eck op 21/01/2014 11:00:16:
Michael,
Dit forum is toch niet bedoeld voor reclame..?
Afijn, IK ben niet degene die uiteindelijk bepaalt welke bank moet worden aangesloten aan de shops, dat bepaalt mijn klant. En als die kiest voor de Rabo Lite versie, dan wil ik graag de beste oplossing daarvoor bieden. Vandaar dat mijn topic specifiek over die iDeal-versie (Lite/Basic) gaat.
groet, Paul
Dit forum is toch niet bedoeld voor reclame..?
Afijn, IK ben niet degene die uiteindelijk bepaalt welke bank moet worden aangesloten aan de shops, dat bepaalt mijn klant. En als die kiest voor de Rabo Lite versie, dan wil ik graag de beste oplossing daarvoor bieden. Vandaar dat mijn topic specifiek over die iDeal-versie (Lite/Basic) gaat.
groet, Paul
Ik zie er geen reclame in hoor. Ik geef alleen aan dat je eenvoudig over kunt van rabo naar mollie.
De terugmelding is beperkt en volgens hun eigen zeggend dus ook al onbetrouwbaar. Lite is eigenlijk alleen geschikt voor kleine shops waarbij de eigenaar regelmatig inlogt bij zijn bank om de transacties te zien.
Het is denk ik vooral een kosten aspect: die kleine shops hoeven dan niet voor een uitgebreide functionaliteit te betalen.
mi. gaat dat wat mank, als je juist als bank kosten maakt om je product aan te passen tot redelijk onbruikbaar. (neem aan dat ze sowieso het normale pakket eerst gemaakt hebben) Maar het zal wel bedoeld zijn als soort van free-be om de klant straks naar het grote pakket te laten gaan.
Je kan dit oa afhandelen met SimpleXML