Stripe - PHP致命错误:找不到类'Stripe\Charge'

Coy*_*ney 9 php class

我一直在关注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"
));
?>
Run Code Online (Sandbox Code Playgroud)

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

小智 22

这是这个问题的更新答案.

来自条纹的Dana:

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

这对我有用.

  • 这比选择的答案对我有用得多。这应该是这里选择的答案。 (2认同)

Mat*_*y B 12

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

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

{
  "require": {
    "stripe/stripe-php": "2.*"
  }
}
Run Code Online (Sandbox Code Playgroud)

然后从命令行中,您需要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';
}
Run Code Online (Sandbox Code Playgroud)