Описываемый модуль —
https://www.opencart.com/index.php?route=marketpla...
Я адаптировал под 2.3, но вижу, что с 2.1 у людей также есть проблемы.
Логирование в контроллее показало, что при обращении к платежному серверу - ответ успех. Но вот редирект из файла представления не происходит
error: function (xhr, ajaxOptions, thrownError) { // в случae нeудaчнoгo зaвeршeния зaпрoсa к сeрвeру
Сообщает, что ответ 200
+ SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
Вот полный код:
<?php //if ($testmode) { ?>
<!-- <div class="alert alert-danger"><i class="fa fa-exclamation-circle"></i> <?php echo $text_testmode; ?></div>-->
<?php //} ?>
<div class="pull-right">
<div class="row" style="margin-right: 1px;">
<form id="privatbank_paymentparts_pp_checkout" role="form" class="form-inline">
<div class="form-group">
<label for="partsCount_pp" style="float:left;padding: 6px 12px 2px 12px;"><?php echo $text_label_partsCount; ?></label>
<select id="partsCount_pp" name="partsCount_pp" style="width:auto;" class="form-control selectWidth">
<?php foreach ($partsCounts as $partsCount) { ?>
<option><?php echo $partsCount; ?></option>
<?php } ?>
</select>
</div>
<div class="btn-group">
<input type="submit" value="<?php echo $button_confirm; ?>" class="btn btn-primary" />
</div>
</form>
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){
$("#privatbank_paymentparts_pp_checkout").submit(function(){
var error = false;
partsCounArr = {partsCount: $('#partsCount_pp').val()};
$.ajax({
type: 'POST',
url: '<?php echo $action; ?>',
dataType: 'json',
data: partsCounArr,
success: function(data){ // сoбытиe пoслe удaчнoгo oбрaщeния к сeрвeру и пoлучeния oтвeтa
console.log(data['state']);
switch(data['state']){
case 'SUCCESS':
window.location = 'https://payparts2.privatbank.ua/ipp/v2/payment?token='+data['token'];
break;
case 'FAIL':
$('#collapse-checkout-confirm .panel-body').prepend('<div class="alert alert-warning">' + data['message'] + '<button type="button" class="close" data-dismiss="alert">×</button></div>');
break;
case 'sys_error':
$('#collapse-checkout-confirm .panel-body').prepend('<div class="alert alert-warning">' + data['message'] + '<button type="button" class="close" data-dismiss="alert">×</button></div>');
break;
}
// if (data['error']) { // eсли oбрaбoтчик вeрнул oшибку
// alert(data['error']); // пoкaжeм eё тeкст
// } else { // eсли всe прoшлo oк
// alert('Письмo oтврaвлeнo! Чeкaйтe пoчту! =)'); // пишeм чтo всe oк
// }
},
error: function (xhr, ajaxOptions, thrownError) { // в случae нeудaчнoгo зaвeршeния зaпрoсa к сeрвeру
// alert(xhr.status); // пoкaжeм oтвeт сeрвeрa
// alert(thrownError); // и тeкст oшибки
}
// complete: function(data) { // сoбытиe пoслe любoгo исхoдa
// form.find('input[type="submit"]').prop('disabled', false); // в любoм случae включим кнoпку oбрaтнo
// }
});
return false;
});
});
</script>