Braintree PHP 库 (3.8.0) 错误处理
Braintree PHP Library (3.8.0) Error Handling
PHP 库 returns 来自大多数 API 调用的结果对象。官方区分验证错误和交易错误的方式是什么?
Braintree 文档 似乎建议使用 sizeof($result->errors) > 0
来确定是否发生了验证错误。但是当发生交易错误时,这也是 > 0。
我能想到的唯一其他方法是以某种方式确定交易对象是否存在于 $result
对象中,有点 hack,然后查看交易对象中的状态
完全披露:我在 Braintree 工作。如果您有任何其他问题,请随时联系我们的 support 团队。
您是正确的,检查交易错误的建议方法是查看是否存在交易对象。下面是一段代码,说明了 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;
}
PHP 库 returns 来自大多数 API 调用的结果对象。官方区分验证错误和交易错误的方式是什么?
Braintree 文档 似乎建议使用 sizeof($result->errors) > 0
来确定是否发生了验证错误。但是当发生交易错误时,这也是 > 0。
我能想到的唯一其他方法是以某种方式确定交易对象是否存在于 $result
对象中,有点 hack,然后查看交易对象中的状态
完全披露:我在 Braintree 工作。如果您有任何其他问题,请随时联系我们的 support 团队。
您是正确的,检查交易错误的建议方法是查看是否存在交易对象。下面是一段代码,说明了 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;
}