1.事故还原
客服反馈有用户使用支付宝支付后,订单状态没有改变。
2.排查过程
- 查看日志,发现没有收到异步通知。
- 排查代码是否改动,但git log显示没有改动提交。
- 排查支付宝各配置项、partner_id、公私钥等是否有变化或过期,结果正常。
- 排查同步、异步通知网络状况,可正常访问。
- 最后通过支付宝管理后台通知日志查询得知,异步通知请求失败,状态码0,返回null。
3.疑问
通过浏览器访问异步通知地址,状态200,有返回。为何支付宝异步通知显示失败?
4.支付宝技术客服解答
失败原因:异步通知地址域名证书有问题。
5.解决方法
- 通过 域名证书查询地址 查询通知域名,发现被降级至B,降级原因:证书链不完整。
- 按照 缺少证书链的问题和解决方法 ,重新将完整证书 pem 内容替换现有内容。
- 重启 nginx ,收到异步通知,恢复正常。