条纹捕获异常本地化

时间:2016-09-26 10:45:42

标签: php stripe-payments

我正在使用Stripe用于德语网站,我可以为this post之后的表单翻译JS(stripeResponseHandler)错误消息,但不是验证例外($ e-> getMessage())。 我在英语中遇到异常错误,我该怎么翻译?

我的PHP:

try {
    require_once('Stripe/init.php');
    \Stripe\Stripe::setApiKey("myKey"); //Secret Key
    $token = $_POST['stripeToken'];
    $coupon = \Stripe\Coupon::retrieve($_POST['couponId']);
    $charge =  \Stripe\Charge::create(array(...)
} catch (Exception $e) {
    echo $e->getMessage();
}

1 个答案:

答案 0 :(得分:0)

API返回的错误消息是英文的 - 此时,Stripe不支持本地化的API错误消息。

您可以执行SO answer中描述的内容,通过error handling提供您自己的翻译。例如。你可以这样做:

try {
    $charge = \Stripe\Charge::create(...);
} catch(\Stripe\Error\Card $e) {
    $body = $e->getJsonBody();
    $err  = $body['error'];
    switch ($err['code']) {
        case 'card_declined':
            // use your own "card declined" error message
            break;
        case 'invalid_number':
            // use your own "invalid number" error message
            break;
        // etc.
    }
} catch (\Stripe\Error\Base $e) {
    // another Stripe error happened, use a generic "error with our payment processor" message
} catch (Exception $e) {
    // something else happened, unrelated to Stripe
}