gpt4 book ai didi

php - 创建中间挂单的问题

转载 作者:可可西里 更新时间:2023-10-31 22:14:26 25 4
gpt4 key购买 nike

我创建了一个自定义支付模块,目前它在从支付网站重定向后调用 validateOrder(),此方法创建订单、发送电子邮件等。但问题是如果用户关闭在它可以重定向回 PrestaShop 网站之前支付网站在这种情况下不会创建订单。所以,我想在重定向到支付网站之前创建一个订单(比如 “pending” 状态),在从支付网站重定向之后,我可以简单地将相同的付款标记为完成并发送邮件等.

目前为此我尝试调用 validateOrder 两次,一次是在 hookdisplayPayment 中(这里我将状态设置为 "pending")和重定向后一次。但是现在重定向后我得到“无法加载购物车,或者已经使用此购物车下了订单”。我认为那是因为我无法使用相同的卡 ID 将相同的订单更新两次。

请注意,我只想在付款成功后发送一次电子邮件。目前为此,我正在使用自定义付款状态,并将 'send_email' 设置为 0。

对此有什么好的解决方法?

如果重要的话,我愿意支持 1.5+ 和 1.6+ 版本。

最佳答案

比我的第一个答案更好的方法是在函数 validateOrder 的模块中创建覆盖。您将修改:

/** @var Order $order */
$order = new Order();

进入:

/** @var Order $order */
$order = new Order($this->currentOrder);

然后测试是否加载了对象,跳过设置订单字段的部分。如果未加载,请将订单字段适本地设置为待定状态。还要测试 $this->currentOrder 是否在发送电子邮件的位置设置,如果未设置则跳过电子邮件部分。如果已设置,则表示订单待处理,您应该更改状态并发送电子邮件。

覆盖该函数后,您可以在重定向之前和之后调用 validateOrder 两次。

关于php - 创建中间挂单的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31827422/

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