2016-11-22 2 views
2

Я использую следующий код для создания пользователя с полосой.Ошибка обработки ошибок полосы в PHP

Но я не могу обработать ошибку, если номер карты неверен.

 $stripeClassesDir = __DIR__ . '/stripe-php-master/lib/'; 
     $stripeUtilDir = $stripeClassesDir . 'Util/'; 
     $stripeErrorDir = $stripeClassesDir . 'Error/'; 
     $stripeHttpClientDir = $stripeClassesDir . 'HttpClient/'; 

     set_include_path($stripeClassesDir . PATH_SEPARATOR . $stripeUtilDir . PATH_SEPARATOR . $stripeErrorDir . PATH_SEPARATOR . $stripeHttpClientDir); 

     function __autoload($class) 
     { 
      $parts = explode('\\', $class); 
      require end($parts) . '.php'; 

     } 

     try { 

       \Stripe\Stripe::setApiKey("sk_test_key"); 

       $t = \Stripe\Token::create(array("card" => array(
        "number" => $cardNumber, 
        "exp_month" => $cardMonth, 
        "exp_year" => $cardYear, 
        "cvc" => $cardCVC))); 

       //echo $t; 

      } catch(\Stripe\Error\Card $e) { 
      // Since it's a decline, \Stripe\Error\Card will be caught 
      $body = $e->getJsonBody(); 
      $err = $body['error']; 

      print('Status is:' . $e->getHttpStatus() . "\n"); 
      print('Type is:' . $err['type'] . "\n"); 
      print('Code is:' . $err['code'] . "\n"); 
      // param is '' in this case 
      print('Param is:' . $err['param'] . "\n"); 
      print('Message is:' . $err['message'] . "\n"); 
     } catch (\Stripe\Error\RateLimit $e) 
     { 
      // Too many requests made to the API too quickly 
     } catch (\Stripe\Error\InvalidRequest $e) { 
      // Invalid parameters were supplied to Stripe's API 
     } catch (\Stripe\Error\Authentication $e) { 
      // Authentication with Stripe's API failed 
      // (maybe you changed API keys recently) 
     } catch (\Stripe\Error\ApiConnection $e) { 
      // Network communication with Stripe failed 
     } catch (\Stripe\Error\Base $e) { 
      // Display a very generic error to the user, and maybe send 
      // yourself an email 
     } 
     catch (Exception $e) { 
      // Something else happened, completely unrelated to Stripe 
     } 

Этот код обеспечивает следующее сообщение.

Fatal error: Class 'Stripe\Error\Card' not found in /home/user/public_html/stripe-php-master/lib/ApiRequestor.php on line 114

+0

'Class 'Stripe \ Error \ Card' не found' не означает, что номер карты был не прав, это означает, что PHP WASN Невозможно найти класс 'Stripe \ Error \ Card' – bassxzero

+0

, но эта ошибка возникает, когда я проверяю неправильный номер карты. когда я помещаю неправильное или только 2-значное число. Пожалуйста, помогите мне решить эту проблему. Если это ошибка пути? то как установить путь для того же ?? – web

+0

, который не меняет значения ошибки. – bassxzero

ответ

1

Вы неправильно загружаете библиотеку PHP Stripe. Вам необходимо включить файл init.php в корень папки библиотеки, как указано в файле README.

Я бы рекомендовал заменить

$stripeClassesDir = __DIR__ . '/stripe-php-master/lib/'; 
$stripeUtilDir = $stripeClassesDir . 'Util/'; 
$stripeErrorDir = $stripeClassesDir . 'Error/'; 
$stripeHttpClientDir = $stripeClassesDir . 'HttpClient/'; 

set_include_path($stripeClassesDir . PATH_SEPARATOR . $stripeUtilDir . PATH_SEPARATOR . $stripeErrorDir . PATH_SEPARATOR . $stripeHttpClientDir); 

с:

require_once('./stripe-php-master/init.php'); 
+0

Спасибо Ywain, он работает для меня. Еще раз спасибо !!!! – web

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

  • Нет связанных вопросов^_^