1

我试图在我的网站上使用Onmipay-MollieBarryvdh-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);

}

付款网址视图:

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

有什么遗漏或什么的吗?我整个周末都在忙这件事,但没有成功。有没有人可以告诉我出了什么问题?

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

4

1 回答 1

0

我有同样的问题。它确实在重定向部分,我建议更改 $response->redirect(); 像...

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

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

于 2014-11-11T06:08:57.103 回答