【发布时间】:2014-10-30 08:37:54
【问题描述】:
我正在尝试实现与 prestashop 的第三方支付集成。我已经使用了 Universepay 模块来获取基本的支付模块。但是我需要知道如何获取购物车项目的值和金额,以便我可以将其传递给我的第三方支付提供商。这些数据在哪个文件中可用?谁能帮忙?
【问题讨论】:
标签: php prestashop prestashop-1.6
我正在尝试实现与 prestashop 的第三方支付集成。我已经使用了 Universepay 模块来获取基本的支付模块。但是我需要知道如何获取购物车项目的值和金额,以便我可以将其传递给我的第三方支付提供商。这些数据在哪个文件中可用?谁能帮忙?
【问题讨论】:
标签: php prestashop prestashop-1.6
参考这个钩子列表:
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));
}
这样你就会知道哪些参数被传递给你的钩子函数。如果您选择了一些与订单确认相关的钩子,您将获得一个订单对象,其中包含您需要的所有订单信息。
【讨论】:
如果您正在创建自己的支付模块来执行此操作,那么您的模块将 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;
}
}
显然需要大量额外的代码和艰苦的工作才能将上面的代码 sn-p 变成一个有效的支付模块,但希望它可以回答您的问题并为您提供一个良好的起点。
或者,如果您需要商店中所有支付模块的此信息,那么您可以从 PaymentModule 类的 validateOrder 函数中访问该信息,方法是在您的 覆盖/类 文件夹。
【讨论】: