Я пытаюсь сделать платежную систему на моем сайте с 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 view:
{{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 Redirect :: away ($ response-> getData () [‘links’] [‘paymentUrl’]);
Это перенаправит пользователя с вашего веб-сайта на URL платежа mollie, так как он будет создан при открытии и указании шлюза. По крайней мере, так мне удалось это исправить.
Других решений пока нет …