Обработка некоторых данных из PHP-бэкэнда в AJAX - PullRequest
0 голосов
/ 23 октября 2018

Я работаю над приложением Laravel, в соответствии с которым я должен обратиться к платежному шлюзу и прослушивать статус платежа через 5 секунд в течение трех раз подряд.Я хочу передать данные из контроллера в код AJAX и использовать метод setInterval Js для выполнения функции. Для повторного обращения к API в течение 3 раз подряд перед остановкой транзакции.Я понятия не имею, как обойти это ..

Текущий контроллер, содержащий логику PHP

 public function payFinal(Request $request)
        {

             //Convert to a JSON object
            $data =(object)$request->all();

            $quote = $request->session()->get('quoteID');

             $all = array(
                'phone' => $data->phone,
                'quote_id' => $quote,
                'payment_type' => $data->type,
            );

            //Post data to the payment gateway
            $response = $this->global_Curl($all, 'api/payment/checkout');

            //Get some data from the response from the API
            $checkID = $response->data->CheckoutRequestID;

            //Get another set of data
            $type = $data->type;

            //Add the data in an array and store in a variable ready for processing
            $data = array(
                'payment_reference' => $checkID,
                'payment_type' => $type
            );

            //Reach out to another API to get status. This set of data is to be done repeatedly
            $payStat = $this->global_Curl($data, 'api/payment/status')->data;
            if ($payStat->status === 1) {
                    return 'true';
            }
        }

Код ниже взят из функции выше, и я хочучтобы передать его в AJAX и использовать метод setInterval для его повторения

~ любезно помогите ..

//Reach out to another API to get status. This set of data is to be done repeatedly
                $payStat = $this->global_Curl($data, 'api/payment/status')->data;

AJAX-код для извлечения данных из

$.ajax({  
    url: 'getquote',
    type: 'get',
    contentType: 'application/x-www-form-urlencoded',
    data: '',
    success: function success(response) {
        console.log(response);
    },
    error: function error(data) {
        console.log(data);
    }
});

1 Ответ

0 голосов
/ 23 октября 2018

Код не понятен ..!Однако вы, вероятно, можете попробовать, как показано ниже.Я полагаю, что вы вызываете действие Controller как ajax url из javascript, и в этом действии вызывается функция php payFinal(), тогда вам поможет следующий код ..!

Код JavaScript:

setInterval("AJAX Function to be invoked", 5000);

Приведенный выше код вызывает функцию ajax каждые 5 секунд.

...