是否存在从某人的laravel项目中另一个URL捕获POST数据的适当方法。
我的Laravel项目在www.mylaravel.com上,并且我有一个通过路由URL www.mylaravel.com/post-data/9访问的表单,该表单将POST数据发送到www.myapi.com,并且是字段/数据之一我需要从我的网站发送包含网站上的返回URL,该URL为www.mylaravel.com/get-data。
由第三方网站www.myapi.com处理后,它将对POST数据的响应返回POST数据,该URL在我的有效载荷中提供,该URL为www.mylaravel.com/get-data
在返回时捕获POST数据有一些挑战
路线:
Route::get('post-data/{id}', ['as' => 'user.post.data', 'uses' => 'MyController@postData']);
Route::post('get-data', ['as' => 'user.get.data', 'uses' => 'MyController@getData']);
控制器:
public function postData($id)
{
$my_data = $this->data->find($id);
$mid = $my_data->mid;
$skey = $my_data->skey;
$return_url = route('user.get.data');
$form_url = "https://myapi.com/query.jsp";
return view('user.post-data', compact('skey', 'mid', 'form_url', 'return_url'));
}//End Method
public function getData(Request $request)
{
// expected name of the POST Param returned are in Uppercase
$data_date = ($request->DATA_DATE) ? $request->DATA_DATE: '';
$success = ($request->DATA_SUCCESS) ? $request->DATA_SUCCESS: '';
$data_id = ($request->DATA_ID) ? $request->DATA_ID: '';
// if query is successful DATA_SUCCESS param is set to 0 while unsuccessful is either 1 or 2
if($success == 0 && isset($data_id)){
$api_resp = 1;
$api_resp_text = 'Successful';
}
else{
$api_resp = 0;
$api_resp_text = 'Unsuccessful';
}
return view('user.get-data', compact('data_date', 'success', 'api_resp', 'api_resp_text', 'data_id'));
}//End Method
路线后数据/ {id}上的表单刀片:
<form class="ui form" action="{{$form_url}}" method="post">
<input type="hidden" name="DATA_ID" value="{{$mid}}" />
<input type="hidden" name="KEY_CODE" value="{{$skey}}" />
<input type="hidden" name="RETURN_URL" value="{{$return_url}}" />
<input type="submit" name="send" value="Get Status" />
用于打印myapi.com返回的POST数据的刀片
<div class="data_notice">
@if($api_resp)
<h4>Data status is <em>{{$api_resp_text}}</em></h4>
@else
<h4>Data status is <span>{{$api_resp_text}}</span></h4>
@endif
<h4>Data Unique ID : {{$data_id}}</h4>
<h4>Data Date is {{$data_date}}</h4>
</div>
我必须声明第三方URL myapi.com返回POST数据,如果我不得不在Laravel之外使用简单的php形式来查询URL并返回POST数据。
显然,我的Laravel代码中缺少某些内容。从路由声明到控制器代码。
我需要如何以及如何修复代码?