Есть ли подходящий способ для сбора данных POST с другого URL в проекте laravel.
Мой проект Laravel находится на www.mylaravel.com, и у меня есть форма, доступная через URL-адрес маршрута www.mylaravel.com/post-data/9, который отправляет данные POST на www.myapi.com и в одно из полей / данных. Я должен отправить с моего сайта указание обратного URL на сайте www.mylaravel.com/get-data.
.
После обработки сторонним сайтом, www.myapi.com, он возвращает ответ POST-данных на 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
Blade для формы на post-data маршрута / {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" />
Blade для печати возвращенных POST-данных с myapi.com
<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, которые мне приходилось использовать для создания URL-адреса, используя простую php-форму вне Laravel, и он возвращал данные POST.
Видимо, я что-то упустил в своих кодах Laravel. из объявления маршрута к коду контроллера.
Как и что мне нужно исправить в моем коде?