Я – определенный PHP noob, поэтому, пожалуйста, несите меня. Я пытаюсь создать простой способ оплаты пожертвований для моего веб-сайта по сбору средств. У меня есть опция paypal, но я хотел бы добавить опцию stripe.
Я использую простой процесс Checkout для сбора информации о карте и настройки маркера полосы. Я установил файл pay.php для обработки информации о карте на сервере.
<!DOCTYPE html> <html> <body> <?php // secret key ***Stripe::setApiKey("sk_test_##########");*** // Get the credit card details submitted by the form $token = $_POST['stripeToken']; //Create the charge on Stripe's servers try { $charge = Stripe_Charge::create(array( "amount" => 500, // amount in cents, again "currency" => "aud", "card" => $token, "description" => "payinguser@example.com") ); } catch(Stripe_CardError $e) { // card decline } ?> </body> </html>
Очевидно, я использую правильный секретный ключ, я только что заблокировал его здесь. Кажется, что все работает с формой, но когда она POSTS to pay.php, она вызывает эту ошибку.
Неустранимая ошибка: Class 'Stripe' не найдена в /home/munkeychunk/public_html/pay.php в строке 8
Строка 8, как указано выше, является ключом секретного ключа / ключом API. Как я уже сказал, я немного начинаю PHP, и я не уверен, как или как установить класс «Stripe»!
Большая часть PHP поднимается прямо из собственной документации, но она, похоже, не работает прямо из коробки. Моя попытка решить состояла в том, чтобы попытаться 'include Stripe.php'
, используя внешнюю страницу stripe.php, которая используется, если вы обрабатываете платежи, используя javascript / jquery, а не опцию проверки полосы.
Любая помощь будет принята с благодарностью – будьте осторожны с вашими комментариями!
У меня была такая же проблема, но затем я установил Stripe с помощью Composer . Затем в моем PHP-файле я требую_загрузить файл autoload.php и, похоже, в библиотеку Stripe
<?php // Set your secret key: remember to change this to your live secret key in production // See your keys here https://dashboard.stripe.com/account require_once('/home2/username/vendor/autoload.php'); \Stripe\Stripe::setApiKey("sk_test_########"); // Get the credit card details submitted by the form $token = $_POST['stripeToken']; // Create the charge on Stripe's servers - this will charge the user's card try { $charge = \Stripe\Charge::create(array( "amount" => 1000, // amount in cents, again "currency" => "usd", "source" => $token, "description" => "payinguser@example.com") ); } catch(\Stripe\Error\Card $e) { // The card has been declined }; ?>
require_once('/home2/username/vendor/autoload.php');
Вместо init.php
используйте init.php
В зависимости от того, где находятся ваши файлы Stripe, вам, возможно, придется редактировать инструкции пути в каждой строке init.php
Использование autoload.php
– это когда Stripe установлен с Composer. Если вы хотите использовать Stripe с ручной установкой, используйте init.php
где разработчики Stripe предоставили все функции, содержащиеся в ответе выше.
Я предполагаю, что вы не включили библиотеку Stripe, как указано в документации по Stripe. Так что это должно быть
<!DOCTYPE html> <html> <body> <?php //Include stripe library first before doing anything related to stripe here require_once('./lib/Stripe.php'); // secret key ***Stripe::setApiKey("sk_test_##########");*** // Get the credit card details submitted by the form $token = $_POST['stripeToken']; //Create the charge on Stripe's servers try { $charge = Stripe_Charge::create(array( "amount" => 500, // amount in cents, again "currency" => "aud", "card" => $token, "description" => "payinguser@example.com") ); } catch(Stripe_CardError $e) { // card decline } ?> </body> </html>
Документация: https://stripe.com/docs/checkout/guides/php
Примечание. Требуется среда PHP> = 5.2.
Загрузка библиотеки: https://code.stripe.com/stripe-php-latest.zip
Для тех из вас, кто все еще получает сообщение об ошибке
Класс 'Stripe' не найден в /home/munkeychunk/public_html/pay.php в строке 8
Я с тобой. Я обошел эту проблему, выполнив require_once для всех необходимых файлов Stripe в / lib /. Вопросы порядка, вот что сработало для меня
require_once ('./stripe-php-2.1.1/lib/Stripe.php') ; require_once ('./stripe-php-2.1.1/lib/Util/Set.php') ; require_once ('./stripe-php-2.1.1/lib/Util/RequestOptions.php') ; require_once ('./stripe-php-2.1.1/lib/Util/Util.php') ; require_once ('./stripe-php-2.1.1/lib/Error/Base.php') ; require_once ('./stripe-php-2.1.1/lib/Error/InvalidRequest.php') ; require_once ('./stripe-php-2.1.1/lib/Object.php') ; require_once ('./stripe-php-2.1.1/lib/ApiRequestor.php') ; require_once ('./stripe-php-2.1.1/lib/ApiResource.php') ; require_once ('./stripe-php-2.1.1/lib/SingletonApiResource.php') ; require_once ('./stripe-php-2.1.1/lib/Charge.php') ; $files = glob('./stripe-php-2.1.1/lib/*.php'); foreach ($files as $file) { require_once($file); } $files = glob('./stripe-php-2.1.1/lib/Error/*.php'); foreach ($files as $file) { require_once($file); } $files = glob('./stripe-php-2.1.1/lib/Util/*.php'); foreach ($files as $file) { require_once($file); }