1

我正在使用 Worldpay 模板表格进行付款。输入卡详细信息后,我得到了 Worldpay 的令牌。但是当我重定向到付款页面以完成订单时,我没有找到 Worldpay 类。

$token = $_POST["token"];
$worldpay = new Worldpay('Service code here *********');

收到令牌但我收到错误

Fatal error: Class 'Worldpay' not found in index.php on line 4

我没有包含任何 PHP 类。我需要在上面添加类吗?如果是的话,谢谢

4

3 回答 3

1

该错误是由于您没有包含任何 PHP 类这一事实引起的。您需要的是整个 Worldpay PHP 库,可以从 Worldpay 的文档站点 https://online.worldpay.com/docs/code-libraries下载

下载最新的 PHP 库并确保在“完整”的 php 脚本中包含 Worldpay 类:

require(dirname(__FILE__) . '/../lib/Worldpay.php');
require(dirname(__FILE__) . '/../lib/Connection.php');
require(dirname(__FILE__) . '/../lib/AbstractAddress.php');
require(dirname(__FILE__) . '/../lib/DeliveryAddress.php');
require(dirname(__FILE__) . '/../lib/BillingAddress.php');
require(dirname(__FILE__) . '/../lib/AbstractOrder.php');
require(dirname(__FILE__) . '/../lib/Order.php');
require(dirname(__FILE__) . '/../lib/APMOrder.php');
require(dirname(__FILE__) . '/../lib/Error.php');
require(dirname(__FILE__) . '/../lib/OrderService.php');
require(dirname(__FILE__) . '/../lib/TokenService.php');
require(dirname(__FILE__) . '/../lib/Utils.php');
require(dirname(__FILE__) . '/../lib/WorldpayException.php');

确保在 /lib 目录中拥有库中提供的所有脚本。

根据您的 php 设置,您可能仍会遇到相同的问题。在这种情况下,只需注释掉 Worldpay 库文件中的所有命名空间声明。

例如

// namespace Worldpay; 
于 2016-07-23T22:29:13.327 回答
0

如果您已经通过 Composer 路径安装了 Worldpay PHP 库,您可以将“use”语句放在脚本顶部附近的行之后,以初始化 Composer 管理的第 3 方库。例如

use \Worldpay\Worldpay;
use \Worldpay\WorldpayException;
etc..
于 2019-09-27T10:43:02.223 回答
0

我遇到了完全相同的问题,为了解决它,我只包含了指向 WorldPay 库的内容交付网络地址的链接。这必须在表格之前引用,最好在页面顶部。下方链接;

 <script src='https://cdn.worldpay.com/v1/worldpay.js'></script>

正如 Martin 指出的那样,请确保不要延迟加载此 JavaScript,因为它会调用其他文件(是一个库)。

以下是 WorldPay 集成在线文档的链接:https ://beta.developer.worldpay.com/docs/wpop/own-form

于 2019-07-08T22:34:26.943 回答