public function betalenAction()
{
require_once (APP_PATH.'/Mollie/API/Autoloader.php');
$mollie = new Mollie_API_Client;
$mollie->setApiKey('test_4Hb6uayeYE8NzRbLH8xFtGwm3idBH9');
$order_id = time();
$cart_items = $this->artikelen->get_cart_items($this->client);
$total_price = 0;
foreach ($cart_items as $value)
{
$price = str_replace(',','.', $value['product_prijs']);
$total_price += $price;
}
try
{
$payment = $mollie->payments->create(
array(
'amount' => $total_price,
'method' => Mollie_API_Object_Method::IDEAL,
'description' => 'My first API payment',
'redirectUrl' => 'http://www.testfolder.nl/artikelen/bestelling_status',
'metadata' => array(
'order_id' => $order_id
)
)
);
header("Location: " . $payment->getPaymentUrl());
exit;
}
catch (Mollie_API_Exception $e)
{
echo "API call failed: " . htmlspecialchars($e->getMessage()) . " on field " + htmlspecialchars($e->getField());
}
}
Ik heb ook de webhookUrl juist aangemaakt:
try
{
require_once (APP_PATH.'/Mollie/API/Autoloader.php');
$mollie = new Mollie_API_Client;
$mollie->setApiKey('test_4Hb6uayeYE8NzRbLH8xFtGwm3idBH9');
$payment = $mollie->payments->get($_POST["id"]);
$order_id = $payment->metadata->order_id;
$this->artikelen->set_bestel_status($order_id, $payment->status);
if ($payment->isPaid() == TRUE)
{
}
elseif ($payment->isOpen() == FALSE)
{
}
}
catch (Mollie_API_Exception $e)
{
echo "API call failed: " . htmlspecialchars($e->getMessage());
}
Want als ik terug op de pagina kom en de database controleer staan inderdaad de juiste order_id en order_status in de database.
Maar zoals ik al aangaf wil ik graag de koper informatie in de database opslaan voor later gebruik. Waneer ik echer het volgende voor de redirect in betalenAction voor de redirect naar mollie plaats blijft de pagina steken en kom ik niet bij Mollie terecht.
$order_id = time();
$client_id = $this->client;
$naam = filter_input(INPUT_POST, 'naam', FILTER_SANITIZE_STRING);
$adres = filter_input(INPUT_POST, 'adres', FILTER_SANITIZE_STRING);
$postcode = filter_input(INPUT_POST, 'postcode', FILTER_SANITIZE_STRING);
$woonplaats = filter_input(INPUT_POST, 'woonplaats', FILTER_SANITIZE_STRING);
$email = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_STRING);
$telefoon = filter_input(INPUT_POST, 'telefoon', FILTER_SANITIZE_STRING);
$bijzonderheden = filter_input(INPUT_POST, 'bijzonderheden', FILTER_SANITIZE_STRING);
$toevoegen = $this->artikelen->bestelling_toevoegen($order_id,$client_id,$naam,$adres,$postcode,$woonplaats,$email,$telefoon,$bijzonderheden);
Ziet iemand wat ik hier fout doe?
Bij voorbaat dank