找不到“Stripe \ StripeCharge”类

时间:2015-10-22 08:33:51

标签: php stripe-payments

我已经看过Stack Overflow上这个问题的几个答案,但是解决方案并没有对我有用。我在测试Stripe API时收到以下错误

  

未找到类'Stripe \ StripeCharge'

这是我正在使用的代码:

require_once( '应用程序/的init.php');

\Stripe\Stripe::setApiKey($stripe['private']);

if(isset($_POST['stripeToken'])){

    $token = $_POST['stripeToken'];

    try {

        \Stripe\StripeCharge::create(array(
            "amount" => 2000,
            "currency" => "gbp",
            "card" => "$token",
            "description" => $Email
            ));

    } catch(Stripe_CardError $e){

        //Error Payment

    }
}

echo $_POST['stripeToken'];

/* Stripe Vairables */
$stripe = [
    'publishable' => 'hidden',
    'private' => 'hidden'
];

我没有使用composer来提取它,因为它适用于“init”文件的包含(据说)。任何帮助都会很棒!

1 个答案:

答案 0 :(得分:1)

该类的正确名称为\Stripe\Charge,而非\Stripe\StripeCharge。您可以在API文档中查看费用创建请求的示例:https://stripe.com/docs/api/php#create_charge

此外,card参数已在2015-02-18 API版本中重命名为source

另一个问题是您在最后为$stripe数组分配了API密钥。您需要先分配它,然后才能在\Stripe\Stripe::setApiKey()的调用中使用它。

还有其他一些小错误。以下是您的代码的更正版本:

require_once('app/init.php');

/* Stripe variables */
$stripe = [
    'publishable' => 'hidden',
    'private' => 'hidden'
];

\Stripe\Stripe::setApiKey($stripe['private']);

if(isset($_POST['stripeToken'])) {

    $token = $_POST['stripeToken'];
    $email = $_POST['stripeEmail'];

    try {

        $charge = \Stripe\Charge::create(array(
            "amount" => 2000,
            "currency" => "gbp",
            "source" => $token,
            "description" => $email
        ));

        // echo $charge->id;

    } catch(\Stripe\Error\Card $e) {

        // Card error

    }
}