Я не могу решить эту проблему, я застрял здесь, пытаясь выяснить, что происходит, я установил расширение оплаты, и когда я пытаюсь оплатить продукт с помощью кредитной карты, все работает, мой платежный сервер подтверждает переход и OpenCart отправляет электронное письмо как продавцу, так и клиенту, проблема в том, что после завершения перехода OpenCart не добавляет историю заказов, продавцу и заказчику, я попытался посмотреть исходный код расширения, но у меня все выглядит нормально , Я спрашиваю об этом других людей, и ни у кого нет проблем с этим расширением. файлы журнала просто выводят:
2017-08-19 4:50:29 - FEE5D6-AF8F438F43BD-F004C9EFA444-E7BD05
и это часть js при продлении платежа, которая вызывает функцию для подтверждения платежа:
PagSeguroDirectPayment.createCardToken({
cardNumber: $('input#numero-cartao').val(),
brand: $('input#bandeira').val(),
cvv: $('input#cvv').val(),
expirationMonth: expiration[0],
expirationYear: expiration[1],
success: function(data) {
$.ajax({
url: 'index.php?route=extension/payment/pagseguro_cartao/transition',
data: 'creditCardToken=' + data.card.token + '&senderHash=' + PagSeguroDirectPayment.getSenderHash() + '&installmentQuantity=' + $('select#parcelas option:selected').attr('data-value') + '&installmentValue=' + $('select#parcelas').val() + '&creditCardHolderName=' + $('input#nome').val() + '&creditCardHolderCPF=' + $('input#cpf').val() + '&creditCardHolderBirthDate=' + $('input#data-nascimento').val() + '&creditCardHolderPhone=' + $('input#telefone').val(),
type: 'POST',
dataType: 'JSON',
success: function(data){
if (data.error) {
$('#warning').html( getError(data.error.code, data.error.message) ).show();
} else {
$('#button-confirm').attr('disabled');
$.ajax({
url: 'index.php?route=extension/payment/pagseguro_cartao/confirm',
data: 'status=' + data.status,
type: 'POST',
success: function() {
/*location.href = '{{ continue }}'*/
}
});
}
},
complete: function(data) {
$('#button-confirm').button('reset');
}
});
},
error: function(data) {
console.log(data);
var html = '<ul>';
$.each(data.errors, function(i,e){
html += '<li>' + getError(i,e) + '</li>';
});
html += '</ul>';
$('#warning').html(html).show();
$('#button-confirm').button('reset');
}
});
});
и контроллер в каталоге / контроллер / расширение / оплата:
public function confirm() {
$this->load->model('checkout/order');
switch ($this->request->post['status']) {
case 1:
$status = $this->config->get('payment_pagseguro_aguardando_pagamento');
break;
case 2:
$status = $this->config->get('payment_pagseguro_analise');
break;
case 3:
$status = $this->config->get('payment_pagseguro_paga');
break;
case 4:
$status = $this->config->get('payment_pagseguro_disponivel');
break;
case 5:
$status = $this->config->get('payment_pagseguro_disputa');
break;
case 6:
$status = $this->config->get('payment_pagseguro_devolvida');
break;
case 7:
$status = $this->config->get('payment_pagseguro_cancelada');
break;
default:
$status = $this->config->get('payment_pagseguro_aguardando_pagamento');
break;
}
$this->model_checkout_order->addOrderHistory($this->session->data['order_id'], $status);
if (isset($this->session->data['order_id'])) {
$this->cart->clear();
unset($this->session->data['shipping_method']);
unset($this->session->data['shipping_methods']);
unset($this->session->data['payment_method']);
unset($this->session->data['payment_methods']);
unset($this->session->data['comment']);
unset($this->session->data['coupon']);
unset($this->session->data['pagseguro_desconto']);
unset($this->session->data['pagseguro_acrescimo']);
}
}
}
Видимо все истории заказов ajax звонки из админки, запускаются через API. Какой контроллер API находится в папке каталога. Итак, если у вас есть правила перенаправления в ваш файл .htaccess, тогда весь запрос ajax не работает.
Я бы посоветовал вам запустить консоль из Google Chrome или Firefox и открыть вкладку Сеть. Когда вы добавляете новую историю заказов, проверьте ответ от сервера. Вы найдете проблему.
Других решений пока нет …