PrestaShop。为贝宝设置错误 url

PrestaShop. set error url for paypal

我最近启用了 paypal Pro 服务,现在我正在为我的 PrestaShop 版本 1.6.1.1 设置它。

我必须指出感谢页面和错误页面的url。

对于感谢页面,我没有问题,我模拟了一次购买并通过放置占位符复制了 url。

我用过这个:

module/paypal/submit?id_cart={id_cart}&id_module=97&id_order={id_order}&key={id_key}

我发现设置错误页面有困难 url。

在 templates/front 中,我注意到已经有用于此的 tpl。 在 paypal.php 中,我找到了这个函数:

public function displayPayPalAPIError($message, $log = false)
{
    $send = true;
    // Sanitize log
    foreach ($log as $key => $string) {
        if ($string == 'ACK -> Success') {
            $send = false;
        } elseif (Tools::substr($string, 0, 6) == 'METHOD') {
            $values = explode('&', $string);
            foreach ($values as $key2 => $value) {
                $values2 = explode('=', $value);
                foreach ($values2 as $key3 => $value2) {
                    if ($value2 == 'PWD' || $value2 == 'SIGNATURE') {
                        $values2[$key3 + 1] = '*********';
                    }
                }

                $values[$key2] = implode('=', $values2);
            }
            $log[$key] = implode('&', $values);
        }
    }

    $this->context->smarty->assign(array('message' => $message, 'logs' => $log));

    if ($send) {
        $id_lang = (int) $this->context->language->id;
        $iso_lang = Language::getIsoById($id_lang);

        if (!is_dir(dirname(__FILE__).'/mails/'.Tools::strtolower($iso_lang))) {
            $id_lang = Language::getIdByIso('en');
        }

        Mail::Send(
            $id_lang,
            'error_reporting',
            Mail::l('Error reporting from your PayPal module', (int) $this->context->language->id),
            array('{logs}' => implode('<br />', $log)),
            Configuration::get('PS_SHOP_EMAIL'),
            null,
            null,
            null,
            null,
            null,
            _PS_MODULE_DIR_.$this->name.'/mails/'
        );
    }

    return $this->fetchTemplate('error.tpl');

是否有路由规则调​​用带钩子的订单模板error.tpl?

不,没有它的路由规则。从我通过模块代码设法理解的内容来看,如果订单的当前状态具有 payment_error 的电子邮件模板(Payment Error 状态的模板),则会显示错误模板。

因此,如果您将订单的当前状态设置为 Payment Error 并访问您在问题中所写的同一个 link,它应该会显示错误模板。