【问题标题】:Prestashop 3rd party payment integrationPrestashop 3rd 方支付集成
【发布时间】:2014-10-30 08:37:54
【问题描述】:

我正在尝试实现与 prestashop 的第三方支付集成。我已经使用了 Universepay 模块来获取基本的支付模块。但是我需要知道如何获取购物车项目的值和金额,以便我可以将其传递给我的第三方支付提供商。这些数据在哪个文件中可用?谁能帮忙?

【问题讨论】:

    标签: php prestashop prestashop-1.6


    【解决方案1】:

    参考这个钩子列表:

    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));
    }
    

    这样你就会知道哪些参数被传递给你的钩子函数。如果您选择了一些与订单确认相关的钩子,您将获得一个订单对象,其中包含您需要的所有订单信息。

    【讨论】:

    • 您好,我尝试了您的方法..但是在管理面板中检查日志文件时..我没有看到任何打印的数据。我该如何继续?
    【解决方案2】:

    如果您正在创建自己的支付模块来执行此操作,那么您的模块将 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 函数中访问该信息,方法是在您的 覆盖/类 文件夹。

    【讨论】:

      猜你喜欢
      • 2012-08-15
      • 2015-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-23
      • 2020-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多