PHP调用SOAP接口方式

作者: 乘风御上者 分类: PHP 发布时间: 2019-09-18 10:24

最近调用第三方接口获取数据时,发现对方居然是所谓的soap接口,一脸懵逼。赶紧请教下老师(baidu),但是查找了不少资料,表情更深。没找到有用的信息,大多数都是在描述什么是SOAP,或一堆排版较乱的代码。

工作中用到,再去慢慢看理论不太现实。第一要务就是盘它,知道怎么调用,把功能跑起来,解决了眼下问题,再深入了解。

第三方接口文档:

接口:GetBusinessProducts 业务产品
参数列表:
userName为用户名;
password为密码;
resultType为数据格式类型,设置xml或json;
area为单位名称;
typeName为类型名称,现阶段有天气实况、预报解读分析和气象指数;
beginDate为开始时间,格式yyyy-MM-dd;
endDate为结束时间,格式yyyy-MM-dd

接口:GetChinaAllGuoJiaZhan 获取全国站信息
参数列表:
resultType为数据格式类型,设置xml或json;

接口:GetChinaGuoJiaZhanListByProvince 获取全国国家站信息
参数列表:
resultType为数据格式类型,设置xml或json;
arrProvince为省份名称数组,设置广西、浙江等;

接口:GetChinaGuoJiaZhanListByStationNum 获取全国国家站信息
参数列表:
resultType为数据格式类型,设置xml或json;
arrStationNum为国家站站号数组,设置53698等;

正确的调用方式:

// 访问路径(栗子)
$url = 'http://lizi.com/ShuJuHuanJing.asmx?WSDL';
// php直接调用此扩展对象
$client = new \SoapClient($url);

// 这就是上述文档中的各个参数
$params = [
    'userName' => '账号',
    'password' => '密码',
    'resultType' => 'xml',
    'beginDate' => '2019-09-10',
    'endDate' => '2019-09-18',
];

// 关键就是调用方式
// $client->文档给的接口名
// 返回一般是对象
$response = $client->GetBusinessProducts($params);

// 结果一般还需一步: 结果->接口
$result = $response->GetBusinessProducts;
// 返回值是请求的结果类型xml或json等,利用php自带对象或函数转换一下即可

得到想要的数据,继续完成工作。

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表回复