是否有使用PHPV7.0运行的PSWebServiceLibrary.php版本?

是否有使用PHPV7.0运行的PSWebServiceLibrary.php版本?,php,smarty,prestashop-1.6,Php,Smarty,Prestashop 1.6,我有一个在Prestashop 1.6.1.5上运行的站点A,为了在另一个也在Prestashop 1.6.1.5下运行的站点(站点B)上检索数据,我使用了一个模块“自制”(由我的前任开发),该模块使用pswebserviceclibrary.php。 当我在站点B上更改PHP的版本(从5.6版更改为7.0版)并希望在站点A上使用该模块时,我出现了一些错误,包括pswebserviceclibrary.PHP 因此,我有以下错误消息: 致命错误:未捕获异常“PrestaShopWebservic

我有一个在Prestashop 1.6.1.5上运行的站点A,为了在另一个也在Prestashop 1.6.1.5下运行的站点(站点B)上检索数据,我使用了一个模块“自制”(由我的前任开发),该模块使用pswebserviceclibrary.php。 当我在站点B上更改PHP的版本(从5.6版更改为7.0版)并希望在站点A上使用该模块时,我出现了一些错误,包括pswebserviceclibrary.PHP 因此,我有以下错误消息:

致命错误:未捕获异常“PrestaShopWebserviceException”并显示消息 '对PrestaShop Web服务的调用失败,返回的HTTP状态为500。这意味着:内部服务器错误。在www.ndd.fr/pswebserviceclibrary.php:95中 堆栈跟踪:

如果我回到版本5.6,我没有问题,模块工作正常。 这是一个与PHP版本7相关的问题。 是否有与PHPV7.0兼容的PSWebServiceLibrary.php版本?
提前感谢您的帮助,因为我是PHP的初学者。事实上,PrestaShop 1.6.1.5并不与PHP 7.x正式兼容,但是,您应该能够轻松修复此错误:

  • 编辑文件/classes/webservice/WebserviceRequest.php并在线794替换:

    if(count(self:$shopIDs)){

    if(is_数组(self:$shopIDs)&&count(self:$shopIDs)){

  • 下载PSWebServiceLibrary.php的最新版本

  • 要确保现在一切正常,请使用以下代码创建一个新文件test-ws.php(并键入url/凭据):

    
    
    如果它有效,您应该得到如下结果:

    PrestaShopWebservice对象
    (
    [url:受保护]=>http://www.yourstore.com
    [密钥:受保护]=>YOURWSKEYHERE
    [调试:受保护]=>
    [版本:受保护]=>未知
    )


  • 如果在此之后仍然出现500个错误:打开php.ini配置文件中的错误日志并检查错误日志。或者,您可以尝试在/config/defines.inc.php中将(PS)MODE(DEV)设置为true。

    对不起,布鲁诺。我在这两个站点上编辑了文件/classes/webservice/webservicequest.php和PSWebServiceLibrary.php(主站点和从站点)。然后,我创建并测试了文件test-ws.php(并键入从站点的URL和相应的密钥)。这很有效。然后,我在PHP7中打开了从站点,在主站点上运行模块,但它会犯同样的错误。
        0 www.ndd.fr/PSWebServiceLibrary.php(297): PrestaShopWebservice->checkStatusCode(500)
        1 www.ndd.fr/modules/orderlist/classes/orderArrayCreator.class.php(145): PrestaShopWebservice->get(Array)
        2 www.ndd.fr/modules/orderlist/controllers/admin/AdminOrderList.php(125): orderArrayCreator->createDistantOrderArray()
        3 www.ndd.fr/classes/controller/Controller.php(178): AdminOrderListController->postProcess()
        4 www.ndd.fr/override/classes/Dispatcher.php(335): ControllerCore->run()
        5 www.ndd.fr/override/classes/Dispatcher.php(107): Dispatcher->dispatch_16()
        6 www.ndd.fr/admin/index.php(58): Dispatcher->dispatch()
        7 {main} thrown in www.ndd.fr/PSWebServiceLibrary.php on line 95
    
    <?php
    
    require_once('./PSWebServiceLibrary.php');
    
    try
    {
        $ws = new PrestaShopWebservice('http://www.yourstore.com', 'YOURWSKEYHERE', false);
        echo '<pre>';
        print_r($ws);
    }
    catch (PrestaShopWebserviceException $ex)
    {
        echo 'Error : '.$ex->getMessage();
    }
    
    ?>