我试图在我的网站上实施Stripe Checkout。我正在使用Composer,一切似乎都是正确的,但当我将我的私钥添加到init.php第17行时:
Stripe::setApiKey($stripe['private']);
PHP向我显示以下错误:
致命错误:Class' Stripe'在第17行的/ Applications / MAMP / htdocs / stripe_payment / app / init.php中找不到
以下是完整档案:
<?php
session_start();
//composer auto load
require_once 'vendor/autoload.php';
$_SESSION['user_id'] = 3;
$stripe = [
'publishable' => '..... my test key.....',
'private' => '..... my test key.....'
];
//when added brakes the code
Stripe::setApiKey($stripe['private']);
$db = new PDO('mysql:host=localhost;dbname=stripe_custom;','root','root');
$userQuery = $db->prepare("
SELECT id, username, email, premium
FROM users
WHERE id = :user_id
");
$userQuery->execute(['user_id' => $_SESSION['user_id']]);
$user = $userQuery->fetchObject();
?>
我认为这是一个很小的东西,但我是一个初学者,我无法弄明白。我做错了什么?
答案 0 :(得分:1)
最新版本的Stripe的PHP绑定(2. *)现在使用Namespaces
。这意味着大多数API调用现在已经更改,例如:
Stripe::setApiKey("sk_test_XXX");
Stripe_Customer::create();
会变成:
\Stripe\Stripe::setApiKey("sk_test_XXX");
\Stripe\Customer::create();
否则,如果您不想更新代码,则需要确保下载legacy version(1.18.0)。