2016-09-26 4 views
2

Я использую Stripe для немецкого сайта, я мог бы перевести сообщения об ошибках JS (stripeResponseHandler) для формы, следующей за this post, но не за исключением проверки ($ e-> getMessage()). Я получаю ошибку исключения на английском языке, как я могу ее перевести?Локализация локализации Stripe catch

Мой 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(); 
} 

ответ

0

сообщения об ошибках, возвращаемые API на английском языке - в это время, полоса не имеет поддержки для локализованных сообщений об ошибках 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 
} 
+0

Спасибо, эти ошибки я уже перевел их в фазу JS, но есть другая ошибка, возникающая из исключения API после отправки. –

+0

Да, номер карты может быть успешно обозначен во внешнем коде, а затем для сбоя создания сбоя (например, потому что у карты недостаточно средств). Таким образом, вам также придется поймать ошибки в вашем серверном коде. – Ywain

Смежные вопросы