gpt4 book ai didi

php - 客户在结账时注册时结账和客户注册失败

转载 作者:行者123 更新时间:2023-12-04 06:00:01 24 4
gpt4 key购买 nike

我的 Magento 店面出现问题,在结账期间在我的商店注册的客户无法完成 OnePageCheckout 结账流程。这个错误很少见,我很难重现。以下是我收到的错误消息:

Payment Transaction Failed Reminder
Payment transaction failed. Reason: Customer email is required.

Payment Transaction Failed Reminder
Payment transaction failed. Reason: This customer email already exists.


我很确定这意味着客户尝试了第二次,但也无法完成第二次结帐。

这个错误对我来说很奇怪,原因有两个。首先,这个错误在结账时永远不应该发生;由于单页结账时的验证不允许您使用已经存在的电子邮件地址进行注册,因此第二种错误应该是不可能的。验证检查也不会让您在根本不输入电子邮件地址的情况下继续前进(第一种错误)。在这两种情况下,最终付款选项卡似乎是遇到错误的地方,应该通过 JavaScript 隐藏。

客户怎么可能一直点击“下订单”按钮,但没有通过注册选项卡上的验证进行筛选?

我的猜测是它可能是一个浏览器导致验证不起作用,并让客户一直到最后一点。

当我说这个错误是“罕见的”时,我的意思是它发生在 1000 个订单中的 2 个。

我很确定当报价转换为订单时会发生这种情况。在 Order Save 事件中,它将尝试保存客户,作为交易的一部分,同时还处理付款。我不认为支付网关会抛出错误,但可能控制权已传递给该类。它很可能发生在 saveOrderAction() 之后函数在 OnePageController.php 中被调用文件。在此函数中抛出错误后,错误会在堆栈跟踪中报告如下:
Mage::helper('checkout')->sendPaymentFailedEmail($this->getOnepage()->getQuote(), $e->getMessage());

这是生成“付款交易失败提醒”电子邮件的地方。我认为错误必须在这部分:
$this->getOnepage()->saveOrder();

我如何才能在 PHP 代码中找到发生此错误的位置?我该如何纠正这个问题,以免失去正在尝试向我购买的客户?

我的店面在 Magento 版本 1.9.1.1 上运行。

更新:刚刚得到了另一个。客户记录完全丢失,但有一个送货地址和账单地址。很奇怪。

最佳答案

需要更多信息,但我敢打赌这是 MySQL 主/从竞争条件。以前有过这种情况。
解决方案是使用 https://launchpad.net/mysql-proxy这是 Lua 可编写脚本的。
master和slave之间的负载均衡(不仅仅是读写分离)更好,可以用一个小的Lua脚本解决这个问题。

关于php - 客户在结账时注册时结账和客户注册失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9027351/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com