Re: ideal 3.3.1

31
Ik ben ook bezig met het omzetten naar 3.3.1 (beetje laat, maar goed :P).

Ik gebruik PHP en maak gebruik van de classes die standaard bij https://www.ideal-checkout.nl/sepa worden aangeboden. Nu ben ik zover dat ik een DirectoryRequest heb opgebouwd, ondertekend en al. Nu krijg ik een DirectoryResponse terug, alleen deze is niet valid aangezien de fingerprint/keyinfo niet gelijk is aan die van mij in mijn request.

Ik heb het de helpdesk van de Rabo gevraagd, maar die zijn niet zo snel..
Iemand een verklaring voor mijn probleem?

(Ik krijg in de response wel al een lijst met alle banken terug, in de XML dan, ik kan hem verder niet uitlezen volgens de classes omdat die niet valid is)...

Alle input is welkom!

Re: ideal 3.3.1

32
naar mijn weten krijg je alleen een lijst met banken terug als alles goed gegaan is.
De fingerprint is ook anders want de bank en jij gebruiken beide een ander certificaat, om te signen.
Dus de aanvraag en response xml moet je niet op basis van fingerprint vergelijken volgens mij.

Re: ideal 3.3.1

33
fhus schreef:naar mijn weten krijg je alleen een lijst met banken terug als alles goed gegaan is.
De fingerprint is ook anders want de bank en jij gebruiken beide een ander certificaat, om te signen.
Dus de aanvraag en response xml moet je niet op basis van fingerprint vergelijken volgens mij.
fhus, bedankt voor je reactie. Weet niet goed waarom er dan in de standaard class een verifyMessage in staat, maar als ik deze uitzet kan ik daarna zonder pardon de koppeling maken. IN het iDeal dashboard staat ook de transactie, dus in mijn ogen werkt het nu!

Alvast bedankt voor je support!

Re: ideal 3.3.1

34
Sjunkie schreef:Weet niet goed waarom er dan in de standaard class een verifyMessage in staat, maar als ik deze uitzet kan ik daarna zonder pardon de koppeling maken.
Logisch: als je de paspoortcontrole uitschakelt, kan iedereen zonder geldig paspoort het land in...
StoreCore.io
Advertentie

Met Shopify maak je zelf je eigen webwinkel dankzij meer dan honderd thema’s en de complete appstore. Shopify sluit ook goed aan op dropshippers. De software is technisch volledig SEO-geoptimaliseerd en biedt alle sociale media-integraties. Meer info op Shopify.com.

Re: ideal 3.3.1

36
Sjunkie schreef:fhus, bedankt voor je reactie. Weet niet goed waarom er dan in de standaard class een verifyMessage in staat, maar als ik deze uitzet kan ik daarna zonder pardon de koppeling maken. IN het iDeal dashboard staat ook de transactie, dus in mijn ogen werkt het nu!

Alvast bedankt voor je support!
Het idee is dat je de berichten die terugkomen valideert met het certificaat van je bank. Die is openbaar en kan je gebruiken. Mijn SlmIdealPayment module bevat in ieder geval het certificaat van de Rabobank.

Re: ideal 3.3.1

37
NOP Webdesign,

bestaat er een kans dat ik jouw code ergens kan downloaden? Ik hik nl. tegen hetzelfde aan en ben al paar dagen bezig dat ***** iDeal van de Rabo aan de praat te krijgen.

Alvast bedankt,


Cees
U verzint het, Cornelis Digitaal maakt het en laat het voor u werken!

Re: ideal 3.3.1

38
Enorm bedankt fhus, voor je voorbeeldcode! Gister een hele dag zitten tobben en kreeg het niet voor elkaar. Vanochtend had ik het met jouw tip direct in orde 8)

Zo frustrerend dat je niet op een centraal punt voorbeelden kunt downloaden. Blijf dat toch raar vinden.

Voor de .NET mensen onder ons, wil ik eventueel mijn testproject wel beschikbaar maken. Moet alleen de responseberichten nog valideren.

Re: ideal 3.3.1

39
connectcase schreef:NOP Webdesign,

bestaat er een kans dat ik jouw code ergens kan downloaden? Ik hik nl. tegen hetzelfde aan en ben al paar dagen bezig dat ***** iDeal van de Rabo aan de praat te krijgen.

Alvast bedankt,

Cees
Is je code php of .net? Voor php kan je hier kijken hoe het werkt. Voor .net moet je even GekkeTed vragen.

Re: ideal 3.3.1

41
Je hebt niet een framework nodig hoor (zie hier de documentatie hoe je de code zelf kan configureren). Het enige vereiste is een HTTP client. Of je nu Guzzle, Zend\Http of de HttpFoundation van Symfony2 gebruikt, dat maakt weinig verschil. Sowieso is cURL namelijk niet echt een optie als je flexibel wilt zijn op meerdere servers en verschillende omgevingen, dus gebruik ik liever een abstractie.

In mijn geval heb ik gekozen voor Zend\Http omdat er verder een integratie in zf2 zit, maar dat is voor losse gebuikers niet relevant. Je kan natuurlijk altijd zelf de client in een factory van Pimple of de Service Container component van Symfony2 zetten. Of gewoon los includen, als je dat liever zelf hebt.

Maar goed, de bedoeling was niet om het te promoten (het is open source, je kan er prima zelf voor kiezen) maar meer inzicht te geven aan connectcase / cees hoe je binnen php de signing voor elkaar krijgt. In deze thread is er namelijk nog geen één voorbeeld van werkende code gegeven.

(sorry voor het lange betoog hier nu...)
Los daarvan, samen werken aan open source projecten is gewoon veel makkelijker. De Rabobank integratie van 3.3.1 in SlmIdealPayment is getest en werkt, maar ik kan niet alle banken testen. Dus met anderen heb je ineens een brede ondersteuning die je zelf niet voor elkaar krijgt. Krijg jij een nieuwe klant die niet voor jouw bank X heeft gekozen maar voor bank Y, hoef je niet de moeite meer te doen om de certificaten of API endpoints op te zoeken e.d. Of als er een bug in blijkt te zitten, is met elkaar de oplossing sneller bereikt. En mocht ideal naar een nieuwe versie overstappen, is het ook een gedeelde moeite om de update, getest en wel, door te voeren. De module is ook zo geabstraheerd dat ik vrijwel geen veranderingen nodig had aan alle webshops :)

Als je dan ook ziet dat zelfs de ING voorbeelden met cURL verify peer en verify host uitstaan, is dat soort code gebruiken gewoon mega gevaarlijk. Alle php implementaties die daar op leunen zijn zonder te weten gevoelig voor man in the middle attacks en kunnen gerust alle calls faken (en dus zo dus alle bankgegevens van al je klanten achterhalen!) Zonder dat iemand daar enig idee van heeft...

Re: ideal 3.3.1

42
De ideal module die ik heb gemaakt is dan ook welgeteld 9kb totaal met nog enkel een aangepaste xmlseclibs van ~70 kb er bij.

Mijn ideal module doet gewoon een fsockopen om te verbinden met https, dus zeker geen curl of include. Vervolgens wordt de handtekening voor response berichten geverifieerd. Dat laatste is dus waar xmlseclibs er in komt. Echter de meest recente versie van xmlseclibs werkt alleen in php 5.3 en nieuwer. Daarom heb ik een gemodificeerde versie gemaakt, die in PHP 5.x werkt.

De module is gewoon 1 simpele class, waarbij zowel de requests via deze class gedaan worden en de response als object terug gekoppeld wordt. Dus extreem eenvoudig te implementeren en gebruiken. Dan zit er voor de variabelen 1 los configuratie bestandje bij. De code zelf hoeft dus nooit iets in bewerkt te worden. Dan heb ik er zelf nog een voorbeeld bestandje bij gemaakt om te demonstreren hoe je met de class de verschillende requests uit voert en responses verwerkt.

Ik doe het bewust niet open source, omdat ik er zelf erg veel werk aan gehad heb. Ik heb niet de intentie er rijk van te worden. Mijn core bussiness is immers me eigen webshop. Echter vind ik een kleine vergoeding wel wenselijk. Daarom dus niet open source.

Als mensen met jou open source oplossing dus uit de voeten kunnen en tevreden zijn. Is dat natuurlijk heel fijn. Anders bied ik graag tegen een kleine vergoeding (20,-) een alternatief :D
Online Dierenspeciaalzaak is het adres voor uw huisdier.
Ohw en... Online Dierenspeciaalzaak BLOG!

Re: ideal 3.3.1

43
Ben zelf nog bezig om in .NET 4.0 vb.net voor Rabobank IDEAL het traject op te zetten, maar zit wat vast.

Heb nu meerdere malen alles opnieuw opgezet en toen ook dit forum gevonden. Nu als laatste het codestuk van WJK omgezet naar vb.net, maar kom weer op hetzelfde uit nl. op moment dat ik .ComputSignature() aanroep ik consequent de volgende foutmelding krijg:

Exception Details: System.Security.Cryptography.CryptographicException: Invalid algorithm specified.

Ik maak gebruik van de RSAPKCS1SHA256SignatureDescription class en probeer nu eerst een directory request op te vragen.

Als iemand met mij mee zou kunnen denken, zeer welkom.

Re: ideal 3.3.1

44
Op het gebied van .net ben ik geen kenner. Maar de foutmelding is vrij helder. Het algoritme wordt niet herkend. Dan staat die waarschijnlijk niet op de server geinstalleerd. Heb je daar al naar gekeken of je wel de juiste libraries op de server geinstalleerd hebt staan?

Een soort gelijke error krijg je als je met een te oude PHP versie probeert een openssl_sign te doen met SHA256. Dan ligt het dus ook aan de programmatuur op de server en niet de code. Dit lijkt mij een zelfde issue.
Online Dierenspeciaalzaak is het adres voor uw huisdier.
Ohw en... Online Dierenspeciaalzaak BLOG!

Re: ideal 3.3.1

45
Bedankt voor de opmerking NOP.

Mijn eerste poging stamt van 3-tal weken terug, toen liep ik hier ook al tegenaan. Heb toen inderdaad uitgezocht of ik wel de juiste componenten heb staan en dat leek verder in orde. Raakte vervolgens de draad wat kwijt met allerlei probeersels, die geen effect hadden.

Mijn originele ontwikkelomgeving draaide op XP vermoedde dat het mogelijk daarmee te maken kon hebben, maar in een W8 omgeving krijg ik een gelijke melding enkel dan in het Nederlands.

Heb het deze week weer opgepakt, laat weer van me horen als ik hopelijk wat verder ben.

Re: ideal 3.3.1

46
Verrek het is gelukt, ik heb een directory response.

Gebruik zelf al sinds tijden een cast om de privatekey weg te schrijven en dit was de boosdoener. Herschreven waar ik bij het ophalen van het certificaat wel een extra flag moest meegeven dat deze geexporteerd kan worden.

Vervolgens had ik de 2700 code, maar geen algoritme fout meer. Las idd dat oa een levensduur van het certificaat > 5 jaar deze melding kan veroorzaken. Voor de zekerheid nieuw certificaat gegenereerd, input vergeleken en toen zag ik dat er een extra transform inzat die er niet in hoorde en eindelijk een goede response.
Nu de rest nog...

Had me hier veel eerder moeten inschrijven ;)

Re: ideal 3.3.1

47
Beste allemaal, alhoewel er al geruime tijd op dit onderwerp geen post meer is wil ik mijn kans wagen. Ik probeer mijn ideal om te zetten naar 3.3.1. met .net .Op de localhost verloopt alles perfect, zodra ik het op mijn server zet ontvang ik de volgende foutmelding.Ik kom er even niet uit, graag hulp.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.ArgumentException: Response from server is not well signed

Re: ideal 3.3.1

50
Ward schreef:
mosredna schreef:Please review the stack trace for more information about the error and where it originated in the code.
Wat zegt de stack trace?
Zie onderstaande voor de stack trace
ik ben inmiddels wel een stukje verder, namelijk als volgt.

Om juist te kunnen ondertekenen met een .NET implementatie dient ik .NET versie 4.5 of hoger te hebben. Lagere versies kunnen de XML berichten namelijk niet ondertekenen met SHA-256 (alleen SHA-1). Om dit probleem op te lossen, moeten ik het framework updaten naar 4.5 of uitzonderingen schrijven.

[ArgumentException: Response from server is not well signed]
ING.iDealAdvanced.Connector.GetIssuerList() +577
ING.iDealSample.PageIssuerList.get_Issuers() +122
ING.iDealSample.PageIssuerList.PopulateIssuerList() +213
ING.iDealSample.PageIssuerList.ButtonGetIssuerList_Click(Object sender, EventArgs e) +13
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +9553594
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +103
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1724

Re: ideal 3.3.1

51
GekkeTed schreef:Heb je het iDeal V3 certificaat op de server geinstalleerd? Juiste rechten op het certificaat?
ja, die is geïnstalleerd en ook de juiste rechten.
ik ben inmiddels wel een stukje verder, namelijk als volgt.

Om juist te kunnen ondertekenen met een .NET implementatie dient ik .NET versie 4.5 of hoger te hebben. Lagere versies kunnen de XML berichten namelijk niet ondertekenen met SHA-256 (alleen SHA-1). Om dit probleem op te lossen, moeten ik het framework updaten naar 4.5 of uitzonderingen schrijven.