php调用webservice接口

项目中使用到了调用三方厂商webService接口。他的接口类似为http://haha.cn:86/BaseInfoService.svc?wsdl,在这里我注意到了“wsdl“以前从来没有过这种接口的经验,起初想用CURL调用,但是一直失败,后来想到了php扩展soap

以下为我的代码:

function SendLeads($data){
        header(‘Content-Type:text/html; charset=utf-8‘);//设置编码方式UTF-8
        ini_set(‘soap.wsdl_cache_enabled‘,‘0‘);//关闭缓存
        $url = ‘http://ddmp.audi-online.cn:86/BaseInfoService.svc?wsdl‘;
        $client = new \SoapClient($url);
        //dump($client);die;
        $para = array(
            ‘Key‘=>$this->User_Key,
            //‘RequestType‘=>array(
            //    ‘Type‘=>0,
            //    ‘MaxID‘=>‘‘,
            //    ‘MaxTime‘=>‘‘,
            //),
            ‘RequestObjectList‘=>array(
                array(
                    ‘ADDRESS‘=>null,
                    ‘BIRTHDAY‘=>null,
                    ‘BUSINESS_PHONE‘=>null,
                    ‘BUY_PLAN_TIME_CODE‘=>‘0‘,
                    ‘CAR_COLOR‘=>null,
                    ‘PROVINCE‘=>$data[‘province‘],  //省份
                    ‘CITY‘=>$data[‘city‘],//城市
                    ‘FK_DEALER_ID‘=>$data[‘dealer_name‘], //经销商编号
                    ‘COMMENTS‘=>null,
                    ‘CONTACT_METHOD‘=>null,
                    ‘CUSTOMER_NAME‘=>$data[‘name‘],
                    ‘GENDER‘=>null,
                    ‘INDUSTRY‘=>null,
                    ‘LEAD_TYPE‘=>$this->Leadtype, //渠道标识
                    ‘MEDIA_LEAD_ID‘=>$this->User_Key.‘xingy‘.rand(1000000000,9999999999),
                    ‘MOBILE‘=>$data[‘mobile‘],
                    ‘MODEL‘=>‘‘,  //意向车型
                    ‘ORDER_TIME‘=>date(‘Y-m-d H:i:s‘,time()),  //下单时间
                    ‘PHONE‘=>null,
                    ‘PROFESSION‘=>null,
                    ‘SERIES‘=>‘15‘, //车系
                    ‘USER_KEY‘=>$this->User_Key,
                    ‘SMART_CODE‘=>‘3513‘)));//设置参数(参数格式为第三方要求的格式) 参数为数组方式传递空数组用array 参数之间用,分隔。 key value形式 => 为指向值
        $jsonData = json_encode($para); //转json
        $date = array(‘inputParam‘=>$jsonData);
        $result = $client->SendLeads($date);
        $array = get_object_vars($result);
        $str = $array[‘SendLeadsResult‘];
        $arr = json_decode($str,true);
        if($arr[‘Success‘]==‘1‘ && $arr[‘Message‘]==‘执行成功‘){
            return json_encode([‘code‘=>1,‘msg‘=>‘执行成功‘]);
        }else{
            return json_encode([‘code‘=>0,‘msg‘=>‘执行失败‘]);
        }
    }

这里大家可能会遇到一种问题就是在本地调试是成功的,但是上传到服务器就会报错(504),通过和接口提供方沟通发现我们的服务器在出去之前是有防火墙限制的,于是要了他们的端口号,在我们服务器开了相关接口,搞定了!!!希望对大家有帮助,有不足的地方请大家评论指正!谢谢!!

时间: 2024-10-14 15:15:42

php调用webservice接口的相关文章

Java调用WebService 接口 实例

这里给大家介绍一下,Java调用webservice的一个实例的过程. 本项目不能运行,因为接口地址不可用. 这里只是给大家介绍一个过程,同时留作自己的笔记.如果要学习,可以参照别人的实例.比较好. ①选择项目根目录的src ,右键,new --> webservice client 然后输入地址: http://172.18.100.52:456/hello?wsdl 必须要加wsdl结尾,这样才是一个webservice的接口. finlish.这时候刷新项目.可以看到项目下/src/com

php中创建和调用webservice接口示例

这篇文章主要介绍了php中创建和调用webservice接口示例,包括webservice基本知识.webservice服务端例子.webservice客户端例子,需要的朋友可以参考下 作为开发者来讲,要想写webservice接口或者调用别人的webservice接口,首先需要了解什么是webservice.简单说, WebService就是一些站点开放一些服务出来, 也可以是你自己开发的Service, 也就是一些方法, 通过URL,指定某一个方法名,发出请求,站点里的这个服务(方法),接到

SQL调用WebService接口

今天在做一个很奇葩的东西,中间有个过程要在SQL触发器里面调用webservice接口.呵呵~ --调用webService---------------- declare @ServiceUrl as varchar(1000) DECLARE @UrlAddress varchar(500) --WebService地址:以http开头,结尾带斜杠,例如'http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx/' set @

使用JS调用WebService接口

<script> $(document).ready(function () { var username = "admin"; var password = "123456"; /*==JS使用HTTP-POST方式调用WebService接口(仅IE调试)==*/ //var host_url = "http://localhost/Interface/Login.asmx/Login?UserName=" + username

使用soapui调用webservice接口

soapui是专门模拟调用webservice接口的工具,下面介绍下怎么使用: 1.下载soapui并安装: 2.以免费天气获取接口为例:http://www.webservicex.net/globalweather.asmx?wsdl,访问这个地址在页面上ctrl+s另存为后缀为.wsdl的文件 3.打开soapui,在左侧project上右击new soapui project,选择刚才的wsdl文件生成project 4.生成project如图: 5.点开一个接口的request,如图:

Android调用webservice 接口

以查询手机号码归属地的Web service为例,它的wsdl为 http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl 1 在Android项目中导入??Ksoap2-android jar第三方jar包?? 2 Activity代码 public class SecondActivity extends Activity { private EditText phoneSecEditText;       priv

java调用webservice接口方法

webservice的 发布一般都是运用WSDL(web service descriptive language)文件的款式来发布的,在WSDL文件里边,包含这个webservice暴露在外面可供运用的接口.今日查找到了非常好的 webservice provider列表 http://www.webservicex.net/WCF/default.aspx 这上面列出了70多个包含许多方面的free webservice provider,utilities->global weather就

Python调用webservice接口

python调用webservice接口,这里我们使用suds包 如果没有直接cmd命令安装subs包 pip suds install 安装成功会有提示成功字样. ------------------------------ 首先导入包 先查看一下webservice提供哪些类型及方法,之后我们才知道怎么调用,传哪些参数. from suds.client import Client from suds.transport.https import HttpAuthenticated #web

Axis2 调用Webservice 接口

1,先学会部署环境,搭建Axis2环境. http://blog.csdn.net/lanqibaoer/article/details/22731291 现在调用一个现有的公共webservice接口,http://fy.webxml.com.cn/webservices/EnglishChinese.asmx?op=TranslatorString 调用方法: TranslatorString  输入中文,翻译成 拼音.英文. 参数:wordKey(中文) 现在要做,翻译词:[随便],代码如

java 调用webservice接口wsdl,推荐使用wsdl2java,放弃wsimport

网上说wsimport是jdk1.6后自带的客户端生成调用webservice接口的工具,其实我挺喜欢原生的东西,毕竟自家的东西用着应该最顺手啊,但往往让人惊艳的是那些集成工具. 本机jdk1.8.1的,直接按网上说的wsimport -keep -p wsimport.test http://****:****/***.wsdl 报警报错,报警warning可以忽略,但错误error 难以解决,说具有相同名称 "xxx" 的类/接口已在使用.请使用类定制设置来解决此冲突.找了许多资料