【问题标题】:Braintree PHP Library (3.8.0) Error HandlingBraintree PHP 库 (3.8.0) 错误处理
【发布时间】:2016-02-29 10:28:42
【问题描述】:

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

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

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

【问题讨论】:

    标签: php braintree


    【解决方案1】:

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

    【讨论】:

    • .Net 也一样,不是吗?
    • 是的,没错。错误处理为similar
    • 嗨@pblesi,我已经实现了与您的解决方案类似的东西。但是错误消息不是用户友好的。例如。 paymentMethodNonce does not contain a valid payment instrument type. , Credit card must include number, paymentMethodNonce, or venmoSdkPaymentMethodCode (尝试提交空的 CC 号码。)我可以显示更好的一般信息吗?处理每个错误代码似乎也不是一个好的解决方案。
    猜你喜欢
    • 1970-01-01
    • 2017-08-11
    • 2016-04-11
    • 2011-04-22
    • 2011-04-30
    • 2012-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多