app中用户支付成功后,支付宝会将支付的结果返回到我们指定的URL地址。当我们设置成我们的云引擎地址的时候,发现很多时候支付宝的response都无法被我们的云引擎接收到。
下面是支付宝提供的日志,可以看到14:53 和 15:08 (重发)分别发送了两次response到同一个地址,但我的云引擎这边只收到了15:08 的。而第一次的回复并没有收到。所以想确认一下是否被前面分防火墙阻拦了。
云引擎没有对流入流量做限制,根据我们从其他用户得到的反馈,很可能是 DNS 查询有问题,没有解析到正确的结果,目前我们还在关注这个问题。
感谢回复。
我们自己的地址解析指向的是你们的二级地址 xxxx.leanapp.cn我也尝试过将支付宝的通知地址直接设置成 xxx.leanapp.cn 但也有一样的问题。还是会经常收不到response。
由于这个问题会影响到业务处理流程,比较着急,所以这边有没有一些暂时的workaround 呢?感谢!
你好 能私信提供一下完整的日志吗? 我们这边查一下。
@jysperm 你好,想问一下这个问题有什么新的进展么?多谢!
你好, 这个问题应该已经解决,与运营商有关,请再观察下。
测试了几天,发现了一个规律,每天第一次的交易,支付宝第一次回复的response 会收不到。然后后面的都可以正常收到
其实不只是每天第一个,隔个几个小时没有交易后,新的交易的支付宝的第一个response 就会收不到。
支付宝应该有很多ip来发送个response,隔一段时间后再交易,可能支付宝使用的ip 就会不一样。然后你们leancloud 这边感觉好像陌生的ip 第一个traffic 就阻拦掉了,后面再来就没问题。
这个现象好奇怪,现在还是有这个问题吗?请提供日志,我来确认一下。
已经私信给您日志了,多谢您的协助!
你好,经过我们调查发现,是支付宝那边不支持 SNI(多个域名共用一个 IP 来提供 HTTPS 时必须使用的一项技术),支付宝内部应该是多版本并存的,所以表现为 HTTPS 地址有时可以成功,有时会失败。
目前最简单的办法就是对支付宝的回调使用 HTTP,后续我们会做一些改动,让 leanapp.cn 的二级域名支持非 SNI 的请求。
好多,多谢协助!由于担心不稳定,所以今天改了业务逻辑,从原来被动等支付宝的回调,改为主动去支付宝查询支付结果。