Braintree PHP库(3.8.0)错误处理

Braintree PHP库(3.8.0)错误处理,php,braintree,Php,Braintree,PHP库返回大多数API调用的结果对象。区分验证错误和事务错误的官方方法是什么 Braintree文档似乎建议使用sizeof($result->errors)>0来确定是否发生了验证错误。但当发生事务错误时,该值也大于0 我唯一能想到的另一种方法是以某种方式确定交易对象是否存在于$result对象中,有点不对劲,然后查看交易对象中的状态完全公开:我在Braintree工作。如果您有任何进一步的问题,请随时与我们的团队联系 您是正确的,检查事务错误的建议方法是查看是否存在事务对象。下面是一段代码

PHP库返回大多数API调用的结果对象。区分验证错误和事务错误的官方方法是什么

Braintree文档似乎建议使用
sizeof($result->errors)>0
来确定是否发生了验证错误。但当发生事务错误时,该值也大于0

我唯一能想到的另一种方法是以某种方式确定交易对象是否存在于
$result
对象中,有点不对劲,然后查看交易对象中的状态

完全公开:我在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;
}

Net也是一样的,不是吗?是的,没错。错误处理是Hi@pblesi,我已经实现了与您的解决方案类似的东西。但错误消息对用户不友好。例如,
paymentMethodNonce不包含有效的支付工具类型。
信用卡必须包含数字、paymentMethodNonce或venmoSdkPaymentMethodCode
(尝试提交空抄送号)。我可以显示更好的一般消息吗?处理每个错误代码似乎也不是一个好的解决方案。