啥问题:。。。。。。。。我都不好意思说了,居然,居然,居然支付宝付款后无回调。。。。异步回调没有。。。。真没有,访问日志都没有?我瞬间懵逼了。。。。。。。
我经过了以下流程发现了 最终问题
先说流程:
1.怀疑某知识付费系统支付宝代码有bug,导致无法获得支付宝付款成功通知呢:
解决:把整个系统支付宝代码流程部分都打印日志,同时强制指定了异步回调地址,结果是:无效。。。还是没日志
Factory::payment()->faceToFace()->asyncNotify('https://'.$_SERVER['HTTP_HOST'].'/index/pay/alipay_notify');
2.支付宝商家服务是否设置错误,H5支付没开 或者 参数设置错误?
解决:支付宝商家服务 能力部分 全部巡查一次,证书 密钥重新设置 连回调地址都只选 验证域名。结果呢 还是无效。。。。。。。。。。。。
3.代码没问题,商户设置没问题,为啥就没异步通知(回调)呢???我XXXXXX阿
为什么呢:就因为我忘记了 支付宝居然还有异步回调云调试工具,(https://opensupport.alipay.com/support/tools/cloudparse?ant_source=opendoc),我晕~直接找之前付款成功订单,终于找到问题了,如图:
IP/域名连接失败
上面是啥问题,我域名明明没问题阿,怎么就ip无法访问,这不是坑我吗?
反思:
1.我DNS解析设置失败?
检查:重新检查了域名解析,无误----》支付宝居然无法访问我服务器。。。。我还是用阿里云阿。。。
2.解析没问题,那还有啥问题?
真有问题:我域名启用了Https申请的是Let's Encrypt家的,普通浏览器访问还是绿标呢,但是就是这个证书导致了支付宝无法访问我域名,通知失败。
最后终结解决方案:上阿里云重新申请一个免费证书 换上 完美解决
复盘:
1.支付宝本身接入确实比微信简单,没想到在域名证书上给栽跟头了
2.免费的le证书确实无法收到支付宝回调,可能是支付宝需要用自家阿里云证书才行吧,一开始完全没想过这个问题。
3.出现无法回调时,记得以前用支付宝时也是用le证书的,可能支付宝最近改变了回调地址校验规则吧。。。。
反正问题是解决了,但是太蛋痛了。。。分享下 同时以备后忘吧~