我正在尝试与prestashop实施第三方付款集成。我使用了universepay模块来获取基本的支付模块。但是,我需要知道如何获取购物车项目和金额的值,以便我可以将其传递给我的第三方支付提供商。这个数据在哪个文件中可用?有人可以帮忙吗?
答案 0 :(得分:0)
请参阅此挂钩列表:
http://doc.prestashop.com/display/PS15/Hooks+in+PrestaShop+1.5
这是PrestaShop中可用挂钩的(几乎)完整列表。如果您需要在确切的给定时刻找到执行的钩子(例如,当您被重定向到订单确认页面时),请转到Hook.php
类,搜索exec()
方法,然后{{1 }}。在你知道你将使用哪个钩子之后,在你的模块中创建一个函数:
error_log($hook_name);
这样你就会知道哪些参数传递给你的钩子函数。很可能你选择了一些与订单混淆相关的钩子,你将有一个传递给你的订单对象,它将包含你需要的订单的所有信息。
答案 1 :(得分:0)
如果您要创建自己的付款模块,那么当您的模块print method_A() // ({'id': 6}, {'id': 9})
print method_B() // [({'id': 6}, {'id': 9})]
时,您可以使用resultA = method_A() // ({'id': 6}, {'id': 9})
resultB method_B() // [({'id': 6}, {'id': 9})]
if type(resultA) == list:
resultA = resultA[0]
if type(resultB) == list:
resultB = resultB[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;
}
}
函数中访问该信息。你的覆盖/类文件夹。