Библиотека PHP Braintree (3.8.0) Обработка ошибок
Библиотека PHP возвращает объекты результатов большинства вызовов API. Каков официальный способ отличить ошибку проверки от ошибки транзакции?
Документы Брейнтри, кажется, предлагают использовать sizeof($result->errors) > 0
определить, произошли ли ошибки проверки. Но это также> 0, когда произошла ошибка транзакции.
Единственный другой способ, который я могу придумать, - это как-то определить, существует ли объект транзакции внутри $result
объект, немного взломать, а затем просмотреть статус в объекте транзакции
1 ответ
Полное раскрытие: я работаю в Braintree. Если у вас есть какие-либо дополнительные вопросы, свяжитесь с нашей службой поддержки.
Вы правы в том, что предлагаемый способ проверки на наличие ошибок транзакции заключается в проверке наличия объекта транзакции. Вот фрагмент кода, иллюстрирующий соответствующую обработку ошибок для Braintree\Transaction::sale
вызов.
if ($result->success){
$transaction = $result->transaction;
} elseif (!is_null($result->transaction)){
$transaction = $result->transaction;
$_SESSION["errors"] = "Transaction status - " . $result->transaction->status;
} else {
$errorString = "";
foreach($result->errors->deepAll() as $error) {
$errorString .= $error->code . "-" . $error->message . "\n";
}
$_SESSION["errors"] = $errorString;
}