【发布时间】:2018-04-15 14:02:07
【问题描述】:
我在使用 PayPal 的 REST API 创建的电子商务网站来处理付款时确实遇到了一些困难。
我设置了所有这些,它在我的服务器环境中运行良好(使用运行 PHP 7.1.1 的 XAMPP)但我最近将项目移动到托管服务器(运行 PHP 7.0 的 1and1),现在我收到了以下错误(我制作了一个测试脚本,显示与我的 checkout.php 相同的错误以保存不必要的代码):
致命错误:未捕获的错误:在 /homepages/XX/XXXXXXXXXX/htdocs/test.php:6 中找不到类 'PayPal\API\payer' 堆栈跟踪:在 /homepages/XX/XXXXXXXXXX 中抛出 #0 {main} /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
)
);
?>
自动加载.php
<?php
// autoload.php @generated by Composer
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInitddf6726757c04c8de8443463a9140734::getLoader();
我知道这是由于命名空间/类造成的,而且我已经数不清自己花了多少时间在 Google 上搜索和搜索 Stack Overflow 以寻求答案,现在我承认失败并寻求帮助。如果有重复的答案,我提前道歉,有很多类似的错误,但我没有看到能够解释/解决我的具体问题。
我真正无法理解的是为什么这在我的本地服务器上可以正常工作,但在托管服务器上却不行。我知道我的要求没问题,因为如果我输入 echo "test";例如在相关的.PHP文件中,然后输出到屏幕上。
我没有使用作曲家或任何类似的软件,一切都是用记事本++编写的。 Paypal API 未经修改 (from here),位于我的根目录中,名称为“/PayPal-PHP-SDK/”。
非常感谢任何帮助。 谢谢
【问题讨论】:
-
你能给出 autoload.php 的代码和你的 Paypal 类吗?
-
可能是案例问题...您尝试
Payer()而不是payer()吗? -
是的,不幸的是,我尝试过 Payer 和 Paypal(小写 P)以及两者的各种组合,但均无济于事。
-
你不应该包括
vendor/autoload.php吗? -
我相信 vendor/autoload.php 用于基于 Composer 的安装,我的不是,但如果我没有成功,我可能会考虑使用它
标签: php class paypal namespaces