【发布时间】:2016-02-29 10:28:42
【问题描述】:
PHP 库从大多数 API 调用返回结果对象。区分验证错误和事务错误的官方方法是什么?
Braintree 文档似乎建议使用sizeof($result->errors) > 0 来确定是否发生了验证错误。但是当发生事务错误时,这也是 > 0。
我能想到的唯一其他方法是以某种方式确定事务对象是否存在于$result 对象中,有点破解,然后查看事务对象中的状态
【问题讨论】:
PHP 库从大多数 API 调用返回结果对象。区分验证错误和事务错误的官方方法是什么?
Braintree 文档似乎建议使用sizeof($result->errors) > 0 来确定是否发生了验证错误。但是当发生事务错误时,这也是 > 0。
我能想到的唯一其他方法是以某种方式确定事务对象是否存在于$result 对象中,有点破解,然后查看事务对象中的状态
【问题讨论】:
全面披露:我在 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;
}
【讨论】:
paymentMethodNonce does not contain a valid payment instrument type. , Credit card must include number, paymentMethodNonce, or venmoSdkPaymentMethodCode (尝试提交空的 CC 号码。)我可以显示更好的一般信息吗?处理每个错误代码似乎也不是一个好的解决方案。