我正在尝试实现与prestashop的第三方支付集成。我已经使用了universepay模块来获得基本的支付模块。然而,我需要知道如何获得购物车项目和金额的值,以便我可以传递给我的第三方付款provider.In,这些数据是哪个文件?有人能帮上忙吗?
发布于 2014-11-03 05:07:27
请参阅此挂钩列表:
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));
}
这样你就会知道传递给钩子函数的参数是什么。最有可能的是,如果你选择了一些与订单确认相关的钩子,你会有一个向下传递给你的order对象,它将拥有你需要的关于订单的所有信息。
发布于 2015-05-07 20:56:04
如果您正在创建自己的支付模块来执行此操作,则由于您的模块将执行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
函数中访问此信息,方法是使用override/classes文件夹中此类文件的覆盖副本。
https://stackoverflow.com/questions/26648345
复制相似问题