项目中使用到了调用三方厂商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),通过和接口提供方沟通发现我们的服务器在出去之前是有防火墙限制的,于是要了他们的端口号,在我们服务器开了相关接口,搞定了!!!希望对大家有帮助,有不足的地方请大家评论指正!谢谢!!

php调用webservice接口的更多相关文章

  1. Java调用webservice接口方法

                             java调用webservice接口   webservice的 发布一般都是使用WSDL(web service descriptive langu ...

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

    php中创建和调用webservice接口示例   这篇文章主要介绍了php中创建和调用webservice接口示例,包括webservice基本知识.webservice服务端例子.webservi ...

  3. 使用soapui调用webservice接口

    soapui是专门模拟调用webservice接口的工具,下面介绍下怎么使用: 1.下载soapui并安装: 2.以免费天气获取接口为例:http://www.webservicex.net/glob ...

  4. 使用JS调用WebService接口

    <script> $(document).ready(function () { var username = "admin"; var password = &quo ...

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

    网上说wsimport是jdk1.6后自带的客户端生成调用webservice接口的工具,其实我挺喜欢原生的东西,毕竟自家的东西用着应该最顺手啊,但往往让人惊艳的是那些集成工具. 本机jdk1.8.1 ...

  6. js调用Webservice接口案例

    第一步:新建Webservice接口 主文件方法 using System;using System.Collections.Generic;using System.Web;using System ...

  7. SQL调用WebService接口

    今天在做一个非常奇葩的东西.中间有个过程要在SQL触发器里面调用webservice接口.呵呵~ ALTER TRIGGER tgr_UpdateMemcached ON dbo.[User] AFT ...

  8. 动态调用WebService接口的几种方式

    一.什么是WebService? 这里就不再赘述了,想要了解的====>传送门 二.为什么要动态调用WebService接口? 一般在C#开发中调用webService服务中的接口都是通过引用过 ...

  9. ThinkPHP使用soapclient调用webservice接口

    1,开启 php.ini 这2个服务 12 extension=php_openssl.dllextension=php_soap.dll 以公共天气预报webservice为例,采用thinkPHP ...

  10. 调用webservice接口,报错:(十六进制值0x01)是无效的字符

    #事故现场 调用webservice接口,报错:(十六进制值0x01)是无效的字符. 如图: 意思是webservice返回的信息中包含无效的字符,无法解析成xml: #分析 使用postman向we ...

随机推荐

  1. 九天学会Java,第四天,循环结构

    变量和数据类型,赋值和输出 算术运算 选择结构 循环结构 函数定义,函数调用 变量作用域 栈,程序运行的基石 面向对象 异常处理 语言提供的公用包 这次我们讲Java的循环结构.循环结构在编程中广泛使 ...

  2. RPC框架实现思路浅析

    第一部分,设计分析 远程调用要解决的主要问题: 1,序列化 : 如何将对象转化为二进制数据进行传输,如何将二进制数据转化对象 2,数据的传输(协议,第三方框架) 3,服务的注册/发现,单点故障,分布式 ...

  3. Web.py 框架学习笔记 - ctx

    摘要: ctx用于存取web请求的环境变量,基于ThreadedDict类进行实例化.ThreadedDict类可实例化字典类型的对象,该对象某些属性可用于存取处理线程的id. 这样字典化实例的线程池 ...

  4. C#:委托(delegate)和事件(event) (转)

    委托(delegate): 它是C#语言里面的函数指针,代表可以指向某一个函数,在运行的时候调用这个函数的实现.下面来看看它的实现步骤: 声明一个delegate对象. 实现和delegate具有相同 ...

  5. Selenium常规操作---基于python

    from selenium import webdriver 1. 打开浏览器 driver=webdriver.Firefox()  #火狐浏览器 driver=webdriver.Ie()  #打 ...

  6. 比较两个date返回日期相差天数

    public static int daydiff(Date fDate, Date oDate) { Calendar aCalendar = Calendar.getInstance(); aCa ...

  7. Linux的netstat查看端口是否开放见解(0.0.0.0与127.0.0.1的区别)

    linux运维都需要对端口开放查看  netstat 就是对端口信息的查看 # netstat -nltp p 查看端口挂的程序 [root@iz2ze5is23zeo1ipvn65aiz ~]# n ...

  8. window.onerror 应用实例

    详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp75   window.onerror = function(sMessa ...

  9. spring cloud+docker 简单说一说

    spring boot 微服务开发工具 spring cloud 微服务框架治理工具集 这么做: 1.搭建spring cloud 基础组件(服务发现,服务注册,服务配置,监控,追踪,API网关) 以 ...

  10. Maven(一)初识Maven

    前言 在这之前一直都有去看关于Maven的相关介绍,但是没有到真正要用的时候,自己总是以为懂了.其实真的感觉Maven并没有想象的那么简单! 那我们该怎么去学习maven呢?接下来我将从: 初步认识m ...