我一直在遵循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';
}