Ошибка Laravel Omnipay-Mollie

Я пытаюсь создать платежную систему на своем веб-сайте с помощью Onmipay-Mollie и Barryvdh-Laravel-Omnipay

Когда я хочу сделать «платеж» и отправить форму, используемую для совершения платежа. Я получаю сообщение об ошибке:

Omnipay \ Common \ Exception \ RuntimeException

This response does not support redirection.

Файл моих маршрутов:

Route::get('mollietest', ['uses'=>'PurchaseController@index','as'=>'purchase.index']);
Route::get('paymenturl', ['uses'=>'PurchaseController@create','as'=>'purchase.create']);
Route::post('paymenturl', ['uses'=>'PurchaseController@store','as'=>'purchase.store']);
Route::get('checkout', ['uses'=>'PurchaseController@show','as'=>'purchase.show']);

И мой PurchaseController:

public function index()
    {
        return View::make('mollie');
    }

public function create()
{
    // get list of issuers
    $gateway = Omnipay::create('Mollie');
    $gateway->setApiKey(mytestapi);

    $payment = $gateway->fetchPaymentMethods()->send();
    if($payment->isSuccessful()){
        $pay = $payment->getPaymentMethods();
    }


    $henk = $gateway->fetchIssuers()->send();
    if($henk->isSuccessful()){
        $issuers = $henk->getIssuers();
    }

    return View::make('gewoonbetalen')
        ->with(['issuers'=>$issuers,'pay'=>$pay]);
}

public function store()
{
    // make payment
    $gateway = Omnipay::create('Mollie');
    $gateway->setApiKey(mytestapi);

    $order_id = time();
    $params = array(
                    'amount'=>'10.00',
                    'description'=> time(),
                    'method'=>Input::get('paymentmethod'),
                    'returnUrl'=>URL::route('purchase.show'),
                    'redirectUrl'=>URL::route('purchase.show'),
                    'metadata'=> array(
                                    'order_id' => $order_id,
                                ),
                    'issuer'=>Input::get('issuer'),
                    );
    $response = $gateway->purchase($params)->send();

    Log::error('blablalllll');

    if($response->isRedirect()){
         $response->redirect(); 
    } elseif($reponse->isPending()) {
        return "Pending, Reference: ". $response->getTransactionReference();
    } else {
        return "Error " .$response->getCode() . ': ' .$response->getMessage();
    }
}

public function show($id)
{
    $gateway = Omnipay::create('Mollie');
    $gateway->setApiKey(mytestapi);
    $response = $gateway->completePurchase()->send();

    $data = $response->getData();

    print_r($data);

}

вид платежной ссылки:

{{Form::open(array('action'=>'purchase.store','method'=>'POST'))}}

    <select name="paymentmethod">
        @foreach($pay as $payment)
            <option value="{{$payment->getId() }}">{{$payment->getName()}}</option>
        @endforeach
    </select>

    <select name="issuer">
        @foreach($issuers as $issuer)
        <option value="{{ $issuer->getId() }}" name="issuer">{{$issuer->getName();}}</option>
        @endforeach
        <option value="1">of wat anders</option>
    </select>

    {{Form::submit()}}
{{Form::close()}}

Чего-то не хватает или что? Я был занят этим все выходные, но безуспешно. Есть ли кто-нибудь, кто может сказать мне, что не так?

К вашему сведению: я делаю это на своем локальном хосте. Не знаю, является ли это проблемой (не должно быть)


person Jeroen    schedule 13.10.2014    source источник
comment
Итак, ТАК чел. Что делать, если комментариев нет?   -  person Jeroen    schedule 14.10.2014
comment
Привет, вы можете где-нибудь выгрузить свой объект ответа в pastebin? Я хотел бы увидеть это. Я считаю, что проблема здесь: if($response-›isRedirect()){ $response-›redirect(); }   -  person greydnls    schedule 14.10.2014


Ответы (1)


У меня была такая же проблема. Это действительно часть перенаправления, я рекомендую изменить $response->redirect(); на что-то вроде...

return Redirect::away($response->getData()['links']['paymentUrl']);

Это перенаправит пользователя с вашего веб-сайта на URL-адрес платежа mollie, поскольку он будет сгенерирован при открытии и указании шлюза. По крайней мере, так мне удалось это исправить.

person WouterFl    schedule 11.11.2014