2016-11-22 3 views
2

Ich verwende folgenden Code zum Erstellen von Stripe-Benutzer.Stripe Fehlerbehandlung Fehler in PHP

Aber ich bin nicht in der Lage, Fehler zu behandeln, wenn die Kartennummer falsch ist.

 $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 
     } 

Dieser Code gibt folgenden Fehler.

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

+0

'Klasse 'Stripe \ Fehler \ Card' nicht found' bedeutet nicht die Kartennummer falsch war, es bedeutet, dass PHP wasn Ich kann die Klasse "Stripe \ Error \ Card" – bassxzero

+0

finden, aber dieser Fehler tritt auf, wenn ich nach der falschen Kartennummer suche. wenn ich falsch oder nur 2-stellige Nummer einstelle. Bitte helfen Sie mir, dieses Problem zu lösen. Wenn es Pfadfehler ist? dann, wie man den Weg für dasselbe setzt ?? – web

+0

, die die Bedeutung des Fehlers nicht ändert. – bassxzero

Antwort

1

Sie laden die PHP-Bibliothek von Stripe nicht richtig. Sie müssen die Datei init.php im Stammverzeichnis des Ordners der Bibliothek angeben, wie in der Datei angegeben.

Ich würde empfehlen,

$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); 

mit dem Ersetzen:

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

gegeben Dank Ywain funktioniert es für mich. Nochmals vielen Dank !!!! – web