OpenCart 3.0 (3.x) + Authorize.net - 如何仅禁用 Authorize.net 电子邮件?

OpenCart 3.0 (3.x) + Authorize.net - how to disable ONLY the Authorize.net E-mail?

我们目前通过 phone(将订单信息输入虚拟终端)以及网站(OpenCart,使用内置的 Authorize.net AIM 模块)接受信用卡。

问题:当在网站上下订单时,客户收到 2 封电子邮件 - 1 封来自我们的网站,1 封来自 Authorize。授权电子邮件是明文,看起来很丑 AF,我的老板想禁用它。

尝试 #1:查看 Authorize.net AIM plugin/module 设置。没有这个选项。

尝试 # 2:在 Authorize.net 帐户中,"Settings -> E-mail Receipt" 下有一个复选框 "Email transaction receipt to customer (if email address is provided)"。

结果 #2:不幸的是,这会禁用所有交易电子邮件 - 来自网站交易(正常)和来自虚拟终端 phone-订单交易(不酷)。我们必须向 phone 客户提供电子邮件收据。

尝试#3:在OpenCart系统中,编辑文件:

catalog/controller/extension/payment/authorizenet_aim.php

注释掉行

$data['x_email'] = $order_info['email'];

结果 #3:在结帐期间,即使输入了有效的电子邮件,在尝试提交订单时,也会出现 "Email address is required" 错误消息。

所以... 无法在 OpenCart 的 Authorize plugin/module 中禁用它。 无法在授权帐户设置中禁用它。 不能只从结账时 OpenCart 收集的数据数组中删除电子邮件。

如何在基于 OpenCart 3.0 构建的网站上禁用 Authorize.net 电子邮件(并且只有 Authorize.net 电子邮件,我仍然希望网站收据发送出去)?

这不是一个很好的解决方案,但您能否将发送到 Authorize.net 的电子邮件地址更改为商店管理员电子邮件地址,在这种情况下它不会给您 "Email address is required"错误消息,您将收到该电子邮件而不是客户。

在第 3 次尝试中,您能否确认 OpenCart 是否给出了有关需要电子邮件的错误,或者 Authorize.Net 是否给出了该错误?如果 Authorize.Net 提供了错误,则可以通过调整 Authorize.Net 中的付款方式设置来对帐: 1. 登录 Authorize.Net 2. 帐户 > 付款表格 > 表格字段 3. 确保未按要求选中电子邮件字段。 4. 在页面底部保存您的更改

找到解决方案(通过 Authorize.net 开发者论坛)。比我预期的要简单:

  1. 打开文件:public_html/catalog/controller/extension/payment/authorizenet_aim.php
  2. 查找行:$data['x_relay_response'] = 'false';
  3. 之后添加:$data['x_email_customer'] = 'false';

这可以让结帐过程无误地完成,并将交易连同不向客户发送电子邮件的说明一起发送到 Authorize.net。