Я пытаюсь внедрить стороннюю интеграцию платежей с prestashop. Я использовал модуль UniversePay, чтобы получить базовый модуль оплаты. Однако мне нужно знать, как получить значения позиций и сумму в корзине, чтобы я мог передать ее своему стороннему поставщику платежей. В каком файле доступны эти данные? кто-нибудь может помочь?
Обратитесь к этому списку хуков:
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;
}
}
Очевидно, что потребуется много дополнительного кода и тяжелой работы, чтобы превратить этот фрагмент кода в работающий модуль оплаты, но, надеюсь, он даст ответ на ваш вопрос и послужит хорошей отправной точкой для вас.
Кроме того, если вам нужна эта информация для всех модулей оплаты в вашем магазине, вы можете получить доступ к информации из validateOrder
функция PaymentModule
класс, используя переопределить копию этого файла класса в вашем переопределение / классы папка.