Загрузка страницы платежного шлюза в codeigniter - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть платежный шлюз, который я хочу интегрировать с codeigniter.Я получаю значения из представления, используя ajax.Мне нужно перенаправить на страницу шлюза оплаты с некоторыми значениями, чтобы пользователь мог выполнить дальнейший процесс на странице шлюза оплаты.

Мое представление, которое передает значения

<script>
    $(document).ready(function(){
    $(".loader").hide();
    $("#connectionForm").on('submit', function(e){
        e.preventDefault();
        var data = new FormData(this);
        $.ajax({
            url: "<?php echo base_url('index.php/home/save_new_connection');?>",
            type: "POST",
            dataType:'json',
            // async:false,
            data:  new FormData(this),
            contentType: false,
            cache: true,
            processData:false,

            success: function(data)
            {   

            }
        });
    });
});
</script>

Вотмой контроллер, который обрабатывает значения

public function save_new_connection()
{
    $data['name']=$name=$this->input->post('name');
    $data['amount']=$amount=$this->input->post('amount');
    $url='https://abcd.com/servlet';
    include APPPATH . 'class/NetworkonlieBitmapPaymentIntegration.php';
    $networkOnlineArray['Field_Existence_Indicator_Transaction']['amount']=$amount;
    $networkOnlineArray['Field_Existence_Indicator_Billing']['billToFirstName']=$name;
    $networkOnlineObject=new NetworkonlieBitmapPaymentIntegration($networkOnlineArray);
    $data['requestParameter']=$requestParameter;
    redirect("https://abcd.com/servlet".$requestParameter);

Мне нужно отправить $ requestParameter на $ url, чтобы страница платежного шлюза была показана пользователю, я использовал curl в качестве опции, но он не перенаправляет настраница платежного шлюза.Я пытался передать значения обратно в ajax, но «эхо», которое ставится после include APPPATH. 'class/NetworkonlieBitmapPaymentIntegration.php';, не работает.Как мне этого добиться?

1 Ответ

0 голосов
/ 26 сентября 2019

Если вам нужно сохранить значения, введенные пользователем, этот метод будет работать, но если вам не нужно ничего сохранять, лучшим вариантом будет отправка формы непосредственно на платежный шлюз.

Вот как вы можете сделать это, используя ajax

<script>
    $(document).ready(function(){
    $(".loader").hide();
    $("#connectionForm").on('submit', function(e){
        e.preventDefault();
        var data = new FormData(this);
        $.ajax({
            url: "<?php echo base_url('index.php/home/save_new_connection');?>",
            type: "POST",
            dataType:'json',
            // async:false,
            data:  new FormData(this),
            contentType: false,
            cache: true,
            processData:false,

            success: function(data)
            {   
                window.location.href=data;
            }
        });
    });
});
</script>


public function save_new_connection()
{
    $data['name']=$name=$this->input->post('name');
    $data['amount']=$amount=$this->input->post('amount');
    $url='https://abcd.com/servlet';
    include APPPATH . 'class/NetworkonlieBitmapPaymentIntegration.php';
    $networkOnlineArray['Field_Existence_Indicator_Transaction']['amount']=$amount;
    $networkOnlineArray['Field_Existence_Indicator_Billing']['billToFirstName']=$name;
    $networkOnlineObject=new NetworkonlieBitmapPaymentIntegration($networkOnlineArray);
    $data['requestParameter']=$requestParameter;

    echo "https://abcd.com/servlet".$requestParameter;

}
...