【发布时间】:2017-01-16 23:11:44
【问题描述】:
我用 composer 安装了 PayPal SDK,但我的 php 文件 CHECKOUT.php 错误是:
致命错误:在 'Paypal\Api\Payer' 类中找不到 C:\xampp\htdocs\pagos\checkout.php 第 23 行
checkout.php:
<?php
require ("start.php");
use Paypal\Api\Payer;
use Paypal\Api\Item;
$payer = new Payer();
$payer->setPaymentMethod("paypal");
$item = new Item();
$item->setName($descripcion)
->setCurrency('MXN')
->setQuantity(1)
->setPrice($precio);
$itemList = new ItemList();
$itemList->setItems([$item]);
start.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';
$apiContext = new \PayPal\Rest\ApiContext(
new \PayPal\Auth\OAuthTokenCredential(
'ashdjkhaskdjhalksdfjhaglskjdfhlasdfasdfsdfgh', // ClientID
'ejkhsdkjhakjdhakjshdkjashdkjashdkjaskjdhaskjh' // ClientSecret
)
);
$apiContext->setConfig([
'mode'=>'sandbox',
'http.ConnectionTimeOut'=>30,
'log.LogEnabled'=>false,
'log.FileName'=>'',
'log.LogLevel'=>'FINE',
'validation.level'=>'log'
]);
【问题讨论】:
-
将
require __DIR__ . '/vendor/autoload.php';添加到checkout.php的顶部可能会解决问题。请阅读stackoverflow.com/q/36577020/934739 并了解include()和require()的工作原理,以及Composer Autoloading 的工作原理。 -
没用 :( 我不明白为什么?vendor/autoload.php 工作正常,错误只在 checkout.php 这个 php 文件不读取命名空间。
-
Paypal\Api\Payer不存在。也许它的自动加载器没有定义或损坏。您正在使用github.com/paypal/PayPal-PHP-SDK?显示您的composer.json文件,您是否尝试过重新生成作曲家自动加载? SDK 似乎使用 PSR-0。检查包的 PSR-0 是否由生成的 composer 自动加载器定义。提示:vendor/composer/*. -
我正在使用 composer 的 PayPal sdk。我的 json 是: {"requiere":{"paypal-sdk-php":"*"}} 对不起我从手机上写的“代码”
标签: php paypal paypal-sandbox paypal-rest-sdk