Stripe-PHP致命错误:Class';条纹收费';找不到


Stripe - PHP Fatal error: Class 'StripeCharge' not found

我一直在遵循Stripe文档,无法创建"费用"。

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 test@example.com"
));
?>

我能够处理第一个命令"'' Stripe'' Stripe::setApiKey("KEY_HERE");",但在处理下一个命令时收到错误,并收到以下错误:"在/var/www/Charge.php中找不到'Stripe''Charge'类"

下面是这个问题的最新答案。

来自Stripe:的Dana

如果您不喜欢使用Composer,我们最新的PHP绑定(>=2.x)包括一个init.php文件,您可以将其添加到您的项目中。下载并解压缩你想要的文件夹,然后在用于与Stripe API通信的脚本的顶部,将路径更改为此文件的位置。就像这样:require_one('/path/to/stripe-php/init.php')

这就是我的工作原理。

如果不使用composer安装Stripe库,则需要手动包含所有Stripe类。

Composer是首选方式,因为它将处理类的自动加载。以下是一个示例作曲家文件:

{
  "require": {
    "stripe/stripe-php": "2.*"
  }
}

然后,在项目的目录中,您需要从命令行运行composer update。然后,只需将require 'vendor/autoload.php';添加到php文件的顶部即可。

否则,用以下代码替换require('/var/www/stripe-php-2.1.1/lib/Stripe.php');以包括所有类:

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