Ik zit in de testfase mollie te implementeren:


$payment = $mollie->payments->create([
		  "amount" => [
				"currency" => "EUR",
				"value" => "".array_sum($total).".00" // You must send the correct number of decimals, thus we enforce the use of strings
		  ],
		  "description" => "Premium rapport",
		  "redirectUrl" => "".HTML_ROOT."betaald",
		  "webhookUrl" => "".HTML_ROOT."inc/webhook.php",
		  "metadata" => [
				"order_id" => "12345",
		  ],
	]);



met : <form method="post" id="betaal" action="<?= $payment->getCheckoutUrl()?>">

gaat hij netjes de test doen en via paid komt er geet $_POST['id'] in de webhook.php.

Waarom??

WEBHOOK>PHP


include('../config.php');
include(DOC_ROOT.'class/class.php');
$DBD = new DBD();
                if (isset($_POST['id']))
				{
					require_once (DOC_ROOT.'mollie/vendor/autoload.php');
					require_once (DOC_ROOT.'mollie/examples/functions.php');
					$mollie = new \Mollie\Api\MollieApiClient();
					$mollie->setApiKey("test_xxxxxxxxxxxxxxxxxxxxxxxxxxxx");
	
		
				$payment = $mollie->payments->get($_POST['id']);					
				echo $payment ;
				mysqli_query($DBD->conn(),"INSERT into orders (status) values ('".$_POST['id']."')  ");	
				
				}
Wat zit er dan wel in die $_POST? Dump 'm eens naar disk, zodat je kunt zien wat er dan *wel* in zit/zat (misschien wel een error). Als ik zo gauw de Mollie docs lees zie ik al dat die getCheckoutUrl altijd via een GET aangeroepen moet worden. De form POST moet je dus naar je eigen server doen, en dan (na verwerken van het form en het aanmaken van de getCheckoutUrl) een redirect naar Mollie/bank.

En sowieso:
- "value" => "".array_sum($total).".00": Als nu $total = [12.34], dan staat er value => "12.34.00". Gebruik gewoon number_format.
- Waarom steeds die "".whatever? Als uiteindelijk blijkt dat het een string moet zijn maakt PHP die er vanzelf wel van (bijvoorbeeld omdat je achter "whatever" toch al een string plakt). Dit maakt het er niet leesbaarder op.
Is de webserver vanwaar het betaalverzoek wordt gedaan uberhaupt bereikbaar vanaf het internet? Het internet kent immers alleen maar zijn "eigen" localhost.
Dat werkt ook niet, ik heb het via een get eerst naar mijn server verstuurd en dan met een window.location geredirect.

Moet dat echt met een php header? ik ga dat zo proberen, ben ff onderweg

[size=xsmall]Toevoeging op 06/04/2019 05:08:23:[/size]

"
Is de webserver vanwaar het betaalverzoek wordt gedaan uberhaupt bereikbaar vanaf het internet? Het internet kent immers alleen maar zijn "eigen" localhost.
"

Jazeker, in de browser open ik hem gewoon direct.

Reageren