没填入根证书导致Alipay 异步回调失败

分类:技术 1.22k浏览

凌晨发现一个业务平台里客户使用支付宝支付订单后大量掉单,即客户支付后依然提示未支付的情况,同时系统里看不到任何错误LOG。

确保接口支付宝即时到账接口的 USER ID /MD5 密钥 都设置正确的情况下,大概考虑是网络通讯问题。

通过支付宝自带的异步通知排查: https://opensupport.alipay.com/support/tools/NewCloudparse?ant_source=antsupport

得到如下结果:

 

官方文档解释 《异步访问状态http0排查方案》:https://opensupport.alipay.com/support/helpcenter/193/201602493623

排查思路:

1、确保当前服务器/CDN是否与支付宝正常通讯

PASS

2、确保HTTP/HTTPS 正常建立

1、HTTP 正常 ,返回302

2、HTTPS 异常,返回0

3、因为涉及CDN,所以直接改回源

恢复正常,那问题就是出现在CDN上

发现问题:

CDN设置SSL时,只单独填写了 KEY/CSR信息,但没填写CA。

解决:

手动把SSL颁发商的CA CSR填入后,再次测试返回200正常,异步回传恢复。

 

总结:

感觉这个问题像个巨坑,大量的时间花在TCP链接通讯的检查上,忽略了SSL的设置,但是这个问题确实很容易忽略,一般SSL有CSR/KEY就可以正常使用(至少在浏览器层面没问题),可能支付宝比较严谨。

3月2日附加一个补全证书链的工具站:

https://whatsmychaincert.com/