【问题标题】:Editing Gateway Errors编辑网关错误
【发布时间】:2013-04-19 18:51:11
【问题描述】:

当客户的信用卡被拒绝时,您如何自定义弹出的网关错误。

例如“付款交易失败。原因网关错误:处理过程中发生错误。请重试。”

如果这有所作为,我们将使用 Authorize.net。澄清一下,我们并不是要摆脱它们,只是修改它们中的语言。

【问题讨论】:

    标签: magento-1.7 authorize.net


    【解决方案1】:

    将文件 app/code/core/Mage/Paygate/Model/Authorizenet.php 复制到本地。然后找到这个(第 1334 行):

    protected function _wrapGatewayError($text)
    {
        return Mage::helper('paygate')->__('Gateway error: %s', $text);
    }
    

    并替换为:

     protected function _wrapGatewayError($text)
    {
        if($text == 'This transaction has been declined.') {
            $text = 'Custom message here.';
        }       
        return Mage::helper('paygate')->__('Gateway error: %s', $text);
    
    }
    

    【讨论】:

      【解决方案2】:

      我知道这是一个老问题,但我会把这个留在这里,以防万一有人遇到这个问题。

      _wrapGatewayError() 方法已经使用了帮助器来输出消息,那么为什么不直接翻译消息呢?

      1. app/design/frontend/{package_name}/{theme_name}/locale/en_US/translate.csv 中创建(或编辑)您的本地化/翻译文件。您可以在系统/配置/设计(在“常规”下)中检查活动的package_nametheme_name

      2. 将您要更改的消息添加到该文件中,格式如下:“旧文本 - 您要更改的消息”、“新消息”。

      在您的情况下,它将是这样的: "付款交易失败。原因网关错误:处理过程中发生错误。请重试。", "您的自定义消息"

      工作原理:每当使用助手输出“付款翻译失败。...”时,系统会找到翻译文件(translate.csv)并将消息更改为您的自定义。

      请勿修改核心文件。它会造成混乱,干扰补丁,并使调试更加困难。如果需要,您可以扩展它们。见Overriding Magento blocks, models, helpers and controllers

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-25
        • 2011-11-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多