Laravel 5.2: Как получить данные POST с другого URL на сайте Laravel - PullRequest
0 голосов
/ 22 января 2019

Есть ли подходящий способ для сбора данных 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 &nbsp;&nbsp; <em>{{$api_resp_text}}</em></h4>
  @else
    <h4>Data status is &nbsp;&nbsp; <span>{{$api_resp_text}}</span></h4>
  @endif

    <h4>Data Unique ID : {{$data_id}}</h4>
    <h4>Data Date is &nbsp;&nbsp; {{$data_date}}</h4>   
</div>

Я должен заявить, что сторонний URL, myapi.com, возвращает данные POST, которые мне приходилось использовать для создания URL-адреса, используя простую php-форму вне Laravel, и он возвращал данные POST.

Видимо, я что-то упустил в своих кодах Laravel. из объявления маршрута к коду контроллера.

Как и что мне нужно исправить в моем коде?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...