}
} elseif (isset($_GET['id'])) {
    $client = new OptimalApiClient($optimalApiKeyId, $optimalApiKeySecret, Environment::TEST, $optimalAccountNumber);
    try {
        session_start();
        if (!isset($_SESSION['order'])) {
            die('No pending order found');
        }
        $sessionOrder = $_SESSION['order'];
        unset($_SESSION['order']);
        session_destroy();
        if ($sessionOrder->id != $_GET['id']) {
            die('Invalid id');
        }
        $client = new OptimalApiClient($optimalApiKeyId, $optimalApiKeySecret, Environment::TEST, $optimalAccountNumber);
        $order = $client->hostedPaymentService()->getOrder(new Order(array('id' => $_GET['id'])));
        if ($order->transaction->status == 'success') {
            if ($sessionOrder->totalAmount != $order->transaction->amount) {
                die('Invalid amount.');
            }
            die('Payment successful! ID: ' . $order->id);
        }
        var_dump($order->transaction->status);
        var_dump($order);
        die;
    } catch (OptimalPayments\NetbanxException $e) {
        echo '<pre>';
        var_dump($e->getMessage());
        if ($e->fieldErrors) {
            var_dump($e->fieldErrors);
        }