2015-03-24 5 views
1

Я пытаюсь реализовать Stripe Checkout на своем веб-сайте. Я использую композитор, все, кажется, идет хорошо, но когда я добавляю свой секретный ключ в init.php строки 17:Неустранимая ошибка с Stripe Checkout: Class 'Stripe' не найден

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

PHP показывает мне следующее сообщение об ошибке:

Fatal error: Class 'Stripe' not found in/Applications/MAMP/htdocs/stripe_payment/app/init.php on line 17

Вот полный файл:

<?php 

session_start(); 


//composer auto load 
require_once 'vendor/autoload.php'; 

$_SESSION['user_id'] = 3; 

$stripe = [ 
'publishable' => '..... my test key.....', 
'private' => '..... my test key.....' 
    ]; 

//when added brakes the code 
Stripe::setApiKey($stripe['private']); 

$db = new PDO('mysql:host=localhost;dbname=stripe_custom;','root','root'); 

$userQuery = $db->prepare(" 
    SELECT id, username, email, premium 
FROM users 
WHERE id = :user_id 

    "); 
$userQuery->execute(['user_id' => $_SESSION['user_id']]); 

$user = $userQuery->fetchObject(); 

?> 

Я предполагаю, что это что-то маленькое, но я новичок, и я не могу понять это. Что я делаю не так?

+0

Пожалуйста, удалите тег «stripes» - это не связано с вашим вопросом. – mies

ответ

1

Последние версии привязок PHP Stripe's (2. *) теперь используют Namespaces. Это означает, что большинство вызовов API теперь изменился и, например:

Stripe::setApiKey("sk_test_XXX"); 
Stripe_Customer::create(); 

стал бы:

\Stripe\Stripe::setApiKey("sk_test_XXX"); 
\Stripe\Customer::create(); 

В противном случае, если вы не хотите, чтобы обновить код вам нужно сделать что вы загружаете legacy version (1.18.0).

+0

Отлично, это работает для меня, спасибо за вашу большую помощь. Как я уже сказал, я добавил \ Stripe \ в оба вызова API, и все работает как сон. – web4me

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