我使用的是opencart 2.3.0.2最新版本,我已经在此创建了自定义支付模块,通过使用此功能,我无法加载成功页面 . 下面是控制器文件..

$response = $client->Operation($params);

                 $response_value=$response->OperationResult->ResultData;
                 $result_array=$response->OperationResult->ResultCode;
                 $transation_number=$response->OperationResult->TransactionNumber;
                 $xml_error=explode(":",$response->OperationResult->AdditionalInfo);             
                 $json = array();
                 if(isset($xml_error['2']))
                 {
                        $payment_error=$xml_error['2'];
                 }else{
                        $payment_error="";
                 }           
                 if($payment_error == '')
                 {    

                      $response_value = $response->OperationResult->ResultData;
                      if($result_array == '0')
                      {
                           $report = "Transaction Id:".$transation_number;

                           $this->model_checkout_order->addOrderHistory($this->session->data['order_id'], $this->config->get('config_order_status_id'),$report, false);
                           $message = $response_value;

                          $this->model_checkout_order->addOrderHistory($this->session->data['order_id'], $this->config->get('config_order_status_id'), $message, FALSE);

                           $json['redirect'] = $this->url->link('checkout/success');

                      }else{
                          $json['error'] = $response_value;
                     }
                 }else{
                       $json['error'] = $payment_error;
                }

                $this->response->addHeader('Content-Type: application/json');
                $this->response->setOutput(json_encode($json));

以下是我的ajax请求方法

$.ajax({ 
            type: 'post',
            data: $('#creditcard_payment input[type=\'radio\']:checked,#creditcard_payment input[type=\'text\'],#creditcard_payment input[type=\'checkbox\']:checked,#creditcard_payment input[type=\'hidden\'],#creditcard_payment select'),
            url: 'index.php?route=extension/payment/cnp/confirm',

            cache: false,
            beforeSend: function() {

                $('#button-confirm').button('loading');
            },
            complete: function() {

                $('#button-confirm').button('reset');
            },      
            success: function(json) {
            alert('test');
                //console.log(json);
                if (json['error']) {
                    alert(json['error']);
                }
                if (json['redirect']) {
                alert(json['redirect']);
                    location = json['redirect'];

                }
            }
        });