Braintree PHP Library(3.8.0)错误处理

时间:2016-02-29 10:28:42

标签: php braintree

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

Braintree docs 似乎建议使用sizeof($result->errors) > 0来确定是否发生了验证错误。但这也是>发生交易错误时为0。

我能想到的另一种方法是以某种方式确定事务对象是否存在于$result对象中,有点黑客,然后查看事务对象中的状态

1 个答案:

答案 0 :(得分:4)

完全披露:我在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;
}