【发布时间】:2015-03-06 15:23:40
【问题描述】:
我正在 Laravel 4 中设置支付门户,使用服务器集成连接到 SagePay。
结帐连接到 SagePay 没有任何问题,但在用户输入他们的卡详细信息并返回到网站后,我无法读取 SagePay 的响应,
SagePay 正在向我的一个页面发送 POST 请求,但 Laravel 仅在我 route::GET 请求(route::POST 返回 HttpMethodNotAllowed)且未收到任何 POST 数据时才显示该页面。
当请求是 POST 时,Laravel 如何将请求读取为 GET?
我试过 Route::any 但这仍然没有 POST 数据,
Route::post('cardpayment/result', array('uses'=>'CartController@postSageResult'));
public function postSageResult() {
$data = Input::all();
Log::info('data:'.var_dump($data));
}
【问题讨论】:
-
你试过
Route::post吗?你知道他们发布到哪个 URL 吗?我想这是向他们发送请求的同一个 URL。 -
是的,我收到 HTTPmethodNotAllowed 错误,我定义了通知 url,我的日志和他们的日志都显示它找到了页面 ok
-
等一下,当 SagePay 向您发送 POST 请求时,您是否希望看到一个页面?这不是它的工作原理。
-
记录器将一组信息作为第二个参数,并会为您提供很好的格式。 var_dump 可能是导致您看不到请求的问题。试试
Log::info('SavePay post data', $data) -
我正要提到 var_dump() 可能是导致它的原因。 var_dump() 输出数据,它不会为您返回数据字符串。