+316原创程序 +49收集论文 +84原创文章 +1670VIP客户 +3368084总访问量
您的位置:首页 > 设计师随笔 > 支付宝接口和UDP 53端口有关
支付宝接口和UDP 53端口有关
作者/来源:原创    时间:2014-06-18    关注4446次

6月17日:

前段时间,因为服务器安全问题,我关闭了所有的UDP端口(从所有IP到所有IP的所有UDP通信),结果发现支付宝接口不能正常工作了,用写文本函数测试,发现服务器是能收到支付宝的异步通知的,就是校验通不过,难道支付宝接口需要用到UDP端口吗?没有道理啊,支付宝通过TCP 80端口或TCP 443端口和网站交互的啊,百度,没有发现任何有价值的资料;

【来源:原创成品php mysql毕业设计、课程设计、作业下载网 http://www.9laile.com         原创文章 转载请注明出去】

6月18日:

联系到了支付宝技术,支付宝技术说,只要开放TCP 80 或 443端口就没问题,这样的答复等于没答复,因为我的80端口一直开的,之前一直都很正常,我只是关掉了UDP端口而已。

继续研究,不停的搜索资料,终于发现了一个有价值的信息,DNS服务是需要用到UDP协议。偶,蚂蚁噶得, 原来问题出在这里。

我们打开支付宝接口的lib/alipay_core.function.php文件,这里有一个getHttpResponse函数,这个函数中,支付宝接口要通过fsockopen连接到支付宝网关https://mapi.alipay.com/gateway.do?service=notify_verify 来完成异步通知的校验,连接用的是域名,所以连接前必须要查询DNS服务器,那么就要用UDP协议连接到DNS服务器的53端口,而我禁用了所有UDP通信,所有无法解析支付宝域名,那么就无法通过校验了。
   

    简单说,支付宝服务器能通过80端口找我网站,但是我网站无法解析支付宝的域名所以无法完成校验。

于是乎,修改ip安全策略,在禁用所有UDP通信之前,加上从本机到任意主机的UDP53端口(注意选择镜像),并设置为许可,问题解决。


【来源:原创成品php mysql毕业设计、课程设计、作业下载网 http://www.9laile.com         原创文章 转载请注明出去】



©专业辅导 php毕业设计,php课程设计,php期末作业,php大作业,品质保证 访问:3368084次  
9laile.com源码在线销售平台由本站设计师齐工独立研发
当前版本V1.1.18
皖ICP备05020966号

皖公网安备 34072202000111号

 68813382