magento2.3.2 用户支付成功后台没有生成订单 丢单问题处理

时间:2024-04-13 11:45:52

后台

magento2.3.2 用户支付成功后台没有生成订单 丢单问题处理

后台订单不连续,查看paypal收款账户发现000000157 订单用户已成功支付,但magento2后台没这个订单

用户开始投诉,运营很着急,开始找产品,产品说这是技术问题,转到技术这处理,技术开始排查

1.首先分析问题

用户已支付,订单没生成,以前的订单都没发现有这个问题,这段时间出现的

分析原因:说明paypal用户已支付了,支付成功后在通知系统时没有写到数据库里发生的问题

2.进后台先打开paypal调试,查看paypal支付日志

 

magento2.3.2 用户支付成功后台没有生成订单 丢单问题处理

magento2.3.2 用户支付成功后台没有生成订单 丢单问题处理

确实支付成功了,paypal支付是没有问题的,就看通知到系统有没有成功了

系统只有收到pyapal支付成功通知才会创建订单

报错日志

[2020-06-02 18:01:54] main.CRITICAL: The "000000117" order ID is incorrect. Verify the ID and try again. {"exception":"[object] (Exception(code: 0): The \"000000117\" order ID is incorrect. Verify the ID and try again. at /www/wwwroot/www.broadout.com/vendor/magento/module-paypal/Model/Ipn.php:143)"} []

 

3.查访问日志找支付成功通知

20/Jun/2020:00:05:40 +0800] "POST /paypal/ipn/ HTTP/1.1" 500 - "-" "PayPal IPN ( https://www.paypal.com/ipn )"
[20/Jun/2020:00:13:00 +0800] "POST /paypal/ipn/ HTTP/1.1" 500 - "-" "PayPal IPN ( https://www.paypal.com/ipn )"
[20/Jun/2020:00:29:49 +0800] "POST /paypal/ipn/ HTTP/1.1" 500 - "-" "PayPal IPN ( https://www.paypal.com/ipn )"
[20/Jun/2020:00:39:25 +0800] "POST /paypal/ipn/ HTTP/1.1" 500 - "-" "PayPal IPN ( https://www.paypal.com/ipn )"
[20/Jun/2020:01:02:26 +0800] "POST /paypal/ipn/ HTTP/1.1" 500 - "-" "PayPal IPN ( https://www.paypal.com/ipn )"
 [20/Jun/2020:01:27:10 +0800] "POST /paypal/ipn/ HTTP/1.1" 500 - "-" "PayPal IPN ( https://www.paypal.com/ipn )"
[20/Jun/2020:02:07:54 +0800] "POST /paypal/ipn/ HTTP/1.1" 500 - "-" "PayPal IPN ( https://www.paypal.com/ipn )"
[20/Jun/2020:02:14:13 +0800] "POST /paypal/ipn/ HTTP/1.1" 500 - "-" "PayPal IPN ( https://www.paypal.com/ipn )"

发现支付通知都是500异常,只有个别是200成功的

发现其它报错问题

AH01075: Error dispatching request to

php还没有处理完就超时了

max_execution_time = 1800
max_input_time = 1800
超时 100秒改为 1800

apache 添加了
RequestReadTimeout handshake=0 header=20-600,MinRate=500 body=20,MinRate=500

 Warning: Unknown: Input variables exceeded 1000. 

意思就是输入(提交)的变量超过默认 1000 个了,如果需要变更限制,戳开 php.ini

搜索 max_input_vars,把前面的分号 ; 去掉,1000 改大一点,最后重启 PHP 即可

max_input_vars = 10000

保存,重启下环境 好了

------------------------------------------------------------------------------------------

查找过程

POST /paypal/ipn/ HTTP/1.1" 500 - "-" "PayPal IPN ( https://www.paypal.com/ipn

\/paypal\/ipn\/ HTTP\/1.1\" 500
-----------------------------------
sed -n '/2019-12-28 11:26/,/2019-12-28 12:13/p' nohup.out | grep '接收到xx请求参数,开始处理' | wc -l
sed -n '/2019-12-28 11:26/,/2019-12-28 12:13/p' nohup.out | grep '接收到xx请求参数,开始处理' | wc -l
有效
查找ipn 200 成功的
\/paypal\/ipn\/ HTTP\/1.1" 200   
查找ipn 500
\ HTTP\/1.1" 500   
-------------------------
POST /paypal/ipn/ HTTP/1.1" 200
POST \/paypal\/ipn\/ HTTP\/1.1" 200 查找成功的
POST \/paypal\/ipn\/ HTTP\/1.1" 500 查找失败的

 

tail -f 实时查看日志文件 tail -f 日志文件log
tail - 10 f 实时查看日志文件 后10行
tail -f -n 10 payment.log linux查看日志后10行
搜寻字符串
grep ‘搜寻字符串’ filename
按ctrl+c 退出