3

目前,我有一个脚本,可以在有人被定向到支付处理器后处理订单。

支付处理器偶尔会向我的网站发送两个(或更多)响应(通常在第一个响应后的一分钟内)。
我已就该问题联系了支付处理商;他们不认为这是他们系统的问题,并说我的脚本应该考虑任何额外的响应,并且只听最后一个发送的响应。

在多个响应订单上,第一个响应是成功的,所以当这个响应进来时订单被处理。
如果第二个响应来了,通常大约 30 秒后有一个错误响应,我取消了订单。
问题是我已经从第一次回复中向客户发送了一封“感谢您的订单”电子邮件,这显然并不理想。

有没有办法在订单处理后触发单独的脚本运行几分钟?即在原始订单后几分钟检查订单是否仍然有效并发送电子邮件

我在想一个每分钟运行的 cron 作业,但这肯定会有点过头了,因为脚本只需要在下订单后运行吗?

4

3 回答 3

4

shell_exec("/usr/bin/php /path/to/test.php ".($orderId)." &");您可以在开始时使用 3 分钟延迟启动后台作业(sleep(180));,然后执行代码以检查订单状态。$argv[2]应包含您的 orderId 编号。

于 2012-09-24T16:22:31.923 回答
1

这是你可以做的

收到第一个响应后,让您的脚本等待一段时间,例如使用 sleep() 函数等待 1 分钟

http://php.net/manual/en/function.sleep.php

于 2012-09-24T16:25:11.210 回答
-1

为什么您不能更改您的消息并在您的付款处理器发出第二次请求后通过电子邮件通知某人?

据我了解 - 您的处理器在发送第二个响应时已经在您的网站上调用了某个 URL。所以这是你需要的触发器。如果他们没有这样的回调功能 - 您可以安装一些 cron 来处理未完全处理的订单并检查此类订单的付款状态并通过另一封电子邮件通知客户。

于 2012-09-24T16:26:35.337 回答