2015-10-22 5 views
1

Я посмотрел на несколько ответов на этот вопрос о переполнении стека, но решения для меня не работали. Im получает следующее сообщение об ошибке во время тестирования полосового APIClass 'Stripe StripeCharge' не найден

класса 'Stripe \ StripeCharge' не найден

Это код, который я использую:

require_once ('приложение/инициализация. PHP ');

\Stripe\Stripe::setApiKey($stripe['private']); 

if(isset($_POST['stripeToken'])){ 

    $token = $_POST['stripeToken']; 

    try { 

     \Stripe\StripeCharge::create(array(
      "amount" => 2000, 
      "currency" => "gbp", 
      "card" => "$token", 
      "description" => $Email 
      )); 

    } catch(Stripe_CardError $e){ 

     //Error Payment 

    } 
} 

echo $_POST['stripeToken']; 

/* Stripe Vairables */ 
$stripe = [ 
    'publishable' => 'hidden', 
    'private' => 'hidden' 
]; 

Я не использовал композитор, чтобы осуществить это, как он работает с включаемым в «INIT» файл (предположительно). Любая помощь будет замечательной!

+0

Простая ошибка. Массив был установлен ниже всего остального * FACEPALM * – Frog82

ответ

1

Правильное название этого класса: \Stripe\Charge, а не \Stripe\StripeCharge. Вы можете увидеть пример запроса создания заряда в документации API: https://stripe.com/docs/api/php#create_charge

Кроме того, параметр card был переименован в source в версии 2015-02-18 API.

Другая проблема заключается в том, что вы назначаете массив $stripe с вашими ключами API в конце. Вам необходимо назначить его, прежде чем вы сможете использовать его в вызове \Stripe\Stripe::setApiKey().

Были и другие незначительные ошибки. Вот скорректированная версия вашего кода:

require_once('app/init.php'); 

/* Stripe variables */ 
$stripe = [ 
    'publishable' => 'hidden', 
    'private' => 'hidden' 
]; 

\Stripe\Stripe::setApiKey($stripe['private']); 

if(isset($_POST['stripeToken'])) { 

    $token = $_POST['stripeToken']; 
    $email = $_POST['stripeEmail']; 

    try { 

     $charge = \Stripe\Charge::create(array(
      "amount" => 2000, 
      "currency" => "gbp", 
      "source" => $token, 
      "description" => $email 
     )); 

     // echo $charge->id; 

    } catch(\Stripe\Error\Card $e) { 

     // Card error 

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