Hoe kan ik deze curl regels omzetten in bruikbare PHP code?
Dat werkt prima, maar ik haal nu resultaten op in json formaat door paramaters door te geven via file_get_contents. Alle parameters worden verstuurd via 1 link om een betaal url te genereren. Dit betekend dat de url die binnen mijn file_get_contents functie staat gemiddeld richting de 1000 tekens lang is. Het blijkt dat veel browsers een limiet hebben van rond de 2000 tekens voor een url, om hier niet tegenaan te lopen heb ik besloten ipv file_get_contents om curl te gebruiken om de resultaten op te halen.
Nou staat in hun handleiding de volgende code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
curl --request POST \
--url https://rest-api.pay.nl/v7/Transaction/start/json \
--header 'authorization: Basic dG9rZW46PHlvdXItYXBpLXRva2VuPg==' \
--header 'cache-control: no-cache' \
--header 'content-type: application/x-www-form-urlencoded' \
--data-urlencode 'serviceId=SL-3490-4320' \
--data-urlencode 'amount=100' \
--data-urlencode 'ipAddress=1.2.3.4' \
--data-urlencode 'finishUrl=https://www.domain.com/return' \
--data-urlencode 'paymentOptionId=436' \
--data-urlencode 'transaction[description]=My first payment'
--url https://rest-api.pay.nl/v7/Transaction/start/json \
--header 'authorization: Basic dG9rZW46PHlvdXItYXBpLXRva2VuPg==' \
--header 'cache-control: no-cache' \
--header 'content-type: application/x-www-form-urlencoded' \
--data-urlencode 'serviceId=SL-3490-4320' \
--data-urlencode 'amount=100' \
--data-urlencode 'ipAddress=1.2.3.4' \
--data-urlencode 'finishUrl=https://www.domain.com/return' \
--data-urlencode 'paymentOptionId=436' \
--data-urlencode 'transaction[description]=My first payment'
Bovenstaand is geen PHP, nou heb ik een beetje zitten lezen over curl maar ik kom er niet uit hoe deze regels tot PHP om te zetten.
Het meesturen van headers lukt me bijvoorbeeld maar hoe kan ik data-urlencode gebruiken?
Toevoeging op 28/03/2018 12:20:13:
Dat encoden lijkt me noodzakelijk zeker bij een betaalsysteem. Ik verstuur mijn gegevens nu op de volgende manier:
Code (php)
1
$vars = 'serviceId=SL-9697-8091&amount=100&ipAddress=127.0.0.1&finishUrl=http://www.google.nl/';
Hoe kan ik dit beter doen?
data-urlencode is gewoon urlencode() in PHP. Dat zul je echter op de losse waarden moeten doen en niet rechtstreeks op $vars.
Ben van Velzen op 28/03/2018 12:48:21:
data-urlencode is gewoon urlencode() in PHP. Dat zul je echter op de losse waarden moeten doen en niet rechtstreeks op $vars.
Ik dacht dat het met veiligheid te maken had, dus eigenlijk kan ik net zo goed een array maken met al mijn te versturen gegevens en daar http_build_query op gebruiken?
Correct. Het heeft te maken met veiligheid, namelijk protocolveiligheid. Het zal niets versleutelen, daar is HTTPS voor.