Laravel Omnipay-Mollie error


Laravel Omnipay-Mollie error

我正试图用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']);

我的采购管理员:

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);
}

paymenturl视图:

{{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()}}

有什么东西不见了吗?我整个周末都在忙这个,但没有成功。有谁能告诉我出了什么问题吗?

仅供参考:我在本地主机上执行此操作。不知道这是否有任何问题(不应该)

我也遇到过同样的问题。确实在重定向部分,我建议更改$response->redirect();类似于。。。

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

这将把用户从你的网站重定向到mollie支付URL,因为这将在打开和指定网关时生成。至少,这是我设法解决它的方法。