简体   繁体   English

Prestashop 模块付款挂钩未触发

[英]Prestashop module payment hook not triggering

Prestashop 1.6.1.6 needs to make some API calls in the payment hook. Prestashop 1.6.1.6 需要在支付挂钩中进行一些 API 调用。 However for some reason the hook is not triggering and hookPayment method is not executing.但是由于某种原因,钩子没有触发,hookPayment 方法没有执行。 When comparing with Paypal module that has also hookPayment then this hook is executed.当与也有 hookPayment 的 Paypal 模块进行比较时,就会执行这个钩子。 What I am doing wrong?我做错了什么?

Module code is as simple as possible模块代码尽可能简单

<?php

if (!defined('_PS_VERSION_'))
    exit;

class TestModule extends Module
{

    public function __construct()
    {
        $this->name = 'testmodule';
        $this->tab = 'shipping_logistics';
        $this->version = '1.0.0';
        $this->author = 'Firstname Lastname';
        $this->need_instance = 0;
        $this->ps_versions_compliancy = array('min' => '1.6', 'max' => _PS_VERSION_);
        $this->bootstrap = true;

        parent::__construct();

        $this->displayName = $this->l('Test Module');
        $this->description = $this->l('Description of my module.');

        $this->confirmUninstall = $this->l('Are you sure you want to uninstall?');
    }

    public function install()
    {
        if (!parent::install() || !$this->registerHook('payment'))
            return false;
        return true;
    }

    public function uninstall()
    {
        if (!parent::uninstall())
            return false;
        return true;
    }

    public function hookPayment($params)
    {
        ddd($params);
    }
}

After installing the hook is registered in database安装钩子后在数据库中注册

mysql> select * from module where id_module=75;
+-----------+------------+--------+---------+
| id_module | name       | active | version |
+-----------+------------+--------+---------+
|        75 | testmodule |      1 | 1.0.0   |
+-----------+------------+--------+---------+
1 row in set (0,00 sec)

mysql> select * from hook_module where id_module=75;
+-----------+---------+---------+----------+
| id_module | id_shop | id_hook | position |
+-----------+---------+---------+----------+
|        75 |       1 |       1 |        4 |
+-----------+---------+---------+----------+
1 row in set (0,00 sec)

mysql> select * from hook where id_hook=1;
+---------+----------------+---------+-----------------------------------------------------+----------+-----------+
| id_hook | name           | title   | description                                         | position | live_edit |
+---------+----------------+---------+-----------------------------------------------------+----------+-----------+
|       1 | displayPayment | Payment | This hook displays new elements on the payment page |        1 |         1 |
+---------+----------------+---------+-----------------------------------------------------+----------+-----------+
1 row in set (0,00 sec)

您在函数名称中public function hoolPayment($params)字,它说public function hoolPayment($params) ,但应该是public function hookPayment($params)

PrestaShop module needs to extend PaymentModule during the installation for the ability to trigger payment hook. PrestaShop 模块需要在安装过程中扩展 PaymentModule 才能触发支付挂钩。 Just changing the extends nor reset do not help.仅更改扩展或重置无济于事。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM