Reputation: 107
I've been following the Stripe documentation and I am unable to create a "charge".
Charge.php
require('/var/www/stripe-php-2.1.1/lib/Stripe.php');
\Stripe\Stripe::setApiKey("KEY_HERE");
\Stripe\Charge::create(array(
"amount" => 400,
"currency" => "usd",
"source" => "TOKEN_HERE", // obtained with Stripe.js
"description" => "Charge for [email protected]"
));
?>
I'm able to process the first command "\Stripe\Stripe::setApiKey("KEY_HERE");" but receive an error when processing the next and receive the following error: "Class 'Stripe\Charge' not found in /var/www/charge.php"
Upvotes: 9
Views: 27532
Reputation: 390
Here is an updated answer to this question.
From Dana at Stripe:
If you prefer not to use Composer, our latest PHP bindings (>=2.x) include a init.php file that you can add to your project. Download and unzip the folder whereever you'd like, then include this init.php at the top of your scripts you use to communicate with the Stripe API, changing the path to the location of this file. Just like this: require_once('/path/to/stripe-php/init.php')
And that's what worked for me.
Upvotes: 25
Reputation: 1068
If you don't use composer to install the Stripe library you will need to manually include all of the Stripe classes.
Composer is the preferred way as it will handle the autoloading of classes. Here is a sample composer file:
{
"require": {
"stripe/stripe-php": "2.*"
}
}
And then from a command line you would need to run composer update
while in the directory for your project. Afterwards, just add require 'vendor/autoload.php';
to the top of your php file.
Otherwise, replace require('/var/www/stripe-php-2.1.1/lib/Stripe.php');
with this code to include all of the classes:
$stripeClassesDir = __DIR__ . '/stripe-php-2.1.1/lib/';
$stripeUtilDir = $stripeClassesDir . 'Util/';
$stripeErrorDir = $stripeClassesDir . 'Error/';
set_include_path($stripeClassesDir . PATH_SEPARATOR . $stripeUtilDir . PATH_SEPARATOR . $stripeErrorDir);
function __autoload($class)
{
$parts = explode('\\', $class);
require end($parts) . '.php';
}
Upvotes: 14