2016-07-04 2 views
0

Я пытаюсь проверить нашивки Checkout на моем виртуальном сервере, но когда я пытаюсь вернуть эту ошибку:Фатальная ошибка PHP класс не найден, но он включен в проект

Fatal error: Class 'Stripe\Customer' not found in /home/user/public_html/charge.php on line 8

Как было предложено here я проверил, если файл ./config.php существовал с:

var_dump(file_exists("./config.php"));

возвращает bool(true) быть PhP начинающий я не уверен, что я делаю неправильно.

charge.php

<?php 
    require_once('./config.php'); 

    var_dump(file_exists("./config.php")); 

    $token = $_POST['stripeToken']; 

    $customer = \Stripe\Customer::create(array(
     'email' => '[email protected]', 
     'source' => $token 
)); 

    $charge = \Stripe\Charge::create(array(
     'customer' => $customer->id, 
     'amount' => 2000, 
     'currency' => 'usd' 
)); 

    echo '<h1>Successfully charged $20.00!</h1>'; 


?> 

config.php

<?php 
require_once('vendor/stripe/init.php'); 
$stripe = array(
    secret_key  => getenv('sk_test_PidozakrX1NIEf8YM9TBDMl8'), 
    publishable_key => getenv('pk_test_pCzekEHR4Io5YFJhrzFE7Koe') 
); 
\Stripe\Stripe::setApiKey($stripe['secret_key']); 
?> 

Каталог:

>public_html 
    >vendor 
     >stripe 
      >lib 
       >Charge.php 
       >Customer.php 
       >Stripe.php 

UPDATE Хорошо, поэтому с изменениями, предложенными Мэтью, возникает новая ошибка. Но я не уверен, где я должен установить ключ API Stripe::setApiKey(<API-KEY>)? Это aleady набор в config.php ...

Fatal error: Uncaught exception 'Stripe\Error\Authentication' with message 'No API key provided. (HINT: set your API key using "Stripe::setApiKey()".in /home/user/public_html/vendor/stripe/lib/ApiRequestor.php:127 Stack trace: #0 /home/user/public_html/vendor/stripe/lib/ApiRequestor.php(59): Stripe\ApiRequestor->_requestRaw('post', '/v1/customers', Array, Array) #1 /home/user/public_html/vendor/stripe/lib/ApiResource.php(115): Stripe\ApiRequestor->request('post', '/v1/customers', Array, Array) #2 /home/user/public_html/vendor/stripe/lib/ApiResource.php(155): Stripe\ApiResource::_staticRequest('post', '/v1/customers', Array, NULL) #3 /home/user/public_html/vendor/stripe/lib/Customer.php(37): Stripe\ApiResource::_create(Array, NULL) #4 /home/user/public_html/charge.php(9): Stripe\Customer::create(Array)

5 {main} thrown in /home/user/public_html/vendor/stripe/lib/ApiRequestor.php on line 127

+0

это работает, если вы просто делаете \ нашивки \ Customer :: создать (... –

+0

Я надеюсь, что это не те ваши живые полномочия нашивки ... – Machavity

+0

@Machavity: Каус не валяться Тебя алчущим да –

ответ

0

Вчера я отправил по электронной почте поддержку полосы. Я никогда не мог понять ответ ...! Таким образом, проблема заключается в том, как я установил ключи API в config.php. Этот код не будет делать то, что мы думаем ... Он пытается получить переменную окружения набор с именем переменной в качестве ключа API, который будет просто возвращать пустую строку ...

config.php

<?php 
require_once('vendor/stripe/init.php'); 
$stripe = array(
    secret_key  => getenv('sk_test_PidozakrX1NIEf8YM9TBDMl8'), 
    publishable_key => getenv('pk_test_pCzekEHR4Io5YFJhrzFE7Koe') 
); 
\Stripe\Stripe::setApiKey($stripe['secret_key']); 
?> 

должен быть

<?php 
require_once('vendor/stripe/init.php'); 
$stripe = array(
    secret_key  => ('sk_test_PidozakrX1NIEf8YM9TBDMl8'), 
    publishable_key => ('pk_test_pCzekEHR4Io5YFJhrzFE7Koe') 
); 
\Stripe\Stripe::setApiKey($stripe['secret_key']); 
?> 

В принципе, просто удалить getenv после каждой стрелки. Для меня это работает! Клиент создается, и сумма начисляется! Ничего особенного. Простое решение.

1

Я не уверен, но, похоже, из-за композитора,

Если вы не проверить путь еще, пожалуйста, сначала посмотрите их в composer.json

{ 
"autoload": { 
    "psr-0": { 
     "Sub-folder/path": "class's parent directory " 
    } 
} 

ПРИМЕЧАНИЕ: Если проблема возникает из-за этого, вы должны повторно установить WebSocket
ИЛИ вы можете организовать путь к этому ул ucture

+0

эй, я даю вам реквизит для попытки, но у меня есть электронная почта, и получается, что ответ был довольно прост. Я отправляю ответ. –

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