当客户的信用卡被拒绝时,您如何自定义弹出的网关错误。
例如“付款交易失败。原因网关错误:处理过程中发生错误。请重试。”
如果这有所作为,我们将使用 Authorize.net。澄清一下,我们并不是要摆脱它们,只是修改它们中的语言。
当客户的信用卡被拒绝时,您如何自定义弹出的网关错误。
例如“付款交易失败。原因网关错误:处理过程中发生错误。请重试。”
如果这有所作为,我们将使用 Authorize.net。澄清一下,我们并不是要摆脱它们,只是修改它们中的语言。
将文件 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);
}
我知道这是一个老问题,但如果有人遇到这个问题,我会把它留在这里。
该_wrapGatewayError()
方法已经使用助手来输出消息,那么为什么不直接翻译消息呢?
创建(或编辑)您的本地化/翻译文件app/design/frontend/{package_name}/{theme_name}/locale/en_US/translate.csv
。您可以检查活动package_name
和theme_name
系统/配置/设计(在“常规”下)。
以这种格式将要更改的消息添加到该文件中:“旧文本 - 要更改的消息”、“新消息”。
在您的情况下,它将是这样的:“付款交易失败。原因网关错误:处理过程中发生错误。请重试。”,“您的自定义消息”
工作原理:每当使用助手输出“付款翻译失败......”时,系统将找到翻译文件(translate.csv)并将消息更改为您的自定义文件。
请不要修改核心文件。它会造成混乱,干扰补丁,并使调试更加困难。如果需要,您可以扩展它们。请参阅覆盖 Magento 块、模型、助手和控制器