Я пытаюсь научиться настраивать платежи по кредитным картам и использовать тестовую торговую площадку Balanced Payments. Я никогда раньше не устанавливал оператор try catch, и у меня возникли проблемы с обработкой ответа.
Вот мой оператор try/catch контроллера:
try{
$card->debits->create(array(
"amount" => $amount,
"appears_on_statement_as" => "test",
"description" => $invoiceId,
"order" => $order,
));
} catch (Balanced\Errors\Declined $e) {
$this->arrResponse['status'] = $e->getMessage();
return Response::json($this->arrResponse);
}
$invoice->save();
// send email function...
//redirect
$this->arrResponse['status'] = SUCCESS;
return Response::json($this->arrResponse);
Я вижу ошибку в инструментах разработчика Chrome, но не могу сделать так, чтобы она отображалась в моем представлении.
Chrome dev tools 500 заявление об ошибке внутреннего сервера:
error: {type: "Balanced\Errors\Declined", message: "",…}
file: "/Applications/MAMP/htdocs/testcc/vendor/balanced/balanced/src/Balanced/Errors/Error.php"
line: 42
message: ""
type: "Balanced\Errors\Declined
файл processpayment.js:
jQuery.post(baseURL+'/processPayment', {
uri: fundingInstrument.href,
amount: amount,
invoiceId: invoiceId,
}, function(r) {
// backend response
if (r.status === 200) {
$('#msgSection').empty().removeClass('alert-error alert-success').addClass('alert-success').text(' payment has been received').show();
} else {
// failure from backend
$('#msgSection').empty().removeClass('alert-success').addClass('alert-warning').text('error').show();
}
});
Когда тестовая карта успешно обработана, все работает, и в моем представлении появляется сообщение об успешном завершении. Однако, когда я использую тестовую карту, которая была отклонена, на мое представление не отправляется сообщение. Кто-нибудь видит, что я делаю неправильно?