Closed remcotolsma closed 3 years ago
Received a first response from DigiWallet (in Dutch):
Goedemorgen Remco, In het developersportaal van PayPal moet eerst een app aangemaakt worden. En die moet weer gekoppeld worden aan het DigiWallet account. De aanvraag heb ik geactiveerd in jullie backoffice, zodra dat is goedgekeurd, kunnen jullie gaan koppelen.... Met vriendelijke groet/ kind regards, Celia TargetMedia B.V. Support Team
We have had some back and forth contact with DigiWallet (in Dutch):
DigiWallet
We kunnen uw account voor het testen even open zetten om het te koppelen aan Paypal. Geeft u even door wanneer u dit wilt gaan doen?
Pronamic
Bedankt voor de update. Het testen kunnen we vandaag, donderdag en/of vrijdag wel even doen. We merken in de praktijk dat het wel handig is als we op elk moment kunnen testen. Mocht een gezamenlijke klant in de toekomst problemen hebben met de PayPal-betaalmethode dan kunnen we dan ook zonder tussenkomst van jullie testen. Ook omdat we onze DigiWallet integratie voor de WordPress plugins die we ondersteunen continu doorontwikkelen is het wel fijn als we continu kunnen testen. Als we voor elke aanpassing of nieuwe functionaliteit eerst weer moeten vragen om iets 'open' te zetten belemmert dat het doorontwikkelen en testen.
DigiWallet
Het gaat hierbij om 1malig de paypal info in te vullen. Hij blijft hierna werken.
Dit is toch voldoende neem ik aan ?
Pronamic
Ik weet niet precies wat jullie bedoelen met 'open zetten', maar als wij dan PayPal info kunnen invullen en het daarna blijft werken lijkt me dat voldoende inderdaad.
DigiWallet
Als deze info niet meer wijzigt, jullie voeren toch geen info van de klant daar in maar alleen jullie eigen info toch ? (open zetten > ze bedoelde dat je bij de paypal data kan om hier je gegevens in te vullen.) en ja daarna blijft het werken. Vandaag kun je bij de input van paypal, mocht je het op een andere dag willen invullen of wijzigen horen wij dat graag.
After this we were able to activate the PayPal payment method via the DigiWallet dashboard.
This took us a step further, but we ran into a new issue: https://github.com/pronamic/wp-pronamic-pay/issues/164. We solved this issue partly and now see a DigiWallet PayPal screen:
Enter the following value into the field labeled Webhook Url: https://transaction.digiwallet.nl/paypal/v2/callback.php
http https://transaction.digiwallet.nl/paypal/v2/callback.php
🙄 🐛
We again had some back and forth contact with DigiWallet (in Dutch):
DigiWallet
Ik heb het doorgegeven aan development. Dit geldt idd voor de test, er is voor nu een placeholder toegevoegd. Het ziet er nu zo uit 000000 PAYID-ABCDEFG1AB12345A1234567A| https://............................................... Kan je hier voor nu mee werken ?
Pronamic
Ja, dat lukt wel, alleen geeft https://www.digiwallet.nl/en/documentation/paypal#checkapi dan nu voor de placeholder het volgende resultaat:
DW_XE_0003 Validation failed, details: {"paymentID":"No transaction found for this ID"}
We kunnen op deze manier nog niet helemaal een succesvolle, geannuleerde of mislukte PayPal-betaling simuleren. Gaan jullie de placeholder nog vervangen met een correct transactienummer die ook in de check API is te gebruiken?
DigiWallet
Ik heb response van development. Je krijgt nu een test id terug die ook te controleren is.
Pronamic
We krijgen nog steeds transactienummer PAYID-ABCDEFG1AB12345A1234567A terug en als we de status opvragen nog steeds:
DW_XE_0003 Validation failed, details: {"paymentID":"No transaction found for this ID"}
Gaat er iets nog niet goed?
DigiWallet
Als ik deze aanroep https://transaction.digiwallet.nl/paypal/start?ver=1&rtlo=156099&test=1&amount=12300&description=Test%201624534442&returnurl=http://pay.local/?payment=452&key=pay_60d46daab25e9&userip=::1&reporturl=https://webhook.site/d4f98908-01e3-433f-a656-fbbb1ac02d8f& krijg ik terug: 000000 PAYID-ABCDEFG1AB12345A1234567A|https://pay.digiwallet.nl/test-transaction?transactionID=15459&paymethod=PYP&hash=c5aedca3695c8efc0b79ac4e6726dcfcceccd82207faf24000f1e485a38e5b4b als ik deze aanroep https://pay.digiwallet.nl/test-transaction?transactionID=15459&paymethod=PYP&hash=c5aedca3695c8efc0b79ac4e6726dcfcceccd82207faf24000f1e485a38e5b4b krijg ik dan het testscherm, als ik vervolgens op test returnurl druk kom ik op jullie returnurl
als ik vervolgens aanroep : https://transaction.digiwallet.nl/paypal/check?rtlo=156099&trxid=PAYID-ABCDEFG1AB12345A1234567A
krijg ik : 000000 OK
Pronamic
Wij doen een HTTP POST request richting de PayPal check API: https://www.digiwallet.nl/en/documentation/paypal#checkapi
Invoke the following URL with a GET or POST
Het lijkt er op dat het met een GET request wel werkt, maar met een POST request niet.
GET
http GET https://transaction.digiwallet.nl/paypal/check?rtlo=156099&trxid=PAYID-ABCDEFG1AB12345A1234567A
POST
http POST https://transaction.digiwallet.nl/paypal/check rtlo=156099 trxid=PAYID-ABCDEFG1AB12345A1234567A
Als we een POST request doe naar een URL met waarin de rtlo en trxid URL-parameters werkt het wel:
http POST https://transaction.digiwallet.nl/paypal/check?rtlo=156099&trxid=PAYID-ABCDEFG1AB12345A1234567A
Maar dit wijkt dan af met de werking van de start API waarin we de parameters wel in de HTTP body kunnen posten. We kunnen prima overstappen naar een GET-request, maar hier is denk ik wel verbetering mogelijk.
Als ik op de simulatie pagina ook kies voor "Simuleer annulering" dan blijft de check API "000000 OK" teruggeven. Dat heeft er misschien ook wel mee te maken dat we nu voor elke PayPal-betaling nog de "PAYID-ABCDEFG1AB12345A1234567A" placeholder terug krijgen. Om het simuleren van een betaling goed te laten werken zal elke PayPal test betaling wel een unieke transactienummer moeten krijgen vermoed ik.
Met vriendelijke groet,
Remco Tolsma Pronamic
PS de "X-Powered-By: PHP/5.6.5" viel ons ook op, voor een payment provider waar veiligheid misschien ook wel hoog in het vaandel staat heeft het gebruik van een actief ondersteunde versie https://www.php.net/supported-versions.php de voorkeur?
DigiWallet
De versie die je ziet is nog een oude proxy de backend gebruikt hogere versies.
De test omgeving van paypal is helaas niet up to date zoals je gemerkt hebt..
Voor nu krijg je een zogenaamd uniek id terug. is het een probleem voor nu als dit id hetzelfde blijft ? de post zal ik iig doorgeven.
Pronamic
We wachten de terugkoppeling over het POST request issue even af.
Je vraagt ons of het probleem is dat jullie PayPal test omgeving niet goed werkt? Ik vind het persoonlijk niet een groot probleem, maar we hopen wel dat jullie het een probleem vinden. We begrijpen wel dat het niet 'à la minute' verbeterd kan worden, maar hopelijk hebben jullie wel de motivatie om dit te verbeteren.
Goed om te horen dat "X-Powered-By: PHP/5.6.5" alleen afkomstig is van een oude proxy, het is geen probleem dat die proxy server nog uitgerust is met een oudere PHP-versie? Ik ben geen expert op dat gebied, het risico dat er problemen ontstaan zal vast klein zijn, ik zou er denk ik alleen wel wat aan doen.
DigiWallet
De testomgeving paypal staat op de todo lijst, Nee bij een proxy is dat geen probleem. Deze proxy wordt op den duur gestopt of geupdate. POST zou moeten werken nu.
It now indeed seems possible to use the check API via an HTTP POST request. However, the DigiWallet PayPal simulation environment does not work as you might expect. Previous issues do not give a lot of confidence in the DigiWallet payment solution, but will close this issue for now.
As mentioned on https://github.com/pronamic/wp-pronamic-pay/issues/145#issuecomment-865046571, we are currently unable to initiate a PayPal (test) payment.
We just contacted DigiWallet support via techsupport@targetmedia.eu in Dutch:
Internal HelpScout ticket: https://secure.helpscout.net/conversation/1549784045/22248?folderId=1425710