2014-10-30 202 views
0

我正在尝试实施与prestashop的第三方支付集成。我已经使用universepay模块来获得基本支付模块。但是,我需要知道如何获取购物车物品的价值和金额,以便我可以将此通知给我的第三方支付提供商。该数据可用于哪些文件?谁能帮忙?Prestashop第三方支付集成

回答

0

请参阅此挂钩名单:

http://doc.prestashop.com/display/PS15/Hooks+in+PrestaShop+1.5

这是在现有的PrestaShop挂钩的(几乎)完整列表。如果您需要查找在确切的给定时刻执行什么钩子(例如,当您重定向到订单确认页面时),请转至Hook.php级别,搜索exec()方法,然后搜索error_log($hook_name);。哟知道你将要使用它钩后,你的模块中创建一个函数:

public function hook{HOOKNAME}($args){ 
    error_log(print_r($args, 1)); 
} 

这样你就知道你的钩子函数什么参数传递。最有可能的是,您选择了一些与订单相关的订单钩子,您将有一个订单对象传递给您,它将包含您所需订单的所有信息。

+0

嗨我试着你的method..however同时检查管理面板中的日志文件..我没有看到任何数据打印。我该怎么做? – Philomath 2014-11-03 11:00:05

+0

error_log打印到服务器中的PHP错误日志。 – gskema 2014-11-03 12:54:42

0

如果您正在创建自己的付款模块来执行此操作,那么随着您的模块将extend PaymentModule,您可以使用payment挂钩在生成付款按钮清单时获取此信息。

class MyPaymentModule extends PaymentModule { 

    public function __construct() { 
    $this->name = 'My Payment Module'; 
    ... 
    } 

    public function install() { 
    return (bool)$this->registerHook('payment'); 
    } 

    public function hookPayment($aParams) { 
    $oCart = $aParams['cart']; 
    $aProducts = $oCart->getProducts(); 
    ... 
    $sHtmlPaymentButton = '<b>My Payment Module</b>'; 
    return $sHtmlPaymentButton; 
    } 
} 

显然有很多额外的代码和辛勤工作将需要把这个上面的代码片段工作支付模块,但希望它给出了回答你的问题,并给你一个很好的起点。

另外,如果您需要此信息对您店铺的所有支付模块,那么你可以使用这个类文件的覆盖拷贝到您的覆盖/班文件夹访问来自PaymentModule类的validateOrder功能内的信息。