You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP引入ptt-payment-sdk提示Gateway类未找到报错

调用ptt-payment-sdk提示Gateway类未找到问题排查

相关代码仓库:ptt-payment-sdk

报错信息

Fatal error: Uncaught Error: Class 'Gateway' not found in /home/paylira/public_html/1.php:10 Stack trace: #0 {main} thrown in /home/paylira/public_html/1.php on line 10

问题背景

基于上述仓库的ptt-payment-sdk开发支付功能,已通过Composer安装composer.json中声明的全部依赖,运行测试代码时在实例化Gateway类的位置抛出上述类未找到的致命错误。

测试代码

include "vendor/autoload.php";
use AkilliEsnaf\Gateway;

$apiUser = "Entegrasyon_01";
$clientId = "1000000032";
$apiPass = "gkk4l2*TY112";

$gateway = new Gateway($clientId, $apiUser, $apiPass);

$orderId = "123127"; // 订单号需保证唯一
$amount = 125; // 对应金额1.25 TL
$installment = 0; // 不分期

$result = $gateway->threeDPayment("http://www.example.com/return", $amount, $installment, $orderId);
$threeDSessionId = $result->ThreeDSessionId;

composer.json配置

{
    "require": {
        "weepay/weepay-php": "^1.0",
        "alttantire/ptt-payment-sdk": "^1.0"
    }
}

解决步骤

按以下顺序逐一排查即可修复问题:

  • 刷新Composer自动加载索引:在项目根目录执行命令composer dump-autoload -o,生成优化后的类加载映射,排除自动加载缓存未更新导致的类识别失败问题。
  • 修正自动加载文件引入路径:当前代码用相对路径引入vendor/autoload.php,如果1.php文件和vendor文件夹不在同一级目录,会出现自动加载文件引入失败、所有Composer类都无法加载的问题。替换为绝对路径引入即可:include __DIR__ . "/vendor/autoload.php";,彻底规避相对路径的寻址错误。
  • 修正类的命名空间引入:你当前写的use AkilliEsnaf\Gateway;命名空间错误,直接进入vendor/alttantire/ptt-payment-sdk目录查看Gateway类文件开头的namespace声明即可看到,该类的实际命名空间为Ptt,将引入语句修改为use Ptt\Gateway;即可正常实例化对象。
  • 验证依赖包完整性:如果以上操作后仍报错,检查vendor目录下alttantire/ptt-payment-sdk文件夹是否存在完整源码,若文件缺失执行composer install --force强制重新拉取安装所有依赖。
  • 清除代码缓存:如果服务器开启了OPcache等字节码缓存,重启PHP-FPM或Apache服务清除旧代码缓存,避免缓存导致的修改不生效问题。

提示:命名空间修正后如果出现方法调用报错,直接查看vendor目录下Gateway类的公开方法定义,确认threeDPayment方法的参数顺序、参数数量是否和当前传参匹配,不同版本的SDK方法签名可能存在调整。

内容的提问来源于stack exchange,提问作者Heav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 01:45:36