Проблема с интеграцией платежного шлюза codeigniter mollie

Я пытаюсь применить платежный шлюз mollie в codeIgniter, используя ссылку https://github.com/mollie/mollie-api-php. Но в нем не работает. Я уже использовал эту библиотеку в laravel, которая там работает. когда я пытался использовать в codeIgniter, он напрямую перенаправлял меня на redirectUrl, а когда я проверяю на панели управления платежами mollie, платеж не происходит. Я не могу понять, что делаю не так. Может кто-нибудь мне помочь? Я использовал это в composer.json и обновил композитор

"mollie/mollie-api-php": "^2.0"

В моем файле контроллера

class Mollie_test extends CI_Controller {
     public function make_payment()
    {
        $mollie = new \Mollie\Api\MollieApiClient();
        $mollie->setApiKey("test_key");
        $payment = $mollie->payments->create([
            'amount' => [
                'currency' => 'EUR',
                'value' => '10.00'
            ],
            'description' => 'tesst',
            'redirectUrl' => redirect('mollie_test/success')
        ]);
    }

    public function success()
    {
        echo 'payment process completed';
    }
}

person disha    schedule 22.10.2020    source источник
comment
Просматривая документы, вы, вероятно, захотите base_url('mollie_test/success'), а не redirect, что, как вы могли ожидать, немедленно перенаправляет.   -  person Jonnix    schedule 22.10.2020
comment
@Jonnix Большое спасибо за ваше решение. base_url работал. Это была действительно глупая ошибка. Работал сейчас.   -  person disha    schedule 22.10.2020


Ответы (1)


Использование перенаправления установит новый заголовок и фактически перенаправит пользователя. В вашем случае вам нужно использовать site_url.

Итак, ваш код должен выглядеть примерно так:

class Mollie_test extends CI_Controller {
     public function make_payment()
    {
        $mollie = new \Mollie\Api\MollieApiClient();
        $mollie->setApiKey("test_key");
        $payment = $mollie->payments->create([
            'amount' => [
                'currency' => 'EUR',
                'value' => '10.00'
            ],
            'description' => 'tesst',
            'redirectUrl' => site_url('mollie_test/success')
        ]);
    }

    public function success()
    {
        echo 'payment process completed';
    }
}

Многие путают site_url с base_url, base_url в этом случае использовать не следует.

URL-адрес сайта также добавит index.php к вашему URL-адресу, если вы его используете. Если в вашем URL-адресе нет index.php, не беспокойтесь, он тоже сработает.

Базовый URL-адрес следует использовать для ресурсов, где вы никогда не хотите, чтобы index.php присутствовал.

<img src="<?php echo base_url('foo/bar.jpg') ?>"
person marcogmonteiro    schedule 22.10.2020