怎样确定外面对云引擎的response是否被防火墙阻挡

app中用户支付成功后,支付宝会将支付的结果返回到我们指定的URL地址。当我们设置成我们的云引擎地址的时候,发现很多时候支付宝的response都无法被我们的云引擎接收到。

下面是支付宝提供的日志,可以看到14:53 和 15:08 (重发)分别发送了两次response到同一个地址,但我的云引擎这边只收到了15:08 的。而第一次的回复并没有收到。所以想确认一下是否被前面分防火墙阻拦了。

云引擎没有对流入流量做限制,根据我们从其他用户得到的反馈,很可能是 DNS 查询有问题,没有解析到正确的结果,目前我们还在关注这个问题。

感谢回复。

我们自己的地址解析指向的是你们的二级地址 xxxx.leanapp.cn
我也尝试过将支付宝的通知地址直接设置成 xxx.leanapp.cn 但也有一样的问题。还是会经常收不到response。

由于这个问题会影响到业务处理流程,比较着急,所以这边有没有一些暂时的workaround 呢?感谢!

你好
能私信提供一下完整的日志吗? 我们这边查一下。

你好,
这个问题应该已经解决,与运营商有关,请再观察下。

测试了几天,发现了一个规律,每天第一次的交易,支付宝第一次回复的response 会收不到。然后后面的都可以正常收到

其实不只是每天第一个,隔个几个小时没有交易后,新的交易的支付宝的第一个response 就会收不到。

支付宝应该有很多ip来发送个response,隔一段时间后再交易,可能支付宝使用的ip 就会不一样。然后你们leancloud 这边感觉好像陌生的ip 第一个traffic 就阻拦掉了,后面再来就没问题。

这个现象好奇怪,现在还是有这个问题吗?请提供日志,我来确认一下。

已经私信给您日志了,多谢您的协助!

你好,经过我们调查发现,是支付宝那边不支持 SNI(多个域名共用一个 IP 来提供 HTTPS 时必须使用的一项技术),支付宝内部应该是多版本并存的,所以表现为 HTTPS 地址有时可以成功,有时会失败。

目前最简单的办法就是对支付宝的回调使用 HTTP,后续我们会做一些改动,让 leanapp.cn 的二级域名支持非 SNI 的请求。

好多,多谢协助!由于担心不稳定,所以今天改了业务逻辑,从原来被动等支付宝的回调,改为主动去支付宝查询支付结果。