ThinkPHP框架内使用soap服务端开放web service接口

更新于:2018-09-04   阅读量:1992

工作中用到作为服务端开放web service接口,之前只写过http接口的我在网上找了很多文章,但他们都不是在ThinkPHP框架下


的,而且也无法自定义生成的wsdl文件的存放目录,所以稍作修改,总结一下,希望能起到抛砖引玉的效果,于是写了这篇文章。


1.首先soap的简介和开启php内置的soap模块,见文章http://yuanrb.com/index.php/detail/60.html


2.开放soap接口有两种方式:


有xml格式wsdl文件的和没有wsdl文件的,这里介绍有wsdl文件的方式。


3.生成wsdl文件:


感谢网友们提供的SoapDiscovery.class.php类,但是这个类不能自定义wsdl文件存放的路径,所以稍作修改,地址在文章末尾。用法如下图介绍。


配置wsdl文件存放的地址:


img


用这个方法来生成wsdl文件:


img


在初始化的时候调用上边的方法即可:


img


4.访问接口地址


tp里边默认的方法里实例化SoapServer,并作配置,如下图。


img


配置之后,在wsdl文件存放的路径能看到 类名.wsdl的文件,打开文件找到下图的位置:


img


浏览器打开有如下图的描述文件则成功。


img



5.访问接口测试,见文章http://yuanrb.com/index.php/detail/60.html


6.相关文件下载(如不能打开请复制到浏览器url打开)


SoapDiscovery.class.php类地址:https://pan.baidu.com/s/1Goou4n7LzRDlKdXan_0saQ


包含截图代码的类文件地址:https://pan.baidu.com/s/1aWD0XU2KF_OWua1zhH9GLQ


示例中wsdl文件地址:https://pan.baidu.com/s/1GFIepy9rrbahz7OVYgBfjg