Ошибка перенаправления статуса платежа с AJAX на PHP - PullRequest
0 голосов
/ 30 октября 2018

Я работаю над шлюзом интеграции платежей с PHP, посредством которого ожидаю ответа от шлюза, который равен либо 1, либо 2, либо 0. В случае успеха я хочу перенаправить любую строку в AJAX success, которая не работает должным образом

Код PHP

        for($try=1; $try<=3; $try++) {
            sleep(15);
            $payStat = $this->global_Curl($data, 'api/payment/status')->data;
            //dd($payStat);
            //Check if staus is zero meaning not paid
            if ($payStat->status === 0) {
                return 'notPaid';
            }
            //check if status is 2 meaning cancelled
            elseif ($payStat->status === 2) {
                return 'Cancelled';
            }
            //check if status is 1 meaning paid
            elseif ($payStat->status === 1) {
                return 'Paid';
            }
        }

Код AJAX, где я хочу прослушать ответ

<script type="text/javascript">
  $('.mpesa').on('click', function () {
    //alert('clicked');
    //Adds Class to the page when it loads
    $('.PAY').addClass("loading");
    //Gets the MPESA type
    var type = $('.mpesa').prop('id');
    var quote = $('#quote').val();
    var phone = $('#phone').val();
    //Converts to a JSON object
    var type ={
      'type': type,
      'quote' : quote,
      'phone' : phone,
    };

    //console.log(type);

    $.ajax({
        //Contains controller of payment
        type: 'POST',
        url: 'paymentFinal',
        data: JSON.stringify(type),
        contentType: 'application/json',
        dataType: "json",
        success: function success(response) {
            //Log the reponse from PHP code
            console.log(response);
        },
        error: function error(data) {
              //alert('Error');
        }
    });
  });
</script>

1 Ответ

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

изменить return операторов на echo операторов тогда вы можете использовать эти значения в front-end

if ($payStat->status === 0) {
    echo 'notPaid';
    return; // if you need to exit
}

и лучше использовать объект json в качестве ответа. это будет легко подготовить в начале.

if ($payStat->status === 0) {
    echo ['status' => 'notPaid'];
    return; // if you need to exit
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...