我使用的是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'];
}
}
});