0

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

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

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

4

2 回答 2

0

将文件 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);

}
于 2013-09-20T16:36:52.727 回答
0

我知道这是一个老问题,但如果有人遇到这个问题,我会把它留在这里。

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

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

  2. 以这种格式将要更改的消息添加到该文件中:“旧文本 - 要更改的消息”、“新消息”。

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

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

请不要修改核心文件。它会造成混乱,干扰补丁,并使调试更加困难。如果需要,您可以扩展它们。请参阅覆盖 Magento 块、模型、助手和控制器

于 2019-04-25T22:28:18.440 回答