У меня действительно есть некоторые проблемы с сайтом электронной коммерции, который я создал, используя REST API PayPal для обработки платежей.
Я настроил все это, и он отлично работал в моей серверной среде (используя XAMPP под управлением PHP 7.1.1), но я недавно переместил проект на хост-сервер (1and1 под управлением PHP 7.0), и теперь я получаю следующую ошибку ( Я сделал тестовый скрипт, показывающий ту же ошибку, что и мой checkout.php, чтобы сохранить ненужный код):
Неустранимая ошибка: необработанная ошибка: класс «PayPal \ API \ payer» не найден в /homepages/XX/XXXXXXXXXX/htdocs/test.php:6 Трассировка стека: # 0 {main} добавлено в / homepages / XX / XXXXXXXXXX / htdocs / test.php в строке 6
test.php:
<?php
require __DIR__."/bootstrap.php";
use PayPal\API\payer;
$test = new payer();
?>
bootstrap.php:
<?php
// 1. Autoload the SDK Package. This will include all the files and classes to your autoloader
// Used for composer based installation
// require __DIR__ . '/vendor/autoload.php';
// Use below for direct download installation
require __DIR__ . '/PayPal-PHP-SDK/autoload.php';
define('SITE_URL', 'http://www.XXXXXXXXXXXXXX.com/paypal');
// sandbox credentials
$paypal = new \PayPal\Rest\ApiContext(
new \PayPal\Auth\OAuthTokenCredential(
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', // ClientID
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' // ClientSecret
)
);
?>
autoload.php
<?php
// autoload.php @generated by Composer
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInitddf6726757c04c8de8443463a9140734::getLoader();
Я знаю, что это происходит из-за пространств имен / классов, и я потерял счет часов, которые я потратил на поиск в Google и поиск переполнения стека для ответов, и теперь я признаю поражение и прошу помощи. Я заранее извиняюсь, если есть повторяющийся ответ, есть много с похожими ошибками, но ни один из тех, кого я видел, не смог объяснить / решить мою конкретную проблему.
Я действительно не могу понять, почему это работает нормально на моем локальном сервере, но не на размещенном сервере. Я знаю, что мои требования в порядке, потому что, если я введу эхо «test»; например, в соответствующих файлах .PHP, затем он выводится на экран.
Я не использую Composer или любое подобное программное обеспечение, все было написано в Notepad ++. API Paypal не изменяется (отсюда) и находится в моем корневом каталоге как «/ PayPal-PHP-SDK /».
Любая помощь с благодарностью.
Спасибо
Спасибо, Рэндалл,
Это действительно была проблема, когда размещенный сервер Linux был суетлив в этом случае, а мой сервер Windows — нет.
Мне нужно было установить Api вместо API в моем отчете об использовании и Payer (против плательщика), как показано ниже:
<?php
require __DIR__."/bootstrap.php";
use PayPal\Api\Payer;
$test = new Payer();
?>
Других решений пока нет …